Mybatis的一些总结

来源:互联网 发布:录音文件编辑软件 编辑:程序博客网 时间:2024/06/06 02:26

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中的类。

原创粉丝点击