Mybatis-XML映射文件

1)规范

  • XML映射文件的名称与Mapper接口名称一致,并且将XML映射文件和Mapper接口放置在相同包下 (同包同名)
  • XML映射文件的namespace属性为Mapper接口全限定名一致
  • XML映射文件中sql语句的id与Mapper 接口中的方法名一致,并保持返回类型一致。

2)示例讲解

【1】同包同名

在这里插入图片描述
注意点创建同包同名的目录时,resources是文件目录,不是包,所以创建的时候不是以 . 分割,而是以 斜杠 / ,因为是创建目录文件夹。

【2】在XML文件中配置统一的约束并编写SQL语句

  • 百度搜索:Mybatis中文网
    在这里插入图片描述
  • 选择入门–>探究已映射的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">

SQL语句需要包含在mapper里面

<mapper>

</mapper>

比如:查询满足这三个条件的员工信息:名字带有“张”,性别是“男”,入职时间在"2010-01-01"-------“2020-01-01”,对应的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.mapper.EmpMapper">
   <!--resultType标明返回结果中单条记录的类型-->
   <select id="list" resultType="com.example.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>

这是一个MyBatis的Mapper映射文件(EmpMapper.xml),用于将数据库表emp中的数据映射到Java中的Emp类。其中,mapper元素用于指定该文件对应的Mapper接口类,select元素表示一个查询语句。其中,id属性指定该查询的唯一标识,resultType属性指定该查询返回单条结果的类型,即Emp类。查询语句中使用了预处理占位符#{},用于防止SQL注入。该查询语句对应的SQL语句是查询emp表中满足条件的记录,并按照更新时间倒序排列。其中,#{name}、#{gender}、#{begin}和#{end}都是查询语句的参数,使用时需要通过Mapper接口类调用对应的方法并传入参数。

  • namespace是MyBatis中mapper接口或映射文件的命名空间,它通过指定命名空间来标识唯一的Mapper。在MyBatis中,namespace的定义是必须的,因为它可以让MyBatis正确地找到相应的Mapper并执行对应的SQL语句。在上述示例中,namespace为com.example.mapper.EmpMapper,指定了该Mapper的命名空间。
  • id 属性是指该 SQL 语句的唯一标识符,用于在代码中调用该 SQL 语句进行数据库操作。
  • resultType 属性是指返回结果集中单条记录的类型,即 SQL 查询结果转换为 java 对象时使用的类型。在上述的例子中,resultType=“com.example.pojo.Emp” 表示查询结果会被转换为 com.example.pojo.Emp 类型的对象。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

语言-逆行者

一起交流学习

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值