最近又看了遍iabtis 简单记录一下!
1.缓存: Memory cache 实现使用reference类型来管理cache的行为,垃圾回收器根据reference中的了类型判断是否要回收cache中的数据,适用于没有同意对象重用模式的应用,或内存不足的应用 reference-type : strong ,soft ,weak s
trong:基于传统的java对象的引用机制,必须使用显示的晴空缓存(到了刷新缓存的时间,或者执行了更新等操作,或者代码里做了清除),会一直在内存中。 适用于内存充足的情况。 soft:只有JVM内存不足的情况,才会对缓冲池中的数据进行回收。适用与内存较充足 并且并发量不是很多的情况下。 weak:当jvm启动垃圾回收的时候,将被回收。 这三种的话,weak为最佳选择们可以提高查询的性能,但对于当前不被使用的查询结果数据,将被清除以释放。
LRU cache:近期最少使用原则来确定如何从cache中清除对象cache-size的属性值必须是整数,代表同事存在cache中的最大数目。
FIFO cache: 实现用“先进先出”原则来确定如何从缓存中清除,对于短时间内持续引用的特定查询后很可能不再使用的情况。
OScahce:缓存引擎插件,具有很好的配置性,分布式,灵活性。可以缓存任何对戏那个,拥有全面的API,永久缓存,支持集群。
cacheModel缓存的是statement,即key是跟sql语句相关,如果sql语句不同,将产生两个cache。 cache-size设置的大小一直是我纠结的事情,如果sql是不变的,我认为是产生的一个list的对象保存到缓存中,所以cache-size 可以设置成为1
2.配置: 对于存储过程之外的statement 而言,建议使用parameterClass作为参数配置方式;对于返回结果,如果是select语句,建议使用resultClass进行定义。
3.ibatis后台调试日志: log4j.logger.java.sql.PreparedStatement=Debug
4.一对多关联查询,观察日志发现,sql会首先将所有数据查出来,然后再分别查,开销很大,可以使用存储过程来规避。
5.延迟加载: 执行sql时,只是想数据库发送了一条sql,而用于获取子记录的sql。只有在真正访问其他表对象时时,才开始执行。 lazyLoadingEnabled 是否使用延迟加载 enhancementEnabled 设定是否启用字节码强化执行
6.动态映射 <dynamic prepend="WHERE"><isnotempty prepend="AND" property="name"> (name lika #name#) </isnotempty></dynamic> 判定条件:一元判定:isEmpty ,isnotEmpty,isNull,isnotNull 二元判定:两个判定参数,一个是属性一个是判定值 isEqual ,isGreaterThan, isLessThan
7.事务管理: ibatis 自动化的事务提交机制,根据当前的调用环境,自动判断是否需要自动提交。 JDBC事务由Connection管理,事务周期限于Connection的生命周期。 JTA事务由JTA容器实现,对加入事务的众多Connection进行调度。
附件中为学习的ibatis文章。
分享到:
相关推荐
ibatis 使用手册:ibatis 开发指南、ibatis sql maps、ibatis sql maps 入门教程。
使用Ibatis对数据库的访问,实现增删改查的操作 ;
ibatis 使用简单配置
ibatis适用手册,快速掌握ibatis
ibatis使用小文档,希望对你有,里面有很详细的注释
ibatis使用指南
包括ibatis开发的基础教程,以及ibatis在eclipse、myeclipse中搭建开发环境的详细步骤。
ibatis 相关使用文档及安装包ibatis 相关使用文档及安装包
ibatis使用过程中的总结,有助于新手快速使用ibatis应用到自己的项目中
ibatis教程 主要是对这个软件的入门的介绍和如何加载和使用
iBATIS使用指南
iBatis2与iBatis1的对比,使用和相关技术及配置
他们也阐明了怎样取得你已编写的SQL语句及把他们映射给iBATIS使用的Bean。最后,还讨论了iBATIS的优缺点,及为什么是这样的一种方式,即所谓的“在完全OR与JDBC之间的一个幽雅的折衷。” <br>就象Developer's ...
ibatis 代码 例子 项目 or-mapping,ibati 代码 例子 项目 or-mapping。
虽然ibatai sql map可以配置多个参数,但sqlMap只能传入一个参数,我们有两种方式,一是把我们的参数封装成一个类,通过set/get取值的方式给sql map注入参数,二是通过hashMap(可以组合一些不是同一个pojo的参数有...
java软件工程师培训的时候来时带着做的工程 带超详细的注释 绝对可以从不会到会 演示了mybatis的绝大部分应用。
NULL 博文链接:https://tianke645.iteye.com/blog/876116
第四部分 iBATIS使用秘诀 第13章 iBATIS最佳实践 230 13.1 iBATIS中的单元测试 230 13.1.1 对映射层进行单元测试 231 13.1.2 对DAO进行单元测试 233 13.1.3 对DAO的消费层进行单元测试 235 13.2 管理iBATIS配置文件...
ibatis简易使用ibatis简易使用ibatis简易使用