想法产生:之前在学索引的时候,只有大量的数据,才能体现sql语句的优劣,所以学习了一下怎么往数据库插入大量数据,记录一下。
第一步,建一个简单的数据表table,只有几个简单的字段
例如:
这里要注意的是把id设为bigint型,要不然会出现报错
Data truncation: Out of range value for column 'id
第二步,新建实体类,写好Dao层,编写mapper.xml文件
@Mapper
public interface UserDao extends BaseMapper<UserDO> {
// List<UserDO> findAll();
int insertBycircle(List<TestDO> testDOList);
}
<insert id="insertBycircle" >
INSERT INTO test_find (id,name,age )
VALUES
<foreach collection="list" item="item" index="index" separator=",">
(#{item.id},#{item.name},#{item.age})
</foreach>
</insert>
其中collection是集合list,index就是索引的意思,具体理解可以参考这篇文章文章链接,文中就是直接用例子来测试,跟踪index的变化。
第三步,建立list循环,测试数据大量插入。
@Test
public void testCycle(){
List<TestDO> list=new ArrayList<>();
for (int i = 181001; i < 221001; i++) {
TestDO test=new TestDO();
test.setName("tt"+i);
test.setId(i);
test.setAge(i);
list.add(test);
}
int resu=userDao.insertBycircle(list);
System.out.println("resu=>>>>>>>>"+resu);
}
最后执行以下即可。