package main
import (
"encoding/json"
"fmt"
"time"
"database/sql"
_ "github.com/go-sql-driver/mysql"
)
type Users struct {
ID int `json:"id"`
Name string `json:"name"`
Age int `json:"age"`
Created_At *string `json:"created_at"`
Updated_At *string `json:"updated_at"`
}
// create
func create() {
db, err := sql.Open("mysql", "root:root@/go_sql")
if err != nil {
fmt.Println("create connetion failed.....", err)
return
}
defer db.Close()
sql := "insert into users(name,age,created_at)values(?,?,?)"
stmt, _ := db.Prepare(sql)
defer stmt.Close()
rs, err := stmt.Exec("BOB", 12, GetTime())
if err != nil {
fmt.Println("create info faield.......", err)
return
}
id, _ := rs.LastInsertId()
fmt.Println("last_insert_id value is: ", id)
affert_num, _ := rs.RowsAffected()
fmt.Println("number of affcted rows", affert_num)
}
// edit
func edit() {
db, err := sql.Open("mysql", "root:root@/go_sql")
if err != nil {
fmt.Println("create connetion failed.....", err)
return
}
defer db.Close()
sql := "update users set name=?,updated_at=? where id=?"
stmt, _ := db.Prepare(sql)
defer stmt.Close()
rs, err := stmt.Exec("Allent", GetTime(), 1)
if err != nil {
fmt.Println("edit faield.....", err)
return
}
affert_num, _ := rs.RowsAffected()
fmt.Println(affert_num)
}
// delete
func delete() {
db, err := sql.Open("mysql", "root:root@/go_sql")
if err != nil {
fmt.Println("create connetion failed.....", err)
return
}
defer db.Close()
sql := "delete from users where id=?"
stmt, _ := db.Prepare(sql)
defer stmt.Close()
rs, _ := stmt.Exec(1)
affert_num, _ := rs.RowsAffected()
fmt.Println(affert_num)
}
// one query
func query() {
db, err := sql.Open("mysql", "root:root@/go_sql")
if err != nil {
fmt.Println("create connetion failed.....", err)
return
}
defer db.Close()
var user Users
db.QueryRow("select * from users where id=?", 3).Scan(&user.ID, &user.Name, &user.Age, &user.Created_At, &user.Updated_At)
rs, _ := json.Marshal(user)
fmt.Println(string(rs))
}
// more query
func more_query() {
db, err := sql.Open("mysql", "root:root@/go_sql")
if err != nil {
fmt.Println("create connetion failed.....", err)
return
}
defer db.Close()
rows, err := db.Query("select * from users")
if err != nil {
fmt.Println("more query faield......", err)
return
}
defer rows.Close()
var user Users
users := make([]Users, 0)
for rows.Next() {
err := rows.Scan(&user.ID, &user.Name, &user.Age, &user.Created_At, &user.Updated_At)
if err != nil {
fmt.Println("row.scan failed......", err)
return
}
users = append(users, user)
}
rs, _ := json.Marshal(users)
fmt.Println(string(rs))
}
func main() {
create()
edit()
delete()
query()
more_query()
}
func GetTime() string {
return time.Now().Format("2006-01-02 15:04:05")
}
GO 操作数据库 CURD
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 转载请注明出处:https://www.jianshu.com/p/664ddc66858f 1、数据库的简介 2...
- 之前我在搞网站的时候,因为一些数据库的表存在不同的服务器,所以就要把表结合起来,如果文件大的话,倒入导出就要等很久...