使用sqlx批量插入数据
在项目中我们通常可能会使用database/sql
连接MySQL数据库。sqlx
可以认为是Go语言内置database/sql
的超集,它在优秀的内置database/sql
基础上提供了一组扩展。这些扩展中除了大家常用来查询的Get(dest interface{}, ...) error
和Select(dest interface{}, ...) error
外还有很多其他强大的功能。
本文借助使用sqlx
实现批量插入数据的例子,介绍了sqlx
中可能被你忽视了的sqlx.In
和DB.NamedExec
方法。
库地址:https://github.com/jmoiron/sqlx,Star 数:8.1k+
前置条件
连接数据库
var DB *sqlx.DBfunc initDB() (err error) {
dsn := "username:password@tcp(127.0.0.1:3306)/sqlx_demo" // 也可以使用MustConnect连接不成功就panic DB, err = sqlx.Connect("mysql", dsn) if err != nil {
fmt.Printf("connect DB failed, err:%v\n", err) return } fmt.Println("connecting to MySQL...") return}
表结构
CREATE TABLE `user` ( `id` BIGINT(20) NOT NULL AUTO_INCREMENT, `name` VARCHAR(20) DEFAULT '', `age` INT(11) DEFAULT '0', PRIMARY KEY(`id`))ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;