Mybatis-Mapper.xml

Mapper.xml配置详解

一、mapper

  配置文件的根文件

<mapper namespace="daoname">
</mapper>

  1.namespace-----将dao接口与此配置文件连接

二、resultMap

  当实体类属性与表中的列名不一致时,将它们一一映射。

	<!--
	1.type(对应结果集的Java类型)
	2.id(此命名空间中唯一标示 该结果集类型)
		-->
<resultMap type="" id="">
		<!--id标签对应主键属性和列
		1.property(实体表中属性名)
		2.column(数据库表的列名)
		3.javaType(属性的Java类型,可以不配置)
			-->
	<id property="" cloumn="" javaType="" />
		<!--result标签对应普通属性和列
			-->
	<result property="" cloumn="" javaType="" />
		<!--constructor标签对应实体类中的构造方法
		1.idArg(id参数)
		2.arg(普通参数)
			-->
	<constructor>
		<idArg cloumn="" />
		<arg column="" />
	</constructor>
		<!--collection标签 用以一对多关系
		1.javaType(容器类型)
		2.ofType(容器内的数据类型)
		3.resultMap(容器内实体类型属性名与表列名不一致时,若不配置此标签,则在标签中自己配置id,result)
			-->
	<collection property="" column="" javaType="" ofType="" resultMap="">
		<id />
		<result />
	</collection>
		<!--association 用以配置多对一
		用法与collection相似
			-->
	<association property="" column="" javaType="" resultMap="">
	</association>
</resultMap>

三、select

	<!--
	1.id( 必须配置,唯一标示此命名空间的select。
	2.parameterType( 可选配置,不配置将通过ParameterHandler自动识别类型。
	3.statementType( 可选配置,PREPARED|STATEMENT|CALLABLE,默认为PREPARED.SQL类型。
	4.resultMap(resultSet( 二选一结果集封装类型。
	5.useCache( 可选配置,是否使用二级缓存。true|false,默认为false6.flushCache( 可选配置,调用此语句,清空本地缓存和二级缓存。true|false,默认为true7.timeout( 抛出异常时,驱动等待数据库返回数据的秒数。默认为unset,依赖于驱动。
	8.resultSetType( 可选配置,结果集类型 FORWARD_ONLY|SCROLL_SENSITIVE|SCROLL_INSENSITIVE。默认值为unset,依赖驱动。
	9.fetchSize( 可选配置,这是尝试影响驱动程序每次批量返回的结果行数和这个设置值相等。默认值为unset依赖驱动。
			-->
<select id="" parameterType="" statementType="PREPARED" resultMap=""或resultSet="" useCache="false" flushCache="true" tiemout="unset" resultSetType="" fetchSize="">
	select from table where 
</select>

四、insert、update、delete

	<!--
	1.useGeneratedKeys( 是否使用数据库自增.true|false,默认为false2.keyProperty( 将数据插入的数据库后,查询该属性的值,赋值到参数对象的该属性上。
	3.keyColumn( 将数据插入的数据库后,查询该列的值,赋值到参数对象的该属性上。
		-->
<insert id="" parameterType="" statementType="PERPARED" timeout="unset" flushCache="true" useGeneratedKeys="false" keyProperty="unset" keyColumn="unset">
	insert into table(*) values()
</insert>
<update id="" parameterType="" statementType="PREPARED" tiemout="unset" flushCache="true" useGeneratedKeys="false" keyProperty="unset" keyColumn="unset">
	update table set ...  where
</update>
<delete id="" parameterType="" statementType="PREPARED" tiemout="unset" flushCache="true">
	delete from table where
</delete>

五、动态sql

	<!--
	where标签,当其后紧跟and或or时,可以将and或or去掉。
	对应的SQL语句段 ....where ... and|or ....
		-->
<where>
	<if test="">
	</if>
</where>
	<!--
	where标签与set标签是trim标签的实现。
	一下写法等价于where标签
		-->
<trim prefix="where" prefixOverrides="AND |OR ">
.......
</trim>
	<!--
	set标签,当其最后语句为","时,可以将多余的","去掉。
	对应SQL语句段 .... set ...,...,...
		-->
<set>
	<if test="">
	</if>
</set>
==
<trim prefix="SET" suffixOverrides=",">
</trim>
	<!--
	froeach标签,用于处理集合参数的拼接。
		-->
<foreach item="item" index="index" collection="list"
      open="(" separator="," close=")">
        #{item}
</foreach>
	<!--
	choose标签,用于处理多项选择的拼接。
		-->
<choose>
	<when test="">
	</when>
	<when test="">
	</when>
	<otherwise>
    </otherwise>
</choose>

六、cache

	<!--
	eviction(回收策略)默认的是 LRU。
		LRU – 最近最少使用的:移除最长时间不被使用的对象。
		FIFO – 先进先出:按对象进入缓存的顺序来移除它们。
		SOFT – 软引用:移除基于垃圾回收器状态和软引用规则的对象。
		WEAK – 弱引用:更积极地移除基于垃圾收集器状态和弱引用规则的对象。
	flushInterval(刷新间隔)可以被设置为任意的正整数,而且它们代表一个合理的毫秒 形式的时间段。默认情况是不设置,也就是没有刷新间隔,缓存仅仅调用语句时刷新。
	size(引用数目)可以被设置为任意正整数,要记住你缓存的对象数目和你运行环境的 可用内存资源数目。默认值是 1024readOnly(只读)属性可以被设置为 truefalse。只读的缓存会给所有调用者返回缓 存对象的相同实例。因此这些对象不能被修改。这提供了很重要的性能优势。可读写的缓存 会返回缓存对象的拷贝(通过序列化) 。这会慢一些,但是安全,因此默认是 false-->
<cache
  eviction="FIFO"
  flushInterval="60000"
  size="512"
  readOnly="true"/>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值