转:ibatis的cacheModel
摘要:cachemodel是ibatis里面自带的缓存机制,正确的应用能很好提升我们系统的性能。使用方法:在sqlmap的配置文件中加入<cacheModel type="LRU" id="article_cache" readOnly="true" serialize="false"> <flushInterval hours="24"/> <flushOnExecute statement="articleLists.insertArticle"/
阅读全文
转:ibatis动态sql
摘要:直接使用JDBC一个非常普遍的问题就是动态SQL。使用参数值、参数本身和数据列都是动态SQL,通常是非常困难的。典型的解决办法就是用上一堆的IF-ELSE条件语句和一连串的字符串连接。对于这个问题,Ibatis提供了一套标准的相对比较清晰的方法来解决一个问题,这里有个简单的例子: <select id="getUserList" resultMap="user"> select * from user <isGreaterThan prepend="and" property="id" compa
阅读全文
转:ibatis的N+1问题解决方案
摘要:n+1选择问题定义:The N+1 Selects problem is caused by trying to load child records that are related to a list of parent records.在ibatis里有三种解决方案1.Lazy loading2.避免N+1 Select3.通过两条select语句分别从两个表中取数据然后组装1 Lazy loading:首先要设置 lazyLoadingEnabled="true"其次 在map中 注意<resultMap id="flightandPriceDO&q
阅读全文
转:ibatis配置简介
摘要:iBatis其实不是个真正意义上的OR-Mapping, 只能称为是个OSQL-Mapping吧,我们开发人员还是要自己写SQL,不过这个我比较喜欢,我们可以控制的更多,更灵活。不像Hibernate那么死板。iBatis将Java对象(大多是我们的Java Bean)映射成JDBC的PreparedStatement的输入参数和ResultSet。个人认为主要就是将我的的Java对象映射到SQL的参数和将SQL的查询结果转换为Java对象。下面说说我学习iBATIS SQL Maps开发指南的一些收获吧。(1) SQL Map XML 配置文件 SqlMapConfig.xml的深刻认识。&
阅读全文