mybatis中***Mapper.xml映射文件的配置细节

本文详细介绍了mybatis mapper映射文件中的9大元素,包括resultMap的自定义结果集映射、关联查询、collection嵌套结果集、discriminator鉴别器等。还探讨了动态SQL的使用,如if、foreach、trim、choose标签,以及mybatis的内置参数和sql标签的应用。
摘要由CSDN通过智能技术生成

mapper映射文件9大元素

映射文件是以<mapper>作为根节点,在根节点中支持9个元素,分别为

insert、update、delete、select(增删改查);

cache、cache-ref、resultMap、parameterMap、sql。

例子:

<?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">

<!--namespace必须和所描述接口的全类名保持一致  -->
<mapper namespace="com.imooc.dao.MessageDao">
<!-- 
数据库的字段和java类的属性对应:
      1,type就是类的全名
      2,id是配置主键的  result是普通键的 ,column是数据库字段名字 ,property是类属性
 -->
  <!--  
  <resultMap type=" pojo.Message" id="MessageResult">
    <id column="ID" jdbcType="INTEGER" property="id"/>
    <result column="COMMAND" jdbcType="VARCHAR" property="command"/>
    <result column="DESCRIPTION" jdbcType="VARCHAR" property="description"/>
    <result column="CONTENT" jdbcType="VARCHAR" property="content"/>
  </resultMap>
   -->
<!--
	1,select的id必须和当前接口里面的方法名字保持一致 
	2,resultMap必须和返回结果的全类名保持一致
 -->
  <select id="selectMessage"  resultMap="  com.imooc.pojo.Message">
    select ID,COMMAND,DESCRIPTION,CONTENT from MESSAGE WHERE ID=#{id}
  </select>
</mapper>

一,resultMap 自定义结果集映射

$返回结果要么用resultType,要么用自定义的resultMap,二选一

resultMap中:

  • type就是类的全名,一般是一个封装好的pojo,id就是引用这个结果集的标记
  •  id是配置主键的,  result是普通键的
  • column是数据库字段名字 ,property是类属性
<!--
数据库的字段和java类的属性对应:
      1,type就是类的全名
      2,id是配置主键的  result是普通键的 ,column是数据库字段名字 ,property是类属性
 -->

  <resultMap type=" pojo.Message" id="MessageResult">
    <id column="ID" jdbcType="INTEGER" property="id
MyBatis 是一款使用 XML 或注解配置的持久层框架,它可以自动化地将数据库的数据映射到 Java 对象。在 MyBatis mappermapper.xml 是配对使用的,其 mapper 是接口,而 mapper.xml映射配置文件mapper 接口定义了数据库操作的方法,而 mapper.xml 则定义了这些方法的 SQL 语句以及参数映射规则、结果集映射规则等。 下面是一个简单的例子: 1. 定义 mapper 接口 ```java public interface UserMapper { User selectUserById(Integer id); } ``` 2. 定义 mapper.xml 映射配置文件 ```xml <?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.example.UserMapper"> <resultMap id="userResultMap" type="com.example.User"> <id column="id" property="id"/> <result column="username" property="username"/> <result column="password" property="password"/> </resultMap> <select id="selectUserById" resultMap="userResultMap"> SELECT * FROM user WHERE id = #{id} </select> </mapper> ``` 上述代码,namespace 属性指定了 mapper 接口的全限定名,resultMap 标签定义了一个结果集映射规则,select 标签定义了一个查询操作,其 id 属性指定了 mapper 接口的方法名,resultMap 属性指定了结果集映射规则的 id。 3. 在 MyBatis 配置文件引入 mapper.xml ```xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <mappers> <mapper resource="com/example/UserMapper.xml"/> </mappers> </configuration> ``` 上述代码mapper 标签指定了映射配置文件的位置。 这样就完成了 mappermapper.xml配置。在代码调用 selectUserById 方法时,MyBatis 会根据 mapper.xml 配置自动生成 SQL 语句,并将查询结果映射到 User 对象
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值
>