文章目录
- 安装驱动
- 连接数据库
- 查询表
- 结果
- 插入
- 结果
- 删除
- 结果
安装驱动
go get github.com/go-sql-driver/mysql
import ("database/sql""fmt"_ "github.com/go-sql-driver/mysql"
)
连接数据库
//用户名:密码^@tcp(地址:3306)/数据库db, err := sql.Open("mysql", "root:123456%^@tcp(39.107.87.114:3306)/book_manager?charset=utf8")if err!=nil {fmt.Println(err)return}
查询表
//表结构type info struct {id int `db:"id"`name string `db:"name"`author string `db:"author"`} //查询表rows,err:=db.Query("SELECT * FROM book")//遍历打印for rows.Next(){var s infoerr=rows.Scan(&s.id,&s.name,&s.author,)fmt.Println(s)}//用完关闭rows.Close()
完整代码
结果
[kou@python golang]$ go run go_mysql.go
{4 三国演义 罗贯中}
插入
//执行MySql语句result,err:=db.Exec("INSERT INTO book(id,name,author)VALUES (?,?,?)",2,"将进酒","李白")if err != nil {panic(err)} fmt.Println(result)for rows.Next(){var s infoerr=rows.Scan(&s.id,&s.name,&s.author,)fmt.Println(s)} rows.Close()
}
结果
[kou@python golang]$ !g
go run go_mysql.go
{4 三国演义 罗贯中}
{0xc0000a2100 0xc000016390}
[kou@python golang]$ !ggo run go_mysql.go
{2 将进酒 李白}
{4 三国演义 罗贯中}panic: Error 1062: Duplicate entry '2' for key 'PRIMARY'goroutine 1 [running]:
main.main()/home/kou/golang/go_mysql.go:32 +0x4fa
exit status 2
[kou@python golang]$ !vi
vim go_mysql.go
删除
db.Exec("DELETE FROM book where id=?", 2)rows,err:=db.Query("SELECT * FROM book")for rows.Next(){var s infoerr=rows.Scan(&s.id,&s.name,&s.author,)fmt.Println(s)}
结果
[kou@python golang]$ !g
go run go_mysql.go
{4 三国演义 罗贯中}