Mybatis-3-映射文件详解1

简介: 今天详细看下MyBatis强大的 mapper语句映射文件

        今天详细看下Mybatis mapper映射文件,由于MyBatis强大的语句映射,映射器的 XML 文件就显得相对简单。如果拿它跟具有相同功能的 JDBC 代码进行对比,你会立即发现省掉了将近 95% 的代码。MyBatis 致力于减少使用成本,让用户能更专注于 SQL 代码。

记录下官网:

官网:mybatis.org/mybatis-3/zh/sqlmap-xml.html

我们按照顺序来看下这mybatis的几个顶级元素标签:

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

  1. cache – 给定命名空间的缓存配置。
  2. cache-ref – 其他命名空间缓存配置的引用。
  3. resultMap – 是最复杂也是最强大的元素,用来描述如何从数据库结果集中来加载对象
  4. sql – 可被其他语句引用的可重用语句块。
  5. insert – 映射插入语句
  6. update – 映射更新语句
  7. delete – 映射删除语句
  8. select – 映射查询语句

一、缓存 <cache/>

二、自定义缓存:

三、resultMap – 用来描述如何从数据库结果集中来加载对象

<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEmapperPUBLIC"-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mappernamespace="com.xing.mapper.UserMapper"><resultMapid="BaseResultMap"type="com.xing.entity.UserEntity"autoMapping="true"><resultcolumn="id"jdbcType="INTEGER"property="id"/><resultcolumn="user_name"jdbcType="VARCHAR"property="userName"/><resultcolumn="pass_word"jdbcType="VARCHAR"property="passWord"/><resultcolumn="real_name"jdbcType="VARCHAR"property="realName"/></resultMap></mapper>

        可以看到以上代码就实现了数据库表user(UserMapper)及字段和属性的映射,详解可以看官网。

四、sql

       <sql/>用来定义可重用的 SQL 代码片段,以便在其它语句中使用。参数可以静态地(在加载的时候)确定下来,并且可以在不同的 include 元素中定义不同的参数值。

<sqlid="userColumns">${alias}.id,${alias}.username,${alias}.password</sql>这个SQL片段可以在其它语句中使用,例如:<selectid="selectUsers"resultType="map">select<includerefid="userColumns"><propertyname="alias"value="t1"/></include>,
<includerefid="userColumns"><propertyname="alias"value="t2"/></include>fromsome_tablet1crossjoinsome_tablet2</select>也可以在include元素的refid属性或内部语句中使用属性值,例如:<sqlid="sometable">${prefix}Table</sql><sqlid="someinclude">from<includerefid="${include_target}"/></sql><selectid="select"resultType="map">selectfield1, field2, field3<includerefid="someinclude"><propertyname="prefix"value="Some"/><propertyname="include_target"value="sometable"/></include></select>

五、insert

新增、更新、删除的标签属性都差不多

<insertid="insert"parameterType="com.xing.entity.UserEntity">insertintouser    (id, userName, passWord,realName)
values    (#{id,jdbcType=INTEGER}, #{username,jdbcType=VARCHAR}, #{password,jdbcType=VARCHAR},#{realname,jdbcType=VARCHAR})
</insert>

六、update

<updateid="updateByExampleSelective"parameterType="map">updateuser<set><iftest="record.id != null">id=#{record.id,jdbcType=INTEGER},
</if><iftest="record.username != null">userName=#{record.username,jdbcType=VARCHAR},
</if><iftest="record.password != null">passWord=#{record.password,jdbcType=VARCHAR},
</if><iftest="record.realname != null">realName=#{record.realname,jdbcType=VARCHAR},
</if></set><iftest="_parameter != null"><includerefid="Update_By_Example_Where_Clause"/></if></update>

七、delete

<deleteid="deleteByPrimaryKey"parameterType="java.lang.Integer">deletefromuserwhereid=#{id,jdbcType=INTEGER}
</delete>

八、Select 查询

<selectid="getOne"resultType="com.xing.entity.UserEntity"parameterType="int"flushCache="false"useCache="true"timeout="10000"fetchSize="256"statementType="PREPARED">select*fromuserwhereid=#{id}
</select>

总结:

       Mybatis mapper xml文件的几个顶级元素,点击”阅读原文“可以直接到Mybatis中文网,每个标签及属性都写的明明白白的。


END


目录
相关文章
|
7月前
|
XML Oracle Java
mybatis反向生成实体类、dao层以及映射文件
mybatis反向生成实体类、dao层以及映射文件
|
7月前
|
XML Java 数据库连接
mybatis中在xml文件中通用查询结果列如何使用
mybatis中在xml文件中通用查询结果列如何使用
449 0
|
7月前
|
SQL
Mybatis.xml文件中大于小于等于
Mybatis.xml文件中大于小于等于
85 0
|
1月前
|
SQL 缓存 Java
【详细实用のMyBatis教程】获取参数值和结果的各种情况、自定义映射、动态SQL、多级缓存、逆向工程、分页插件
本文详细介绍了MyBatis的各种常见用法MyBatis多级缓存、逆向工程、分页插件 包括获取参数值和结果的各种情况、自定义映射resultMap、动态SQL
【详细实用のMyBatis教程】获取参数值和结果的各种情况、自定义映射、动态SQL、多级缓存、逆向工程、分页插件
|
3月前
|
SQL XML Java
mybatis复习04高级查询 一对多,多对一的映射处理,collection和association标签的使用
文章介绍了MyBatis中高级查询的一对多和多对一映射处理,包括创建数据库表、抽象对应的实体类、使用resultMap中的association和collection标签进行映射处理,以及如何实现级联查询和分步查询。此外,还补充了延迟加载的设置和用法。
mybatis复习04高级查询 一对多,多对一的映射处理,collection和association标签的使用
|
3月前
|
SQL XML Java
mybatis :sqlmapconfig.xml配置 ++++Mapper XML 文件(sql/insert/delete/update/select)(增删改查)用法
当然,这些仅是MyBatis功能的初步介绍。MyBatis还提供了高级特性,如动态SQL、类型处理器、插件等,可以进一步提供对数据库交互的强大支持和灵活性。希望上述内容对您理解MyBatis的基本操作有所帮助。在实际使用中,您可能还需要根据具体的业务要求调整和优化SQL语句和配置。
70 1
|
5月前
|
SQL Java 数据库连接
idea中配置mybatis 映射文件模版及 mybatis plus 自定义sql
idea中配置mybatis 映射文件模版及 mybatis plus 自定义sql
115 3
|
6月前
|
SQL XML Java
后端数据库开发JDBC编程Mybatis之用基于XML文件的方式映射SQL语句实操
后端数据库开发JDBC编程Mybatis之用基于XML文件的方式映射SQL语句实操
79 3
若依修改,集成mybatisplus报错,若依集成mybatisplus,总是找不到映射是怎么回事只要是用mp的方法就找报,改成mybatisPlus配置一定要改
若依修改,集成mybatisplus报错,若依集成mybatisplus,总是找不到映射是怎么回事只要是用mp的方法就找报,改成mybatisPlus配置一定要改
|
5月前
|
XML Java 数据格式
支付系统----微信支付20---创建案例项目--集成Mybatis-plus的补充,target下只有接口的编译文件,xml文件了,添加日志的写法
支付系统----微信支付20---创建案例项目--集成Mybatis-plus的补充,target下只有接口的编译文件,xml文件了,添加日志的写法