加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

golang基础-go对数据库的增删改查操作

发布时间:2020-12-16 09:43:23 所属栏目:大数据 来源:网络整理
导读:增加 首先看数据库的结构: mysql desc person; +----------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +----------+--------------+------+-----+---------+----------------+ | user _id

增加

首先看数据库的结构:

mysql> desc person; +----------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra | +----------+--------------+------+-----+---------+----------------+
| user_id | int(255) | NO | PRI | NULL | auto_increment |
| username | varchar(255) | NO   |     | NULL    |                |
| sex      | varchar(255) | YES  |     | NULL    |                |
| email | varchar(255) | YES | | NULL | | +----------+--------------+------+-----+---------+----------------+
4 rows in set (0.05 sec)
package main

import (
    "fmt"
    _"github.com/go-sql-driver/mysql"
    "github.com/jmoiron/sqlx"
)

type Person struct {
    UserId   int    `db:"user_id"`
    Username string `db:"username"`
    Sex      string `db:"sex"`
    Email    string `db:"email"`
}

type Place struct {
    Country string `db:"country"`
    City    string `db:"city"`
    TelCode int    `db:"telcode"`
}

var Db *sqlx.DB
func init() {
    database,err := sqlx.Open("mysql","root:root@tcp(127.0.0.1:3306)/safly")
    if err != nil {
        fmt.Println("open mysql failed,",err)
        return
    }
    Db = database
}

func main() {
    r,err := Db.Exec("insert into person(username,sex,email)values(?,?,?)","stu001","man","stu01@qq.com")
    if err != nil {
        fmt.Println("exec failed,err)
        return
    }
    id,err := r.LastInsertId()
    if err != nil {
        fmt.Println("exec failed,err)
        return
    }

    fmt.Println("insert succ:",id)
}
mysql> select * from person; +---------+----------+------+--------------+
| user_id | username | sex | email | +---------+----------+------+--------------+
| 1 | stu001 | man | stu01@qq.com | +---------+----------+------+--------------+
1 row in set (0.00 sec)

查询

package main

import (
    "fmt"
    _ "github.com/go-sql-driver/mysql"
    "github.com/jmoiron/sqlx"
)

type Person struct {
    UserId   int    `db:"user_id"`
    Username string `db:"username"`
    Sex      string `db:"sex"`
    Email    string `db:"email"`
}

type Place struct {
    Country string `db:"country"`
    City    string `db:"city"`
    TelCode int    `db:"telcode"`
}
var Db *sqlx.DB
func init() {

    database,err)
        return
    }

    Db = database
}

func main() {

    var person []Person
    err := Db.Select(&person,"select user_id,username,email from person where user_id=?", 1)
    if err != nil {
        fmt.Println("exec failed,err)
        return
    }

    fmt.Println("select succ:",person)
}

输出如下:

PS E:golanggo_prosrcsafly> go run demo.go
select succ: [{1 stu001 man stu01@qq.com}]
PS E:golanggo_prosrcsafly>

修改

package main

import (
    "fmt"
    _ "github.com/go-sql-driver/mysql"
    "github.com/jmoiron/sqlx"
)

type Person struct {
    UserId   int    `db:"user_id"`
    Username string `db:"username"`
    Sex      string `db:"sex"`
    Email    string `db:"email"`
}

type Place struct {
    Country string `db:"country"`
    City    string `db:"city"`
    TelCode int    `db:"telcode"`
}

var Db *sqlx.DB

func init() {

    database,err)
        return
    }

    Db = database
}

func main() {

    _,err := Db.Exec("update person set username=? where user_id=?","stu0001",err)
        return
    }

}
mysql> select * from person; +---------+----------+------+--------------+
| user_id | username | sex | email | +---------+----------+------+--------------+
| 1 | stu0001 | man | stu01@qq.com | +---------+----------+------+--------------+
1 row in set (0.00 sec)

删除

package main

import (
    "fmt"
    _ "github.com/go-sql-driver/mysql"
    "github.com/jmoiron/sqlx"
)

type Person struct {
    UserId   int    `db:"user_id"`
    Username string `db:"username"`
    Sex      string `db:"sex"`
    Email    string `db:"email"`
}

type Place struct {
    Country string `db:"country"`
    City    string `db:"city"`
    TelCode int    `db:"telcode"`
}

var Db *sqlx.DB

func init() {

    database,"root:root@tcp(127.0.0.1:3306)/safly")


    if err != nil {
        fmt.Println("open mysql failed,err := Db.Exec("delete from person where user_id=?",err)
        return
    }

    fmt.Println("delete succ")
}

输出如下:

mysql> select * from person;
Empty set (0.00 sec)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读