09 04 2022

第十八章、数据操作

        一、golang操作mysql

            1.1 安装第三方库

            进入到项目的src目录下,在终端执行:go get github.com/go-sql-driver/mysql

            image.png

            image.png

            1.2 连接mysql    sql.Open()

            image.png

            image.png

            image.png

            1.3 往mysql写入数据DB.Exec()

            image.png

            1.4 查询数据

            单行查询:db.QueryRow()

            image.png

            image.png

            多行查询:db.Query()

            image.png

            1.5 更新数据DB.Exec()

            image.png

            1.6 删除数据DB.Exec()

            image.png

            image.png


            1.7 mysql预处理 func (db *DB) Prepare(query string) (*stmt,error)

            一、预处理查询

            image.png

            二、预处理添加、删除、编辑语句类似

            image.png

            1.8 mysql事务DB.Begin()    DB.Commit()    DB.Rollback()

            image.png

            image.png

            image.png

            image.png

            

            1.9 演示sql注入     注意:任何时候,都不应该在项目中拼接SQL语句!!!

            image.png

            image.png

            image.png

            image.png


        二、golang操作sqlx库

            2.1 sqlx库基本介绍

            sqlx是 Go 的软件包,它在出色的内置database/sql软件包的基础上提供了一组扩展。

            该库兼容sql原生包,同时又提供了更为强大的、优雅的查询、插入函数。

            该库提供四个处理类型,分别是:

            sqlx.DB – 类似原生的 sql.DB;sqlx.Tx – 类似原生的 sql.Tx;sqlx.Stmt – 类似原生的 sql.Stmt, 准备 SQL 语句操作;sqlx.NamedStmt – 对特定参数命名并绑定生成 SQL 语句操作。

            提供两个游标类型,分别是:

            sqlx.Rows – 类似原生的 sql.Rows, 从 Queryx 返回;sqlx.Row – 类似原生的 sql.Row, 从 QueryRowx 返回。

            2.2 安装第三方库

            进入到项目的src目录下,在终端执

            image.png

            image.png

            2.3 链接数据库   sqlx.Connect()

            image.png

            image.png

            image.png

            2.4 单行查询Db.Get()

            image.png

            image.png

            2.5 多行查询Db.Get()

            image.png

            image.png

            2.6 Db.NameEcex()方法用来绑定SQL语句与结构体或map中的同名字段

            image.png

            image.png

            2.7 注意事项

            image.png