0
点赞
收藏
分享

微信扫一扫

Golang_web-数据库_插入数据

陬者 2022-05-25 阅读 69

Golong


文章目录

  • ​​Golong​​
  • ​​1.操作数据库​​
  • ​​1.1获取数据库连接​​
  • ​​1.2增删改操作​​
  • ​​1.3 单元测试​​


1.操作数据库

Go 语言中的 database/sql 包定义了对数据库的一系列操作。database/sql/driver包定义了应被数据库驱动实现的接口,这些接口会被 sql 包使用。但是 Go 语言没有提供任何官方的数据库驱动,所以我们需要导入第三方的数据库驱动。不过我们连接数据库之后对数据库操作的大部分代码都使用 sql 包。

1.1获取数据库连接

创建一个 db.go 文件,导入 database/sql 包以及第三方驱动包

package chapter02
import (
"database/sql"
_ "github.com/go-sql-driver/mysql"
)
var(
Db *sql.DB
err error

)

func init() {
Db, err = sql.Open("mysql", "root:root@tcp(localhost:3306)/test")
if err != nil {
panic(err.Error())
}
}

1.2增删改操作

Golang_web-数据库_插入数据_sql

向 users 表中插入一条记录

创建 user.go 文件,文件中编写一下代码

package model01

import (
"fmt"
"go_code02/webapp/chapter02"
)
type User struct { ID int
Username string
Password string
Email string
}
func (user *User) AddUser() error {
// 写 sql 语句
sqlStr := "insert into users(username , password , email) values(?,?,?)"
//预编译
stmt, err := chapter02.Db.Prepare(sqlStr)
if err != nil {
fmt.Println("预编译出现异常:", err)
return err
}
//执行
_, erro := stmt.Exec(user.Username, user.Password, user.Email)
if erro != nil {
fmt.Println("执行出现异常:", erro)
return erro
}
return nil
}

1.3 单元测试

package model01

import (
"fmt"
"testing"
)

func TestAddUser(t *testing.T) {
fmt.Println("测试添加用户:")
user := &User{
Username: "admin3",
Password: "123456",
Email: "admin3@atguigu.com",
}
//将 user 添加到数据库中
user.AddUser()
}

Golang_web-数据库_插入数据_数据库_02
测试

go test

Golang_web-数据库_插入数据_预编译_03

查看一下数据库

Golang_web-数据库_插入数据_预编译_04
成功

举报

相关推荐

0 条评论