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

     

  • 相关阅读:
    How to install VXDIAG Honda, Toyota and JLR SDD software
    16% off MPPS V16 ECU tuning tool for EDC15 EDC16 EDC17
    Cummins INSITE locked and ask for verification code
    How to use BMW Multi Tool 7.3 to replace lost key for BMW X1
    Bleed Brake Master Cylinder with Intelligent Tester IT2
    Porsche Piwis Tester II “No VCI has been detected”,how to do?
    Creader VIII VS. Creader VII+
    How to solve GM MDI cannot complete the installation
    汽车OBD2诊断程序开发 (原文转载,思路很清晰!)
    汽车节温器单片机开发思路
  • 原文地址:https://www.cnblogs.com/dj-blog/p/7553925.html
Copyright © 2011-2022 走看看