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

SQL映射文件经常使用的元素:

  

1.select

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

  执行简单查询的select元素是很是简单的:数据库

 

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

 

 

 

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

  #{id}告诉MyBatis建立一个预处理参数,至关于JDBC中的"?"。测试

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

  

   

 

3.insert、update、delete

 介绍这三种元素的属性:code

 

示例:htm

<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驱动来讲,有另一种方法来生成主键。blog

 

  <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

相关文章
相关标签/搜索