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. Myeclipse和windows调节成护眼色

    作为程序员,对着电脑屏幕久了,眼睛难免疲劳,下面相信对我们每个 人都很有帮助. windows xp:桌面空白处右键,属性,外观-高级,然后在项目那栏选窗口,再点颜色-其它,然后把色调设为85(默认是 ...

  2. oracle内存优化

    一直都想总结一下oracle内存调整方面的知识,最近正好优化一个数据库内存参数,查找一些资料并且google很多下.现在记录下来,做下备份.         一.概述:                ...

  3. Python获取秒级时间戳与毫秒级时间戳

    获取秒级时间戳与毫秒级时间戳 import time import datetime t = time.time() print (t) #原始时间数据 print (int(t)) #秒级时间戳 p ...

  4. java中 this 的三种用法

    Java中this的三种用法 调用属性 (1)this可以调用本类中的任何成员变量 调用方法(可省略) (2)this调用本类中的成员方法(在main方法里面没有办法通过this调用) 调用构造方法 ...

  5. RabbitMQ核心概念篇

    RabbitMQ介绍 一.RabbitMQ使用场景 RabbitMQ他是一个消息中间件,说道消息中间件[最主要的作用:信息的缓冲区]还是的从应用场景来看下: 1.系统集成与分布式系统的设计 各种子系统 ...

  6. pyhton安装pillow问题解决

    最近在学习Python的微信处理相关,因wxpy库中的微信客户端需要接收二维码需要安装pillow,如下 class wxpy.Bot(cache_path=None, console_qr=Fals ...

  7. basepath的作用 (转)

    转自:http://blog.csdn.net/randomnet/article/details/8630754   在谈basePath之前,先来讨论一下相对路径与绝对路径的区别.    相对路径 ...

  8. dispatch emit broadcast

    1.broadcast 事件广播 遍历寻找所有子孙组件,假如子孙组件和componentName组件名称相同的话,则触发$emit的事件方法,数据为 params. 如果没有找到 则使用递归的方式 继 ...

  9. linq之延迟加载和即时加载+标准查询运算符

    延迟加载 Linq查询的执行结果是IEnumerable<T>类型,而对IEnumerable<T>,在内部,C#通过yield关键字实现迭代器达到延迟加载的目的.从而使Lin ...

  10. PS各个工具的字母快捷键和英…

    原文地址:PS各个工具的字母快捷键和英文全名作者:Tycho     选框-Marquee(M)     移动-move(V)     套索-Lasso(L)     魔棒-Wand(W) 喷枪-in ...