session的运⾏模式、批量提交
session的运⾏模式域批量提交:
mybatis的执⾏器有三种,即:
1)ExecutorType.SIMPLE;这种类型不做特殊的处理。只为每个语句创建⼀个PreparedStatement。
2)ExecutorType.REUSE; 这种类型会重复使⽤PreparedStatement。
3)ExecutorType.BATCH;这种类型实现批量更新,并且避开select语句,确保该动作易于理解。
可以只配置sqlSession时指定相应的类型。
1. <bean id="fsasSqlSession"class="batis.spring.SqlSessionTemplate">
2. <constructor-arg index="0"ref="fsasSqlSessionFactory"/>
3. <constructor-arg index="1"value="SIMPLE"/>
4. </bean>
批量更新sql语句
也可以通过SqlSessionFactory打开session时指定。
sqlSessionFactory.openSession(ExecutorType.BATCH);
session打开的⽅式有很多种:
在创建session时我们有很多种选择,譬如:是否⾃动提交,事务的级别,执⾏的⽅式等我们都可以指定,但是默认的执⾏器是SIMPLE。
这三种执⾏器除了上述特点外,在我们使⽤过程中还发现:
ExecutorType.SIMPLE:可以返回⾃增键,只需要在mapper⽂件中,增加属性: useGeneratedKeys="true"
keyProperty="productId"
⾃增键会在事务提交之后,⾃动传⼊到user中。
ExecutorType.BATCH:当前最新版本的mybatis(mybatis-3.2.0)⽆法再返回⾃增键值,只返回最后⼀个更新记录的⾃增键值(基本上没上意义)。并且⽆法返回更新数据的记录数
要实现批量插⼊数据有两种⽅式:
1)使⽤SIMPLE执⾏器,借助foreach动态sql语句,使⽤Insert values(...),(...),(...) 的⽅式,这种⽅式⽆法取到⾃增键。
当要使⽤BATCH执⾏器时,需要临时获取,也就是你设定的执⾏⽅式这个session中都是⼀样的,除⾮⾃⼰新建⼀个session。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论