go语言连接mysql,实现增删改查

配置 mysql 数据库驱动

获取驱动包:go get github.com/go-sql-driver/mysql

数据库表

在这里插入图片描述

具体实现代码

package main

import (
	"database/sql"
	"fmt"
	_"github.com/go-sql-driver/mysql"	// 空导入
)

func main() {

	// 打开链接
	db, err := sql.Open("mysql", "root:admin@tcp(localhost:3306)/first")
	db.Ping()
	defer func() {
		db.Close()
	}()
	if err != nil {
		fmt.Println("数据库连接失败")
		return
	}
	// 预处理sql
	//stmt, err := db.Prepare("insert into people value (default,?,?)")
	//stmt, err := db.Prepare("update people set name=?,address=? where id =?")
	//stmt, err := db.Prepare("delete from people where id =?")
	stmt, err := db.Prepare("select *  from people")
	if err != nil {
		fmt.Println("预处理失败")
		return
	}
	defer func(){
		stmt.Close()
	}()
	// 参数和占位符对应
	//result, err := stmt.Exec(2)
	//if err != nil {
	//	fmt.Println("sql执行失败")
	//	return
	//}

	// 获取结果
	//count, err := result.RowsAffected()
	//if err != nil {
	//	fmt.Println("结果获取失败")
	//	return
	//}

	//if count > 0 {
	//	fmt.Println("新增成功")
	//} else {
	//	fmt.Println("新增失败")
	//}

	// 查询
	rows, err := stmt.Query()
	if err != nil {
		fmt.Println("获取结果失败")
		return
	}
	defer func(){
		if rows!= nil {
			rows.Close()
		}
	}()
	for rows.Next(){
		var id int
		var name string
		var address string
		rows.Scan(&id,&name,&address)
		fmt.Println(id,name,address)
	}
	// 获取需要获取到新增时主键的值
	//id,_ := result.LastInsertId()
	//fmt.Println(id)
}

在这里插入图片描述

发布了117 篇原创文章 · 获赞 222 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/qq_43901693/article/details/101114400