带你3分钟了解Mybatis映射文件(sql,resultMap等映射)

mapper.xml映射文件是mybatis框架中一个十分重要的文件,通过mapper.xml将数据库增删改查操作使用标签化语言来写,降低系统的耦合度,便于后期的修改。

在这里插入图片描述

mapper.xml文件配置示例

在上一期,我们介绍了mybatis的基础配置。这一期我们主要分析介绍select、update、insert、delete、sql、resultMap等方法。首先,我们先回顾一下mapper.xml配置示例

mapper.xml配置示例如下
<?xml version="1.0" encoding="UTF-8" ?>
<!-- 3-5行是mybatis约束配置 -->
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- mapper元素是配置文件的根元素,namespace通常命名为包名+映射文件名
  select元素是用于执行查询操作的配置
  parameterType元素是指定传入参数的类型
  resultType 属性用于指定返回结果的类型 
 -->
<mapper namespace="org.mybatis.mapper.CustomerMapper">
  <select id="" parameterType="" resultType="">
    select * from xxx表
  </select>
</mapper>
<select>元素

select元素用于映射查询语句,根据查询语句获取数据库中的数据。
例如:以下示例,通过id值进行查询。

<!-- 
	 id 标识符,唯一标识select语句   parameterType元素是指定传入参数的类型 
   resultType 属性用于指定返回结果的类型
-->
 <select id="queryByid" parameterType="int" resultType="org.mybatis.beans.Customer">   
 select * from customer where Id = #{id} 
</select>

select元素的常用属性如下

属性 说明
id 表示命名空间的唯一标识符,可以通过该id值来引用该标签
parameterType 指定传入参数的类型,可以是int、String、class 、list等数据类型
timeout 用于设置超时参数,单位为秒,超时将会抛出异常
resultType 指定返回结果的类型
resultMap 表示外部resultMap元素的引用,一般使用在多表查询中
flushCache 在调用sql语句之后是否需要mybatis清空之前查询的本地缓存和二级缓存,值为false/true
useCache 用于控制二级缓存的开启或关闭
<insert>元素

insert元素用于映射插入语句,使用insert元素可以将数据存储入数据库,该方法的返回值是0/1。
例如:以下示例

<!--  id 标识符,唯一标识select语句
  parameterType元素是指定传入参数的类型
-->
<insert id="" parameterType="">
  insert into xxx表 values(xxx表的属性)
</insert>
<update>元素

update元素用于根据所给信息更新数据库中的指定数据。
示例代码如下:

<update id="updatecustomer" parameterType="org.mybatisTest.beans.Customer">
    update customer set username=#{username},jobs=#{jobs},phone=#{phone} where Id=#{Id}
</update>
<delete>元素

delete元素用于根据指定信息删除数据库中的指定信息或全部信息。
示例代码如下:

<delete id="deletecustomer" parameterType="Object">
    delete from customer where username=#{id}
</delete>
<sql>元素

sql元素可以定义可重用的sql代码段,然后在其他语句中引用这一代码片段。
示例代码如下:

<!--定义可重用的代码并放入sql语句中-->
<sql id= "customerColumns">id, username , jobs , phone</sql>
<select id="findCustomerByld" parameterType=" Integer"
resultType= "com.itheima.po.Customer">
<!--引用sql语句-->
select <include refid="customerColumns"/>
from t customer
where id = #(id)
</select>
<resultMap>元素

元素 :表示结果映射集,是mybatis最重要也是最强大的元素,定义映射规则,级联的更新以及定义类型转换器.
示例代码:

<!--resultMap 的元素结构一〉
<resu1tMap type="" id="">
<constructor> <!一类在实例化时,用来注入结果到构选}j法中一〉
<idArg/> <!-- 10 参数;标记结果作为10-->
<arg/> <!一注入到构造方法的一个普通结果一〉
</constructor>
<id/> <!一用于表示哪个列是主键一〉
<resu1t/> <!一注入到字段或JavaBean 属性的普通结果一〉
<association property="" /> <!一用于一对-关联一〉
<collection property="" /> <!一用于一对多关联一〉
<discriminator javaType=""> <!一使用结果值米决定使用哪个结果映射一〉
<case value="" /> <!一基于某些值的结果映射一〉
</discriminator>
</resultMap>

猜你喜欢

转载自blog.csdn.net/weixin_44989801/article/details/115079755