现在的位置: 首页 > 综合 > 正文

MyBatis中映射文件的组成标签

2013年10月01日 ⁄ 综合 ⁄ 共 1287字 ⁄ 字号 评论关闭

MyBaits真正的核心是在映射语句中,对于所有的SQL映射的XML文件,对比JDBC代码量大约节省了95%的代码量。
分离SQL与JAVA代码,便于数据库设计人员更好的优化SQL及修改。

SQL映射文件的顶级元素:
cache:配置给定命名空间的缓存
cache-ref:从其他命名空间引用缓存配置
resultMap:最复杂,最有力量的元素,用来描述如何从数据库结果集中来加载你的对象
sql:可以重用的SQL块,也可以被其他语句引用
insert:映射插入语句
update:映射更新语句
delete:映射删除语句
select:映射查询语句

下面通过select实例,来了解相关属性信息
<select
id="selectPerson"
parapeterType="int"
resultType="hashmap"
resultMap="personResultMap"
flushCache="false"
useCache="true"
timeout="10000"
fetchSize="256"
statementType="PREPARED"
resultSetType="FORWORD_ONLY"
>

id:在命名空间中唯一的标识符
paramerType:将会传入这条语句的参数类的完全限定名或别名
resultType:从这条语句中返回的期望类型的类的完全限定名或别名。
resultMap:设置返回集合中的元素的完全限定名或别名
flushCache:将其设置为true,不论语句什么时候被调用,都会导致缓存被清空。默认为false
useCache:设置为true,将会导致本条语句的结果被缓存。默认为true。
timeout:设置驱动程序等待数据库返回请求结果,并抛出异常事件的最大等待值。默认不设置
fetchSize:暗示驱动程序每次批量返回的结果行数。默认不设置
statementType:STATEMENT、PREPARED或CALLABLE的一种,这会让MyBatis使用选择Statement、PreparedStatement或
CallableStatement。默认值:PREPARED
resultSetType:设置游标FORWARD_ONLY|SCROLL_SENSITIVE|SCROLL_INSENSITIVE中的一种。默认不设置

重用SQL
<sql id="userColumns">id,username,password</sql>
这个SQL片段可以被包含在其他语句中,eg:
<select id="selectUsers" paramertType="int" resultType="hashmap">
select <include refid="userColumns"/>
from some_table
</select>

完全限定名使用别名替代
在总配置文件中,使用如下代码
<typeAlias type="com.someapp.model.User" alias="User"/>
那么在Mapper中,可以直接使用User,即表示com.someapp.model.User

抱歉!评论已关闭.