码迷,mamicode.com
首页 > 数据库 > 详细

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

时间:2019-07-13 20:17:43      阅读:179      评论:0      收藏:0      [点我收藏+]

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

从数据库中读取数据

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

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)
    }
}

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

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

原文地址:https://www.cnblogs.com/GaiHeiluKamei/p/11181765.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!