MyBatis学习(四)XML配置文件之SQL映射的XML文件

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进行一个简单的测试:待续。。。尽快更新。。

时间: 2024-12-17 10:58:28

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

MyBatis中SQL映射的XML文件

Mappers 既然MyBatis的行为已经由上篇介绍的MyBatis配置文件的元素配置完了,我们现在就要定义SQL映射语句了.但是,首先我们需要告诉MyBatis到哪里去找到这些配置.Java在这方面没有提供一个很好的方法,所以最佳的方式是告诉MyBatis去哪里去找映射文件.你可以使用相对于类路径的资源引用,或者字符表示,或url应用的完全限定名. MyBatis架构中,POJOs对象对象一个映射器接口,映射器接口和对应的SQL映射的XML在同一包下. SQL映射的XML文件 MyBatis

MyBatis学习 之 三、动态SQL语句

有些时候,sql语句where条件中,需要一些安全判断,例如按某一条件查询时如果传入的参数是空,此时查询出的结果很可能是空的,也许我们需要参数为空时,是查出全部的信息.使用Oracle的序列.mysql的函数生成Id.这时我们可以使用动态sql. 下文均采用mysql语法和函数(例如字符串链接函数CONCAT). 3.1 selectKey 标签 在insert语句中,在Oracle经常使用序列.在MySQL中使用函数来自动生成插入表的主键,而且需要方法能返回这个生成主键.使用myBatis的s

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

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

MyBatis学习(二)、SQL语句映射文件(2)增删改查、参数、缓存

二.SQL语句映射文件(2)增删改查.参数.缓存 2.2 select 一个select 元素非常简单.例如: Xml代码   <!-- 查询学生,根据id --> <select id="getStudent" parameterType="String" resultMap="studentResultMap"> SELECT ST.STUDENT_ID, ST.STUDENT_NAME, ST.STUDENT_SEX

mybatis学习总结-核心配置文件mybatis-config.xml

http://ju.outofmemory.cn/entry/94634 在 mybatis初体验 中,在mybatis-config.xml中有这样的配置:     <!-- 对事务的管理和连接池的配置 -->       <environments default="development">           <environment id="development">               <transact

Mybatis学习总结(六)——高级映射(一对一,一对多,多对多)

一.订单商品数据模型 1.数据库执行脚本 创建数据库表代码: /*Table structure for table `t_user` */ CREATE TABLE t_user ( id INT NOT NULL AUTO_INCREMENT, username VARCHAR(32) NOT NULL COMMENT '用户名称', birthday DATE DEFAULT NULL COMMENT '生日', sex CHAR(1) DEFAULT NULL COMMENT '性别',

Mybatis学习(四)

5.Mybatis开发dao Mybatis在项目中主要使用的地方就是开发dao(数据访问层),所以下面讲解一下Mybatis开发dao的方法.有两种方式:原始dao开发方式.mapper代理开发方式(推荐). 5.1 需求 1.根据用户ID查询用户信息 2.根据用户名称模糊查询用户列表 3.添加用户 5.2 原始dao开发方式 及开发dao接口和dao实现 5.2.1 dao接口 1 package com.jxdd.mybatis.service; 2 3 import java.util.

Mybatis学习系列(二)Mapper映射文件

Mapper映射文件,作用是用来配置SQL映射语句,根据不同的SQL语句性质,使用不同的标签,mapper文件中常用的标签有<iselect>.<insert>.<update>.<delete> 常见增删改查示例 <!-- namespace:此处使用包名+文件名 的形式 --> <mapper namespace="com.sl.mapper.ProductMapper"> <!--select – 映射

mybatis 学习四 源码分析 mybatis如何执行的一条sql

总体三部分,创建sessionfactory,创建session,执行sql获取结果 1,创建sessionfactory 这里其实主要做的事情就是将xml的所有配置信息转换成一个Configuration对象,然后用这个对象组装成factory返回. //mybatis配置文件 String resource = "conf.xml"; InputStream is = TestMybatis.class.getClassLoader().getResourceAsStream(re