Mybatis批量提交实现步骤详解

网友投稿 1006 2023-03-02

Mybatis批量提交实现步骤详解

Mybatis批量提交实现步骤详解

简介:mybatis的批量操作减少数据库连接次数

一、mapper 使用foreach 遍历

批量insert:

http://

INSERT INTO emp(ename,gender,email,did)

VALUES

(#{emp.eName},#{emp.gender},#{emp.email},#{emp.dept.id})

批量update:

UPDATE green_beans

stock=#{bean.stock}

beanUid = #{bean.beanUid}

二、使用 mybhttp://atis ExecutorType.BATCH

使用步骤:

(1)在全局配置文件applcationContext.xml中加入

(2)在service实现中添加:

@Autowired

private SqlSession sqlSession;

//批量保存员工

@Override

public Integer batchEmp() {

// TODO Auto-generated method stub

//批量保存执行前时间

long start=System.currentTimeMillis();

EmployeeMapper mapper= sqlSession.getMapper(EmployeeMapper.class);

for (int i = 0; i < 10000; i++) {

mapper.addEmp(new Employee(UUID.randomUUID().toString().substring(0,5),"b","1"));

}

long end= System.currentTimeMillis();

long time2= end-start;

//批量保存执行后的时间

System.out.println("执行时长"+time2);

return (int) time2;

}

demo:

@Test //批量保存方法测试

public void testBatch() throws IOException{

SqlSessionFactory sqlSessionFactory=getSqlSessionFactory();

//可以执行批量操作的sqlSession

SqlSession openSession=sqlSessionFactory.openSession(ExecutorType.BATCH);

//批量保存执行前时间

long start=System.currentTimeMillis();

try{

EmployeeMapper mapper= openSession.getMapper(EmployeeMapper.class);

for (int i = 0; i < 1000; i++) {

mapper.addEmp(new Employee(UUID.randomUUID().toString().substring(0,5),"b","1"));

}

openSession.commit();

long end= System.currentTimeMillis();

//批量保存执行后的时间

System.out.println("执行时长"+(end-start));

//批量 预编译sql一次==》设置参数==》10000次==》执行1次 677

//非批量 (预编译=设置参数=执行 )==》10000次 1121

}finally{

openSession.close();

}

}

mapper:

public interface EmployeeMapper {

//批量保存员工

puFzORDklwAblic Long addEmp(Employee employee);

}

mapper.xml :

insert into employee(lastName,email,gender)

values(#{lastName},#{email},#{gender})

insert into employee(lastName,email,gender)

values(#{lastName},#{email},#{gender})

三、总结:

方式一、需要修改数据库属性添加allowMutiQueries=true,例如:jdbc.url=jdbc:mysql://localhost:3306/mybatis?allowMultiQueries=true

方式二、需要开启事务提交,在applcationContext.xml中添加BATCH

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:怎么才能插件微信小程序(怎么才能插件微信小程序上传)
下一篇:企业app定制开发收费标准表(定制企业app开发公司)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~