Mybatis的一些总结

1、如何使用mybatis的链接池

2、使用mybatis往数据库中插入千万条数据,效率特别低。10W条就耗时一个多小时。

for(int i = 0; i < 10000000; i++){
currentAlarmServiceImpl.insertCurrentAlarm(currentAlarm);
}
直接调用DAO层,单个插入的接口,循环一千万次。
每次都要开启事务,提交事务等。特别耗时,是否可以考虑,以一万为单位来提交事务,每次都一万一万的提交。

3、总结一下
mybatis中常用的标签

//动态sql中

<sql></sql> 
<select></select>
<insert></insert>
<update></update>
<delete></delete>
    <foreach collection="", item="", index="", seporate=","></foreach> 
<where>
<if>
</if>
</where>

<set> 
    <test=""></test>
    <test=""></test>
</set> 

4、插入的数据中,有些需要实现jdbcType 和 javaType之间的转换。

java对象有其自己的数据类型,数据库有数据库的数据类型,在插入数据的时候,如何将java对象的数据类型转成数据库的数据类型。从数据库中查询出数据时,如何将数据库的类型转成java对象的类型。 这个过程是需要关注的。
在mybatis中定义了一个TypeHandler接口的类型处理器。通过实现此接
口,可以实现java类型和数据库类型之间的互相转换。

5、如何高效的分页查询。

6、升级过程发现的问题:

表数据在升级前进行备份,升级过程中,先删除表,升级后,重新创建表,并且导入备份的数据。此时数据库的主键会失效。直接插入数据,会抛出主键重复的异常。因为恢复备份的数据后,主键为1的记录已经存在,但是由于主键失效,插入数据的时候,数据库给数据主键赋值是1,但是表中已经存在键值为1的记录,所以会抛出异常。这时候解决方案是,在向升级后的表插入数据之前,重新设置表的主键,从数据库中查询出当前最大主键是多少,并且对表重新设置一下。 这样就可以了。

//先从升级后的表中查询出主键的最大id,然后设置表的主键从最大id+1开始,这样就可以正常添加新的记录了。
alter table check_t1 auto_increment= max(id);
需要研究的地方。自己写一个数据备份和恢复的脚本。

7、mybatis中的延迟加载,如何配置。

8、一级缓存、二级缓存区别和作用。

9、使用mybatis如何级联查询

10、在Spring-mybatis中如何配置Spring的事务。

11、使用动态代理,对try/catch方法进行去重,拦截Service中的类。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值