在http://sqlitebrowser.org/下載sqlite3可視化工具,在本main.go同目錄下建立personal.db
數據庫,建立表以下:
git
package main import ( "database/sql" "fmt" _ "github.com/mattn/go-sqlite3" ) // 用struct類型未來自SQL數據庫的數據映射到內存中的對象 type Profile struct { ProfileId int FirstName string LastName string Age int } func main() { db, err := sql.Open("sqlite3", "./personal.db") checkError(err) var profile Profile // Query可使用參數 rows, err := db.Query("select ProfileId, FirstName, LastName, Age from Profile where FirstName = ? and LastName = ?", "Tarik", "Guney") checkError(err) for rows.Next() { err := rows.Scan(&profile.ProfileId, &profile.FirstName, &profile.LastName, &profile.Age) checkError(err) fmt.Println(profile) } rows.Close() db.Close() } func checkError(err error) { if err != nil { panic(err) } }
package main import ( _ "github.com/mattn/go-sqlite3" "database/sql" "fmt" ) type Profile struct{ ProfileId int FirstName string LastName string Age int } func main(){ db, err := sql.Open("sqlite3", "./personal.db") checkError(err) /* 更新數據庫數據 statement, err := db.Prepare("update Profile set FirstName = ? where ProfileId = ?") checkError(err) statement.Exec("Martha", 5) */ statement, err := db.Prepare("insert into Profile (FirstName, LastName, Age) values(?,?,?)") checkError(err) statement.Exec("Jessica", "McArthur", 30) /* 刪除數據庫數據 statement ,err := db.Prepare("delete from Profile where ProfileId = ?") checkError(err) statement.Exec(3) */ var profile Profile rows, err := db.Query("select ProfileId, FirstName, LastName, Age from Profile") checkError(err) for rows.Next(){ err := rows.Scan(&profile.ProfileId, &profile.FirstName, &profile.LastName, &profile.Age) checkError(err) fmt.Println(profile) } rows.Close() db.Close() } func checkError(err error) { if (err != nil) { panic(err) } }