GO 连接数据库实现数据的增删改查

成功连接数据库👇

var db *sql.DB

func getsql() { //十分重要的一点就是函数体内不要重新创建一个新的db变量!!!
	dsn := "root:123456@tcp(127.0.0.1:3306)/go"
	var err error
	db, err = sql.Open("mysql", dsn)
	if err != nil {
		panic(err)
	}
	if err := db.Ping(); err != nil {
		fmt.Println(err)
	} else {
		fmt.Println("get sql is true")
	}
}

这个数据库的表alpha内只有两列数据,一列是id,一列是name。一下所有操作均为针对这个表的操作。在使用的时候根据环境自由调整

实现数据的插入(增

func insert(id int, name string) {
	_, err := db.Exec("insert into alpha(id,name) values (?,?)", id, name)
//使用占位符插入id和name,根据自己的需求进行编写
	if err != nil {
		panic(err)
	}
}

在main函数调用的时候需要传递两个值,一个是id,一个是name。这个可以根据自己的需求灵活修改

实现数据的查询1.查询所有数据

func selectdata() ([]int, []string) {//把查询到的数据添加到切片,返回切片
	rows, err := db.Query("select * from alpha")//数据库的查询语句
	if err != nil {
		panic(err)
	}
	defer rows.Close()
	id_s := make([]int, 0)
	name_s := make([]string, 0)

	for rows.Next() {//循环所有数据
		var id int
		var name string

		if err := rows.Scan(&id, &name); err != nil {//把每一行的数据赋值个相应变量
			panic(err)
		}
		id_s = append(id_s, id)//把循环的id和name追加到切片
		name_s = append(name_s, name)
	}
	if err := rows.Err(); err != nil {
		panic(err)
	}
	return id_s, name_s//返回切片
}

实现数据的查询2.查询某一行数据

func sele_one(id int) (int, string) {//用户输入需要查询的id,函数返回id和name
	var name string
	err := db.QueryRow("select * from alpha where id=?", id).Scan(&id, &name)//查询到的结果写入id和name变量
//db。QueryRow只会查询一行
	if err != nil {
		panic(err)
	}
	return id, name//返回id和name
}

实现数据的删除(删

func delete(id int) {//用户给出需要删除的id
	_, err := db.Exec("delete from alpha where id=?", id)//执行删除语句,删除一整行数据
	if err != nil {
		panic(err)
	}
}

实现数据的修改(改

func changedata(id int, name string) {//用户给出需要改变的行的id和要改成什么
	_, err := db.Exec("update alpha set name=? where id=?", name, id)//执行sql修改语句,不会修改id,只会修改name。主要是因为id一般都是固定的不会改变的,如果有需要也可以修改
	if err != nil {
		panic(err)

	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值