```go package main import ( "database/sql" "fmt" //配置环境MySQL _ "github.com/go-sql-driver/mysql" "log" "math" ) //在java中是声明类 但是go不是面向对象编程,所以它只是变量 type user struct { Id int Name string Pwd string CreatedAt string } //声明sql连接 在java的jdbc远古mysql连接版本中差不太多 var db0 *sql.DB func main() { //var us user //us.select2() //var us user //us.Name ="张三" //us.Pwd ="123" //us.CreatedAt ="321" //us.insert() //var us user //us.Id =7 //us.Name="李四" //us.Pwd="111" //us.CreatedAt="222" //us.update() //掉方法必须是闲声明 而且声明类似于变量 var us user us.Id =6 us.del() } /** 删除操作 */ func (user user) del() { var err error db0, err := sql.Open("mysql", "root:12345678@tcp(127.0.0.1:3306)/golang?charset=utf8") if err != nil { log.Fatal("数据库打开出现了问题:", err) return } db0.Ping() if err != nil { log.Fatal("数据库连接出现了问题:", err) return } rows, err := db0.Prepare("DELETE FROM user where id =?") res, err := rows.Exec(user.Id) if err !=nil{ fmt.Println("出错了",res) return } } /** 修改数据操作 */ func (user user) update() { var err error db0, err := sql.Open("mysql", "root:12345678@tcp(127.0.0.1.155:3306)/golang?charset=utf8") if err != nil { log.Fatal("数据库打开出现了问题:", err) return } db0.Ping() if err != nil { log.Fatal("数据库连接出现了问题:", err) return } rows, err := db0.Prepare("UPDATE `user` SET `name` = ?, `pwd` = ?, `created_at` = ? WHERE `id` = ?") res, err := rows.Exec(user.Name,user.Pwd,user.CreatedAt,user.Id) if err !=nil{ fmt.Println("出错了",res) return } } /** insert 插入 */ func (user user) insert (){ var err error db0, err := sql.Open("mysql", "root:12345678@tcp(127.0.0.1:3306)/golang?charset=utf8") if err != nil { log.Fatal("数据库打开出现了问题:", err) return } db0.Ping() if err != nil { log.Fatal("数据库连接出现了问题:", err) return } rows, err := db0.Prepare("INSERT INTO `user` ( `name`, `pwd`, `created_at`) VALUES (?, ?, ?) ") res, err := rows.Exec(user.Name,user.Pwd,user.CreatedAt) if err !=nil{ fmt.Println("出错了",res) return } } /** 查询使用实体类 */ func (user user) select2() { var err error db0, err := sql.Open("mysql", "root:12345678@tcp(127.0.0.1:3306)/golang?charset=utf8") if err != nil { log.Fatal("数据库打开出现了问题:", err) return } db0.Ping() if err != nil { log.Fatal("数据库连接出现了问题:", err) return } rows, err := db0.Query("select id, name, pwd, created_at from user") //rows, err := db0.Query(sqlStr) if err !=nil{ fmt.Println("出错了",err) return } //defer rows.Close() for rows.Next(){ err = rows.Scan(&user.Id,&user.Name,&user.Pwd,&user.CreatedAt) checkErr(err) fmt.Println(user.Id) fmt.Println(user.Name) fmt.Println(user.Pwd) fmt.Println(user.CreatedAt) } } /** 查询不使用实体类 */ func queryMultiRowDemo() { var err error db0, err := sql.Open("mysql", "root:12345678@tcp(127.0.0.1:3306)/golang?charset=utf8") if err != nil { log.Fatal("数据库打开出现了问题:", err) return } db0.Ping() if err != nil { log.Fatal("数据库连接出现了问题:", err) return } rows, err := db0.Query("select id, name, pwd, created_at from user") //rows, err := db0.Query(sqlStr) if err !=nil{ fmt.Println("出错了",err) return } //defer rows.Close() for rows.Next(){ var id int var name string var pwd string var createdat string err = rows.Scan(&id,&name,&pwd,&createdat) checkErr(err) fmt.Println(id) fmt.Println(name) fmt.Println(pwd) fmt.Println(createdat) } } /** 报错信息 */ func checkErr(err error) { if err != nil { panic(err) } }