使用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连接不成功就panicDB, 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_IN