zoukankan      html  css  js  c++  java
  • 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进行一个简单的测试http://www.cnblogs.com/dj-blog/p/7563037.html

     

  • 相关阅读:
    RabbitMQ学习之:(一)初识、概念及心得
    给Eclipse_Android添加智能提示功能
    C#异步编程之:(三)使用TaskScheduler.UnobservedTaskException
    类设计技巧
    初始化块
    子类构造器
    静态域与静态方法
    构造器中调用另一个构造器
    重载
    无参数的构造器
  • 原文地址:https://www.cnblogs.com/dj-blog/p/7553925.html
Copyright © 2011-2022 走看看