前回の記事、Go言語とSQLでランダムの顧客10人の注文を10000件登録してみるで作成したtableから10件のデータを取得してみる。
package main
import (
"database/sql"
"fmt"
"log"
_ "github.com/mattn/go-sqlite3"
)
func main() {
db, err := sql.Open("sqlite3", "sample.db")
if err != nil {
log.Fatal(err)
}
rows, _ := db.Query("SELECT * FROM orders LIMIT 3")
defer rows.Close()
for rows.Next() {
var id int
var user_id int
var price int
err := rows.Scan(&id, &user_id, &price)
if err != nil {
log.Fatal(err)
}
fmt.Print("id:")
fmt.Println(id)
fmt.Print("user_id:")
fmt.Println(user_id)
fmt.Print("price:")
fmt.Println(price)
fmt.Println("")
}
}
データをGo言語で取得するには、db.Queryを用いる。
次にfor rows.Next() で取得したいデータを決める。
rows.Scanする。rows.Scan(&id, &user_id, &price)で取得したいデータの変数の前に&を付ける。
最後にfmt.Printで表示する。fmt.Printは改行なしの表示で、fmt.Println(id)は改行ありの表示である。
端末で実行すると、下記のように表示される。
id:1
user_id:0
price:8814
id:2
user_id:2
price:7912
id:3
user_id:8
price:9382




