全部博文(155)
分类: Java
2011-03-07 19:29:51
insert 返回的为插入的主键值,但必须在配置文件中加入
如果主键值为String
<selectKey resultClass="String" keyProperty="resourceId" >
select resource_id as resourceId from rentout where resource_id=#resourceId#
]]>
selectKey>
如果主键值为Int型
<selectKey resultClass="Integer" keyProperty="id" >
Select last_insert_id();
]]>
selectKey>
Update,和Delete返回为修改数据影响的条数;
注入a.在关键字传入前加‘%’; 例:String keyword=”%”+keyword+”%”;
b、过滤关键字中的非法字符
SQL提取的运用 在
resultClass:可以把结果自动映射到相应的JAVA类中,但无法指定输出字段的类型,会对性能产生轻微的影响。
resultMap:可以预先定义resultMap元素,可以控制数据如何从结果集中取出,以及哪个属性匹配哪个字段,
和parameterMap的区别
parameterClass属性值是JAVA类的全限定名,目的是限制输入参数的类型为指定的JAVA类,如果不指定,任何带有合适属性(get/set方法)的JAVA BEAN都可以作为输入参数
parameterMap:预先定义parameterMap的属性值,用于有次序的参数匹配JDBC符号
#”和“$”的区别“#” 为占为符
“$”为直接替换,但为出现SQL引入问题和性能上的影响,like,limit和表名的引入必须使用“$”
a. 用ibatis自带的分页功能,但是自带分页是把所有数据读入内存再分页的,所以必须自己覆写LimitSqlExecutor方法,
b. 直接使用limit实现
条件的组装
用了特殊字符的SQL语句不能直接使用。必须用
自带缓存的运用
缓存策略:
LRU:最近最少使用
MEMORY:适用于没有统一的对象重用模式,property的属性值必须是STRONG,
SOFT,WEAK,这三个值分别对应于JVM不同内存reference类型。
WEAK,大多数情况下,WEAK是最佳选择,缺省值就是WEAK,它能大大提高常用查询的性能,对于当前不被使用的查询数据,将被清除
SOFT,在查询结果对象不被使用,可以减少内存不足的可能性
STRONG,对查询的结果一直保留在内存中,可以使用在数据量很少或者静态数据的时
FIFO:先进先出
OSCACHE:配置oscache.properties
的使用假如没有必要写JAVA BEAN作为参数,可以直接使用基本类型,也可以直接传入参数值。如果是直接传入参数值就配置文件中必须写 #value#做为参数传入
在ibatis里的运用
Username=#stringList[]#
]]>
List参数名后面一定要加“[]”,防止解析器简单的把List解析成String
结果:username=(1 or 2 or 3)
startTransacton();
commitTransaction();
rollbackTransaction();
如果有很多非查询的(insert/update/delete)语句要处理,为了减少网络通讯的流量,可以进行批处理
sqlMap.startBatch();
sqlMap.endBatch();
xmlResultName的运用 详细输出结果直接把查存出来的结果映射成XML document
id=”getPerson” parameterClass=”int” resultClass=”xml” xmlResultName=”person”>
Select id as id,name as name from person where id=#value#;
结果:返回的为XML格式的字符串(String)
< person>
person>
xmlResultName属性值为根目录名