MyBatis SQL映射文件

SQL映射文件的几个顶级元素:

mapper : 映射文件的根元素节点 只有一个属性namespace(命名空间)

作用:用于区分不同的mapper ,全局唯一

绑定DAO接口,即面向接口编程 ,namespace的命名必须要跟接口同名。

  cache:  配置给定命名空间的缓存

cache-ref: 从其他命名空间引用缓存配置

resultMap: 用来描述数据库结果集和对象的对应关系。

  sql : 可以重用的SQL块,也可以被其他语句引用。

insert: 映射插入语句。

update : 映射更新语句

delete:  映射删除语句

select: 映射查询语句

namespace的命名必须跟某个DAO接口同名,同属于DAO层 包下,习惯命名以 实体类+Mapper.xml命名。

接口中的方法名与映射文件中的SQL语句id应一一对应

使用select完成 单条件模糊查询

<select  id="getUserListByUserName"  resultType="User"  parameterType="string">

select  *   from   smbms_user   where  userName  like  CONCAT (‘%‘,#{userName},‘%‘)

<select>

id为 getUserListByUserName 的映射语句,参数类型为 string 返回结果类型是User;            数据库的字段名和属性名不一致的情况下需要手动映射

id: 命名空间中唯一的标识符,可以被用来引用这条语句。

parameterType: 表示查询语句传入参数的类型的完全限定名或别名。

MyBatis多参数入参有三种方式:

1.将查询条件封装成对象进行入参    parameterType="User 类对象"

2. 使用Map集合 存储查询条件         parameterType="Map" 返回集合

3. 使用@Param注解实现多参数入参

使用resultMap完成查询结果的展现

resultType 直接表示返回类型,包括基础数据类型和复杂数据类型。

resultMap 是对外部resultMap定义的引用,对应外部resultMap的id,表示返回结果映射到哪一个resultMap上,应用场景一般是:数据库字段信息与对象属性不一致或者需要做复杂的联合查询以便自由控制映射结果。

原文地址:https://www.cnblogs.com/LxOwz/p/11396984.html

时间: 2024-08-01 23:09:09

MyBatis SQL映射文件的相关文章

MyBatis -- sql映射文件详解

MyBatis 真正的力量是在映射语句中.和对等功能的jdbc来比价,映射文件节省很多的代码量.MyBatis的构建就是聚焦于sql的. sql映射文件有如下几个顶级元素:(按顺序) cache配置给定命名空间的缓存. cache-ref从其他命名空间引用缓存配置. resultMap最复杂,也是最有力量的元素,用来描述如何从数据库结果集中来加载你的对象. parameterMap已经被废弃了!老式风格的参数映射.内联参数是首选,这个元素可能在将来被移除. sql可以重用的SQL块,也可以被其他

mybatis 中 sql 映射文件 select 标签以及 入 resultMap 标签的应用

1.自定义某个 javabean 的封装规则: 注:可以看到,select 标签中引用了 定义好的 resultMap 的值.resultMap 标签中的 type 为javabean 类型,id 为唯一标识.id 子标签定义主键(这样定义底层会有优化.)column 属性为字段名,property 属性为字段值. 注:可以看到测试结果没有出现问题,说明代码没有错误. 2.自定义某个 javabean 的级联属性封装: a.准备工作:mysql 数据库中,在之前 tbl_employees 表的

MyBatis之sql映射文件

MyBatis的强大之处就在于它的sql映射文件,下面介绍sql映射文件的几个顶级元素配置 1)mapper:映射文件的根元素节点,只有一个namespace(命名空间) * 用于区分不同的mapper,全局唯一 * 绑定dao接口,即面向接口编程, 当,namespace绑定某一接口之后,可以不用写该接口的实现类,MyBatis会通过接口的完整的限定名查找到对应的mapper配置来执行sql语句,应此namespace的命名必须要跟接口同名. 2)cache:配置给定的命名空间的缓存 3)ca

mybatis 的 sql 映射文件增删改查的学习

在 sql 映射文件中配置增删改查的操作:     1.增: 在 sql 映射文件中添加 insert 标签,并且增加对应的 sql 语句.(在之前博文示例的基础上添加)在 对应的接口中添加 对应的方法,方法名与 sql 映射文件中 insert 标签中的 id 属性值一致. 注:可以看到,在测试方法 test03 中更新成功.但是在 openSession 对象需要手动提交事务.(sqlSessionFactory.openSession 方法的得到的 openSession 对象,使用 sq

【三】MyBatis的SQL映射文件 ----- 一对多的关联查询

一对多关联查询的解决方案也有两种:嵌套结果和嵌套查询 在上一篇博客中已经讲了一对一的关联查询,在MySQL数据库中已经存在了班级表 class 和教师表 teacher.为了满足一对多关联查询的要求,还需要创建一张学生表 student.这样,在查询班级信息的同时,可以得到教师和学生的信息. 创建 student 表的 SQL 语句如下: CREATE TABLE student( s_id INT PRIMARY KEY AUTO_INCREMENT, s_name VARCHAR(20),

【二】MyBatis的SQL映射文件 ----- 一对一的关联查询

现在假设数据库中有两张表,一张是班级表,另一张是教师表.一个班级只有一名班主任老师,而一个老师只能担任一个班的班主任,这就是我们所说的一对一关联关系.现在要求,查询班级表的同时也要查询出老师的信息.两张表的数据如下所示: 教师表: 班级表: 创建表的SQL语句如下(MySQL数据库): CREATE TABLE teacher( t_id INT PRIMARY KEY AUTO_INCREMENT, t_name VARCHAR(20) ); CREATE TABLE class( c_id

MyBatis的SQL映射文件

1.使用MyBatis实现条件查询 (1)sql映射文件 mapper:映射文件的根元素节点,只有一个属性namespace,其作用如下: <1>用于区分不同的mapper,全局唯一 <2>绑定DAO接口,即面向接口编程.当namespace绑定某一接口之后,可以不用写该接口的实现类,MyBatis会通过接口的完整限定名查找到对应的mapper配置来执行SQL语句.因此namespace的命名必须要跟接口同名. cache:配置给定命名空间的缓存 cache-ref:从其他命名空间

Mybatis 的基本要素—SQL 映射文件

MyBatis 真正的强大在于映射语句,相对于它强大的功能,SQL 映射文件的配置却是相当简单.对比 SQL 映射配置和 JDBC 代码,发现使用 SQL 映射文件配置可减少 50% 以上的代码,并且MyBatis 专注于SQL,对于开发人员来说,也可极大限度地进行 SQL 调优,以保证性能. SQL 映射文件的几个顶级元素(按照定义的顺序) ? mapper:映射文件的根元素节点,只有一个属性 namespace(命名空间) . namespace 作用如下 1.用于区别不同的 mapper,

Mybatis 创建核心配置文件和 SQL 映射文件

Mybatis 的两个配置文件(mybatis-config.xml  和 xxxMapper.xml)都为 xml 类型,因此在 eclipse 中创建 xml 文件命名为相应的 mybatis-config.xml 或 xxxMapper.xml 即可.但是此时创建的 xml 文件达不到 Mybatis 配置文件的效果,运行必定报错找不到 URI.因为 Mybatis 配置文件头部包含了 URI 和 PUBLIC 等信息.因此我们先在 eclipse 中导入 Mybatis 两个配置文件各自