Day09-09.Mybatis-XML映射文件

Day09-09.Mybatis-XML映射文件

1.XML映射文件:
1.XML映射文件的名称与Mapper接口名称一致,并且将XML映射文件和Mapper接口放置在相同包下(同包同名)。
Java文件下存放的是Java的源代码,resources这个目录下存放的才是配置文件。所以我们需要再resource这个目录下再来创建一个包,
而这个包名需要和mapper接口所在包保持一致。包名都是com.itheima.mapper。

​ 2.XML映射文件的namespace属性和Mapper接口全限定名一致。

​ 3.XML映射文件中sql语句的id与Mapper接口中的方法名一致,并保持返回类型一致。

2.EmpMapper.XML解析:

​ 1.全限定名获取方式,右键 ===》copy reference

<?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">   
#上面这段代码可以不用记,可以在mybatis中文网里面的"探究已映射的 SQL 语句"里面粘贴,只是个约束

<mapper namespace="com.itheima.springbootmybatiscrud2.mapper.EmpMapper">
    # resultType:单条记录所封装的类型(全限定名),如果返回数据是集合,就是集合的泛型的全限定名
    <select id="selectAll2" resultType="com.itheima.springbootmybatiscrud2.Pojo.Emp">
        select * from emp where name like concat('%', #{name}, '%') and gender = #{gender} and entrydate between #{begin} and #{end} " +
                " order by update_time desc
     </select>
 </mapper>

3.定义XML映射文件的时候,为什么要遵守这三点规范??
1.通过mybatis这个框架来操作数据库,最终只需要调用Mapper接口中的方法就可以完成数据库的操作。但是需要明白,最终我们操作数据库,并不是直接通过这个方法来操作数据库,而是执行了与这个方法对应的sql语句来完成数据库的操作。所以关键点是,通过这个接口当中的selectAll2这个方法怎么找到与之关联的sql语句。

​ 2.之前使用注解的方式就不会存在这个问题,因为使用注解的方式进行配置,我们执行这个接口方法,最终执行的就是上面的sql语句,是绑定在一起的。

​ 3.但是如果采用的是XML配置文件的形式来配置这个sql语句,现在这个接口方法的定义和这个XML配置文件当中配置的sql语句它是分开的。现在需要做的就是要根据这个接口中的这个方法,来找到对应的sql语句。

​ 4.如果我们按照这三点规范来定义配置文件,此时我们在调用EmpMapper这个接口当中的selectAll2这个方法的时候,此时mybatis框架会自动的去查找namespace的属性值和这个接口全类目相同的这份XML映射文件,并且在这份XML映射文件当中,找到id属性值与方法名相同的这条sql语句,最终来运行这条sql语句,从而完成数据库的操作。

4.MybatisX插件:
1.MybatisX是一款基于IDEA的快速开发Mybatis的插件,为效率而生。

​ 2.安装:
​ File ===》Settings ===》Plugins ===》搜索MybatisX

​ 3.点击前面的小鸟就可以在方法和定义的sql语句之间切换。

​ 4.使用Mybatis的注解,主要是完成一些简单的增删改查功能。如果需要实现复杂的SQL语句,建议使用XML来配置映射语句。

​ 5.官方说明:
​ https://mybatis.net.cn/getting-started.html

​ 6.使用注解还是XML映射文件定义SQL语句??
​ 1.使用注解来映射简单语句会使代码显得更加简洁,但对于稍微复杂一点的语句,Java 注解不仅力不从心,还会让你本就复杂的 SQL 语句更加混乱不堪。
​ 因此,如果你需要做一些很复杂的操作,最好用 XML 来映射语句。
​ 2.选择何种方式来配置映射,以及认为是否应该要统一映射语句定义的形式,完全取决于你和你的团队。
​ 换句话说,永远不要拘泥于一种方式,你可以很轻松的在基于注解和 XML 的语句映射方式间自由移植和切换。

5.小结:
1.XML文件的名称与Mapper接口名称一致,并且放置在相同包下(同包同名)。
2.XML文件的namespace属性为Mapper接口全限定名一致。
3.XML文件中SQL语句的id与Mapper接口中的方法名保持一致。

  • 15
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值