当前位置:Gxlcms > 数据库问题 > MyBatis学习(四)XML配置文件之SQL映射的XML文件

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

时间:2021-07-01 10:21:17 帮助过:2人阅读

  

  如前所述,插入语句有一点多,它有一些属性和子元素用来处理主键的生成。首先,如果你的数据库支持自动生成主键的字段(比如 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进行一个简单的测试:待续。。。尽快更新。。

 

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

标签:字段   acl   server   value   res   next   val   .com   数据   

人气教程排行