当前位置:Gxlcms > 数据库问题 > Go基础编程实践(十)—— 数据库

Go基础编程实践(十)—— 数据库

时间:2021-07-01 10:21:17 帮助过:17人阅读

从数据库中读取数据

在http://sqlitebrowser.org/下载sqlite3可视化工具,在本main.go同目录下创建personal.db数据库,创建表如下:
技术图片

  1. <code>package main
  2. import (
  3. "database/sql"
  4. "fmt"
  5. _ "github.com/mattn/go-sqlite3"
  6. )
  7. // 用struct类型将来自SQL数据库的数据映射到内存中的对象
  8. type Profile struct {
  9. ProfileId int
  10. FirstName string
  11. LastName string
  12. Age int
  13. }
  14. func main() {
  15. db, err := sql.Open("sqlite3", "./personal.db")
  16. checkError(err)
  17. var profile Profile
  18. // Query可以使用参数
  19. rows, err := db.Query("select ProfileId, FirstName, LastName, Age from Profile where FirstName = ? and LastName = ?", "Tarik", "Guney")
  20. checkError(err)
  21. for rows.Next() {
  22. err := rows.Scan(&profile.ProfileId, &profile.FirstName, &profile.LastName, &profile.Age)
  23. checkError(err)
  24. fmt.Println(profile)
  25. }
  26. rows.Close()
  27. db.Close()
  28. }
  29. func checkError(err error) {
  30. if err != nil {
  31. panic(err)
  32. }
  33. }</code>

将数据插入数据库

  1. <code>package main
  2. import (
  3. _ "github.com/mattn/go-sqlite3"
  4. "database/sql"
  5. "fmt"
  6. )
  7. type Profile struct{
  8. ProfileId int
  9. FirstName string
  10. LastName string
  11. Age int
  12. }
  13. func main(){
  14. db, err := sql.Open("sqlite3", "./personal.db")
  15. checkError(err)
  16. /* 更新数据库数据
  17. statement, err := db.Prepare("update Profile set FirstName = ? where ProfileId = ?")
  18. checkError(err)
  19. statement.Exec("Martha", 5)
  20. */
  21. statement, err := db.Prepare("insert into Profile (FirstName, LastName, Age) values(?,?,?)")
  22. checkError(err)
  23. statement.Exec("Jessica", "McArthur", 30)
  24. /* 删除数据库数据
  25. statement ,err := db.Prepare("delete from Profile where ProfileId = ?")
  26. checkError(err)
  27. statement.Exec(3)
  28. */
  29. var profile Profile
  30. rows, err := db.Query("select ProfileId, FirstName, LastName, Age from Profile")
  31. checkError(err)
  32. for rows.Next(){
  33. err := rows.Scan(&profile.ProfileId, &profile.FirstName, &profile.LastName, &profile.Age)
  34. checkError(err)
  35. fmt.Println(profile)
  36. }
  37. rows.Close()
  38. db.Close()
  39. }
  40. func checkError(err error) {
  41. if (err != nil) {
  42. panic(err)
  43. }
  44. }</code>

Go基础编程实践(十)—— 数据库

标签:基础   插入   exe   exec   工具   cart   ror   插入数据   fun   

人气教程排行