mybatis的SQL映射配置文件
SQL映射文件有很少的几个顶级元素(按照他们应该被定义的顺序如下)。
?
cache - ?配置给定命名空间的缓存cache-ref – ?从其他命名空间引用缓存配置。?resultMap – ?最复杂,也是最有力量的元素,用来描述如何从数据库结果集中来加载你的对象。parameterMap – ?已经被废弃了!老式风格的参数映射。内联参数是首选,这个元素可能在将来被移除。sql – ?可以重用的SQL块,也可以被其他语句引用。insert – ?映射插入语句?update – ?映射更新语句?delete -映射删除语句select - 映射查询语句SELECT简单的SELECT 语句如下:
?
parameterType="domain.blog.Author"这个元素可以被用来定义可重用的SQL代码段,可以包含在其他语句中,例如
?
package com.someapp.model; public class User { private int id; private String username; private String hashedPassword; //set和get方法。。。。}?
?
flushInterval="60000"?
?这个配置创建了一个FIFO缓存,并每隔60秒刷新,存数结果对象或列表的512个引用,而且返回的对象被认为是只读的,因此在不同线程中的调用者之间修改它们会导致冲突。
?
可用的收回策略有:?
?
LRU – ?最近最少使用的:移除最长时间不被使用的对象。FIFO – ?先进先出:按对象进入缓存的顺序来移除它们。SOFT – ?软引用:移除基于垃圾回收器状态和软引用规则的对象。WEAK – ?弱引用:更积极地移除基于垃圾收集器状态和弱引用规则的对象。?默认的是LRU。?flushInterval(刷新间隔)可以被设置为任意的正整数,而且它们代表一个合理的毫秒形式的时间段。默认情况是不设置,也就是没有刷新间隔,缓存仅仅调用语句时刷新。?
?
size(引用数目)可以被设置为任意正整数,要记住你缓存的对象数目和你运行环境的可用内存资源数目。默认值是1024。?
?
?readOnly(只读)属性可以被设置为true 或false。只读的缓存会给所有调用者返回缓存对象的相同实例。因此这些对象不能被修改。这提供了很重要的性能优势。可读写的缓存会返回缓存对象的拷贝(通过序列化)。这会慢一些,但是安全,因此默认是false。?
?
?
动态SQL动态SQL的元素有以下几个:
?
if??choose(when,otherwise)??trim(where,set) ??foreach?
?
?
if?
?
SELECT *?foreach 元素是非常强大的,它允许你指定一个集合,声明集合项和索引变量,它们可以用在元素体内。它也允许你指定开放和关闭的字符串,在迭代之间放置分隔符。
?