golang连接mysql实现增删改查(CROD)
1.安装mysql drivergo get -v github.com/go-sql-driver/mysql2.初始化sqluse test;CREATE TABLE `t_test` (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(32) DEFAULT NULL,`password` varchar...
·
1.安装mysql driver
go get -v github.com/go-sql-driver/mysql
2.初始化sql
use test;
CREATE TABLE `t_test` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(32) DEFAULT NULL,
`password` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
3.连接数据库代码
package db
import (
"database/sql"
_ "github.com/go-sql-driver/mysql"
)
func Conn() (*sql.DB, error){
// root:root@tcp(127.0.0.1:3306)/test 说明:
// 第一个root是用户名
// 第二个root是密码
// 127.0.0.1:3306是地址
// test 是数据库
conn,err := sql.Open("mysql","root:root@tcp(127.0.0.1:3306)/test")
return conn, err
}
4.数据库增删改查代码
package db
import (
"encoding/json"
"fmt"
)
// 表t_test映射
type Ttest struct {
Id int64
Name string
Password string
}
func err_handler(err error) {
fmt.Printf("err_handler, error:%s\n", err.Error())
panic(err.Error())
}
// 增
func Insert() {
conn, err := Conn()
if err == nil {
exec, err := conn.Exec("INSERT INTO t_test(name,password ) VALUES(?,?)", "小红", "123456")
if err == nil {
affected , _ := exec.RowsAffected()
fmt.Print(affected)
}
if(err != nil){
err_handler(err)
}
}
}
// 删
func Delete() {
conn, err := Conn()
if(err != nil){
err_handler(err)
return
}
exec, err := conn.Exec("delete from t_test where name = ?", "小红")
if(err != nil){
err_handler(err)
return
}
affected, err := exec.RowsAffected()
if(err == nil){
fmt.Print("删除行数:", affected)
}
}
// 改
func Update() {
conn, err := Conn()
if(err != nil){
err_handler(err)
return
}
exec, err := conn.Exec("update t_test set password = ? where name = ?", "11111", "小红")
if(err == nil){
affected, _ := exec.RowsAffected()
fmt.Print("更新:", affected)
}
}
// 查
func Query() {
conn, err := Conn()
if err == nil {
query, err := conn.Query("select id Id, name Name,password Password from t_test")
if err != nil{
err_handler(err)
return
}
for query.Next(){
var test Ttest
err := query.Scan(&test.Id, &test.Name, &test.Password)
if err != nil {
err_handler(err)
}
test_json, err := json.Marshal(test)
if(err == nil){
fmt.Print("\n",string(test_json))
}
}
}
}
5.源码地址(在db文件夹下)
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
已为社区贡献3条内容
所有评论(0)