```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)
}
}