<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<!-- 头文件 -->
<mapper namespace="com.baihe.dao.UserDao">
<!-- 核心文件 namespace 命名空间 dao文件的路径 -->
<cache eviction="" type="" blocking="" flushInterval=" " readOnly="" size="" ></cache>
<!-- 给定命名空间的缓存配置 -->
<!--eviction- (回收策略)-->
<!--LRU – 最近最少使用的Least Recently Used:移除最长时间不被使用的对象。(默认的属性)-->
<!--FIFO – 先进先出First in First out:按对象进入缓存的顺序来移除它们。-->
<!--SOFT – 软引用:移除基于垃圾回收器状态和软引用规则的对象。-->
<!--WEAK – 弱引用:更积极地移除基于垃圾收集器状态和弱引用规则的对象。-->
<!--flushInterval-(刷新间隔)-->
<!--可以被设置为任意的正整数,而且它们代表一个合理的 毫 秒形式的时间段。默认情况是不设置,也就是没有刷新间隔,缓存仅仅调用语句时刷新。-->
<!--size- (引用数目)-->
<!--可以被设置为任意正整数,要记住你缓存的对象数目和你运行环境的可用内存资源数目。默认值是1024。-->
<!--readOnly(只读)-->
<!--可以被设置为true或false。只读的缓存会给所有调用者返回缓存对象的相同实例。因此这些对象不能被修改。这提供了很重要的性能优势。可读写的缓存会
返回缓存对象的拷贝(通过序列化)。这会慢一些,但是安全,因此默认是false。-->
<!--type- cache实现类-->
<!--默认为PERPETUAL,可以使用自定义的cache实现类(别名或完整类名皆可)-->
<cache-ref namespace="" ></cache-ref>
<!-- 从其他命名空间引用缓存配置。-->
<!-- 如果你不想定义自己的cache,可以使用cache-ref引用别的cache。-->
<!-- 因为每个cache都以namespace为id-->
<!-- 所以cache-ref只需要配置一个namespace属性就可以了。-->
<!-- 需要注意的是,如果cache-ref和cache都配置了,以cache为准。-->
<sql id="result" databaseId="" lang="">
id,
name
</sql>
<!-- 可重复使用的查询集-->
<!-- 配合 <include refid="result"/> 使用 -->
<resultMap id="" type="" autoMapping=" " extends="">
<!-- 主键字段 -->
<id property="" column="" javaType="" jdbcType="" typeHandler=""></id>
<!-- 普通字段 -->
<result property="" column=""></result>
<!-- 构造函数-->
<constructor></constructor>
<!-- 配置一对一的关联关系 -->
<association property="" >
<id></id>
<result></result>
</association>
<!--配置一对多的关联关系-->
<collection property="" >
<id></id>
<result></result>
</collection>
<!-- -->
<discriminator javaType="">
<case value=""></case>
</discriminator>
</resultMap>
<!-- 复杂的结果处理 -->
<parameterMap id="" type="">
<parameter property="" javaType=""></parameter>
</parameterMap>
<!-- 复杂的参数 -->
<select id="" parameterType="" parameterMap="" resultType="" resultMap="" databaseId="" useCache="true" lang="" fetchSize="" flushCache="true" resultOrdered="true" resultSets=" " resultSetType=" " statementType=" " timeout="">
SELECT
<include refid="selectResult"/>
FROM
user
LIMIT #{pageStart},#{rows}
</select>
<!-- 查询语句 -->
<!--id- dao文件的方法名 -->
<!--parameterType或parameterMap- 参数类型 -->
<!--resultType或resultMap 返回值类型 -->
<!-- -->
<!--useCache- 是否使用缓存 -->
<insert id="" parameterMap="" useGeneratedKeys="true" timeout="" statementType=" " flushCache=" " lang="" databaseId="" parameterType="" keyProperty="" keyColumn=" " >
<selectKey keyProperty="" order="BEFORE" resultType="">
</selectKey>
INSERT INTO user
(<include refid="selectResult"/>)
VALUES
( #{id},
#{name},
#{password},
#{age},
#{sex})
</insert>
<!--插入语句 -->
<!-- keyColumn="id" keyProperty="id" useGeneratedKeys="true" 插入后可返回自增id-->
<delete id="" parameterType="" databaseId="" lang="" flushCache="true" statementType=" " timeout="" parameterMap="">
DELETE FROM
user
WHERE
id=#{id}
</delete>
<!-- 删除语句-->
<update id="" parameterMap="" timeout="" statementType=" " flushCache=" " lang="" databaseId="" parameterType="" keyColumn="" keyProperty="" useGeneratedKeys="true" >
UPDATE
app
SET
name=#{name},
password=#{password},
age=#{age},
sex=#{sex}
WHERE
id=#{id}
</update>
<!--修改语句 -->
<delete id="delete">
DELETE FROM
user
where
id IN
<foreach item="ids" index="index" collection="array" open="(" separator="," close=")">
#{ids}
</foreach>
</delete>
</mapper>
mybatis的mapper文件标签解析
最新推荐文章于 2024-05-16 11:54:54 发布