SQL映射文件常用的元素:

  

1.select

  查询语句是MyBatis最常用的语句之一。

  执行简单查询的select元素是非常简单的:

<select id=”selectUser” parameterType=”int” resultType=”hashmap”>
    SELECT * FROM PERSON WHERE ID = #{id}
</select>

  这个语句被称作selectUser,接受一个int类型的参数,返回的一个HashMap类型的对象。

  #{id}告诉MyBatis创建一个预处理参数,相当于JDBC中的"?"。

  接下里介绍select元素的属性:

  

   

3.insert、update、delete

 介绍这三种元素的属性:

示例:

<insert id="insertUser" parameterType="com.dj.domain.User">
insert into User (id,username,password,email,bio)
values (#{id},#{username},#{password},#{email})
</insert>
<update id="updateUser" parameterType="com.dj.domain.User">
update User set
username = #{username},
password = #{password},
email = #{email},
bio = #{bio}
where id = #{id}
</update>
<delete id="deleteUser” parameterType="int">
delete from User where id = #{id}
</delete>

  

  如前所述,插入语句有一点多,它有一些属性和子元素用来处理主键的生成。首先,如果你的数据库支持自动生成主键的字段(比如 MySQL 和 SQL Server 数据库),那么你可以设置 useGeneratedKeys=”true”,而且设置 keyProperty 到你已经做好的目标属性上。例如,如果上面的 Author 表已经对 id 使用了自动生成的列类型,那么语句可以修改为:

<insert id="insertUser" parameterType="com.dj.domain.User"
useGenerateKeys="true" keyProperty="id">
insert into User (id,username,password,email,bio)
values (#{id},#{username},#{password},#{email})
</insert>

  MyBatis对于不支持自动生成类型的数据库(如Oracle)或可能不支持自动生成主键的jdbc驱动来说,有另外一种方法来生成主键。

  <insert id="insertUser" parameterType="com.dj.domain.User">
<selectKey keyProperty="id" resultType="int" order="BEFORE">
select SEQUENCE_T_USER.nextval as id from dual
</selectKey>
insert into User (id,username,password,email,bio)
values (#{id},#{username},#{password},#{email})
</insert>

  select元素先运行,User的id会被设置,然后插入语句被调用。

  selectKey 元素描述如下:
  

  parameterType可以设置成基本数据类型和复杂类型,例如一个User类型。

4.resultMap

  resultMap是MyBatis最重要最强大的元素。它的作用就是告诉MyBatis将从结果集中取出的数据转换成开发者所需要的对象。

  第一种情况,当你遇到查询到的数据的列和需要返回的对象的属性不一致时,可以使用resultMap进行处理。

  第二种情况,进行多表查询时,返回的对象关联到另一个对象,这时候简单的映射已经不能解决问题了,必须使用resultMap元素来完成关联映射。

 接下来我们对resultMap进行一个简单的测试:http://www.cnblogs.com/dj-blog/p/7563037.html

MyBatis学习(四)XML配置文件之SQL映射的XML文件的更多相关文章

  1. mybatis 学习四(下) SQL语句映射文件增删改查、参数、缓存

    2.2 select 一个select 元素非常简单.例如: <!-- 查询学生,根据id --> <select id="getStudent" paramet ...

  2. MyBatis学习 之 三、动态SQL语句

    目录(?)[-] 三动态SQL语句 selectKey 标签 if标签 if where 的条件判断 if set 的更新语句 if trim代替whereset标签 trim代替set choose ...

  3. mybatis源码-解析配置文件(一)之XML的DOM解析方式

    目录 简介 Java 中 XML 文件解析 解析方式 DOM 解析 XML 新建 XML 文件 DOM 操作相关类 Java 读取 XML 文件 一起学 mybatis @ 简介 在之前的文章< ...

  4. using the library to generate a dynamic SELECT or DELETE statement mysqlbaits xml配置文件 与 sql构造器 对比

    https://github.com/mybatis/mybatis-dynamic-sql MyBatis Dynamic SQL     What Is This? This library is ...

  5. SQL 映射的 XML 文件

    MyBatis 真正的力量是在映射语句中.这里是奇迹发生的地方. 对于所有的力量, SQL映射的 XML 文件是相当的简单.当然如果你将它们和对等功能的 JDBC 代码来比较,你会发现映射文件节省了大 ...

  6. 五、SQL映射的XML文件

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

  7. MyBatis总结四:配置文件xml详解

    XML 映射配置文件 MyBatis 的配置文件包含了影响 MyBatis 行为甚深的设置(settings)和属性(properties)信息.文档的顶层结构如下: configuration 配置 ...

  8. MyBatis学习(二)、SQL语句映射文件(1)resultMap

    二.SQL语句映射文件(1)resultMap SQL 映射XML 文件是所有sql语句放置的地方.需要定义一个workspace,一般定义为对应的接口类的路径.写好SQL语句映射文件后,需要在MyB ...

  9. MyBatis 创建核心配置文件和 SQL 映射文件

    Mybatis 的两个配置文件(mybatis-config.xml  和 xxxMapper.xml)都为 xml 类型,因此在 eclipse 中创建 xml 文件命名为相应的 mybatis-c ...

随机推荐

  1. 一篇文章学会Spring4.0

    spring概述 spring 是一个开源框架. Spring 为简化企业级应用开发而生. 使用 Spring 可以使简单的 JavaBean 实现以前只有 EJB 才能实现的功能. Spring 是 ...

  2. 【Spring】整合SpringMVC、MyBatis

    在使用xml配置方式的最佳整合方式: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns= ...

  3. 转每天一个linux命令(5):rm 命令

    昨天学习了创建文件和目录的命令mkdir ,今天学习一下linux中删除文件和目录的命令: rm命令.rm是常用的命令,该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所 ...

  4. Struts2-文件上传下载

    Struts2文件上传 提供 FileUpload 拦截器,用于解析 multipart/form-data 编码格式请求,解析上传文件的内容 fileUpload拦截器 默认在 defaultSta ...

  5. linux(十)配置ssh免密登录实现

    知道ssh的朋友应该知道它是用来干什么的,如果你不知道什么是ssh远程登录的话,可以去看一下我的上一篇博客,关于linux的网络基础的知识.备注:ssh是用于远端登入.执行ssh指令开启终端机阶段作业 ...

  6. HTTPS 证书配置

    HTTPS 证书配置 现在阿里云和腾讯云都支持申请 HTTPS 证书,这里不再提,有需要的可自行google解决方案. 本文主要介绍的是通过 letsencrypt 申请免费的HTTPS证书,并将其配 ...

  7. python进阶学习(一)

    同样是<python基础教程(第二版)>的内容,只是后面内容学起来,相比前面会比较有趣,也更加实用,所以,将"基础"改为"进阶". python 电 ...

  8. JavaScript实现省市联动

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...

  9. ios 初体验< UISegmentedControl 分段控件>

     小知识:  数组快速创建 @[@"",@"",@"",@"".......],字典快速创建方法:@{@"&q ...

  10. 多线程编程学习四(Lock 的使用).

    一.前言 本文要介绍使用Java5中 Lock 对象,同样也能实现同步的效果,而且在使用上更加方便.灵活,主要包括 ReentrantLock 类的使用和ReentrantReadWriteLock ...