mybatis整理笔记MapperXML文件1 -- MapperXML文件中的select[文章摘自文档]

这篇博客介绍了MyBatis中的Mapper XML文件,特别是select元素的使用。它强调了SQL映射文件在减少代码量和提高效率方面的优势。博客详细阐述了select元素用于查询的重要性,并提供了一个简单的查询语句示例,展示了如何传递参数和获取HashMap类型的查询结果。接下来的内容将深入探讨参数映射和结果映射的细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

Mapper XML 文件

MyBatis 真正的力量是在映射语句中。这里是奇迹发生的地方。对于所有的力量,SQL 映射的 XML 文件是相当的简单。当然如果你将它们和对等功能的 JDBC 代码来比较,你会发现映射文件节省了大约 95%的代码量。MyBatis 的构建就是聚焦于 SQL 的,使其远离于普通的方式。

SQL 映射文件有很少的几个顶级元素(按照它们应该被定义的顺序):

  • cache – 配置给定命名空间的缓存。
  • cache-ref – 从其他命名空间引用缓存配置。
  • resultMap – 最复杂,也是最有力量的元素,用来描述如何从数据库结果集中来加载你的对象。
  • parameterMap – 已经被废弃了!老式风格的参数映射。内联参数是首选,这个元素可能在将来被移除。这里不会记录。
  • sql – 可以重用的 SQL 块,也可以被其他语句引用。
  • insert – 映射插入语句
  • update – 映射更新语句
  • delete – 映射删除语句
  • select – 映射查询语句

下一部分将从语句本身开始来描述每个元素的细节。

select

查询语句是使用 MyBatis 时最常用的元素之一。直到你从数据库取出数据时才会发现将数据存在数据库中是多么的有价值, 所以许多应用程序查询要比更改数据多的多。对于每次插入,更新或删除,那也会有很多的查询。这是 MyBatis 的一个基本原则,也是将重心和努力放

### MyBatis-Plus Mapper XML 文件配置及用法 #### 配置文件中的路径设置 为了使MyBatis-Plus能够找到并加载`Mapper.xml`文件,在Spring Boot项目的配置文件中需指定这些文件的位置。通常情况下,这通过调整`application.yml`或`application.properties`来实现。 对于位于资源目录下的XML映射器文件,可以采用通配符模式指明多个位置: ```yaml mybatis-plus: mapper-locations: classpath*:/com/example/zj/**/*Mapper.xml,classpath*:/com/example/check/**/*Mapper.xml ``` 上述配置会指示框架去特定包及其子包内寻找所有的`Mapper.xml`文档[^1]。 当XML文件放置于Java源码树之下而非默认的`resources`目录时,则应相应修改路径表达式以匹配实际存放地点: ```properties mybatis-plus.mapper-locations=classpath*:com/example/springbootmybatisplus/mapper/xml/*.xml ``` 这里的关键在于确保路径前缀包含了`:classpath*:`以便支持从类路径根部开始搜索,并且注意区分大小写以及斜杠的方向要保持一致[^2]。 #### 自定义SQL编写指南 在创建具体的`Mapper.xml`文件过程中,遵循标准命名约定有助于简化开发流程——即接口名称加上`.xml`作为扩展名。例如,针对名为`UserMapper.java`的数据访问层接口,对应的SQL语句应当保存在一个叫做`UserMapper.xml`的文件里。 每个SQL片段都封装在一个标签内部,比如<select>、<insert>等,它们对应着不同类型的数据库操作命令。下面给出一段简单的查询示例代码用于获取用户列表: ```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.zj.UserMapper"> <!-- 查询所有用户的记录 --> <select id="selectAllUsers" resultType="com.example.model.User"> SELECT * FROM users; </select> </mapper> ``` 此段落展示了如何构建一个基本的选择语句,其中`namespace`属性关联到相应的DAO/Repository接口;而`id`参数用来唯一标识该方法签名内的每一个声明。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值