老男孩教育专注IT教育10余年,只培养IT技术精英

全国免费咨询电话(渠道合作):400-609-2893

老男孩教育-Go语言操作MySQL(二)

老男孩IT教育

行业新闻

2021年4月19日 17:54

GO语言如何操作MySQL?之前为大家介绍了上半部分,接下来跟着老男孩教育继续往下看。

  GO语言如何操作MySQL?之前为大家介绍了上半部分,接下来跟着老男孩教育继续往下看。

  插入操作

  建议使用结构化操作,不推荐使用直接拼接sql语句的方法。

package main

import (
    "fmt"

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

type Student struct {
    Id     int    `db:"id"`
    Name   string `db:"name"`
    Sex    string `db:"sex"`
    Age    int    `db:"age"`
    Course string `db:"course"`
}

var Db *sqlx.DB

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

func main() {
    r, err := Db.Exec("insert into student(name, sex, age, course)values(?, ?, ?, ?)", "张三", "男", 18, "Golang")
    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)
}

  查询操作

package main

import (
    "fmt"

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

type Student struct {
    Id     int    `db:"id"`
    Name   string `db:"name"`
    Sex    string `db:"sex"`
    Age    int    `db:"age"`
    Course string `db:"course"`
}

var Db *sqlx.DB

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

func main() {
    var student []Student
    err := Db.Select(&student, "select id, name, sex, age, course from student where course=?", "Golang")
    if err != nil {
        fmt.Println("exec failed, ", err)
        return
    }

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

  修改操作

package main

import (
    "fmt"

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

type Student struct {
    Id     int    `db:"id"`
    Name   string `db:"name"`
    Sex    string `db:"sex"`
    Age    int    `db:"age"`
    Course string `db:"course"`
}

var Db *sqlx.DB

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

func main() {
    res, err := Db.Exec("update student set name=? where course=?", "李四", "Golang")
    if err != nil {
        fmt.Println("exec failed, ", err)
        return
    }
    row, err := res.RowsAffected()
    if err != nil {
        fmt.Println("rows failed, ", err)
    }
    fmt.Println("update succ:", row)
}

  删除操作

package main

import (
    "fmt"

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

type Student struct {
    Id     int    `db:"id"`
    Name   string `db:"name"`
    Sex    string `db:"sex"`
    Age    int    `db:"age"`
    Course string `db:"course"`
}

var Db *sqlx.DB

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

func main() {
    res, err := Db.Exec("delete from student where name=?", "李四")
    if err != nil {
        fmt.Println("exec failed, ", err)
        return
    }

    row, err := res.RowsAffected()
    if err != nil {
        fmt.Println("rows failed, ", err)
    }

    fmt.Println("delete succ: ", row)
}

  修改和删除操作都比较简单,同插入数据类似,只是使用RowsAffected来获取影响的数据行数。

  老男孩教育率行业之先开设GO语言课程,如果你想要学习GO语言,欢迎来老男孩教育试听,师资力量强大、内容体系完善,助你实现高薪就业。

  推荐阅读:

  Pandas Series对象有哪些属性?Python学习班

  Python知识之常用关键字!Python全日制班

  Python是免费的吗?Python培训机构!

本文经授权发布,不代表老男孩教育立场。如若转载请联系原作者。