设为首页 加入收藏

TOP

mybaties如何配置中useGeneratedKeys属性?
2018-04-13 06:06:41 】 浏览:110
Tags:mybaties 如何 配置 useGeneratedKeys 属性

其实useGeneratedKeys简单来说就是实体类获取数据库中对应表的自增主键值,这样数据库表数据才能与实体类数据一一对应。就是实体类ID获取数据表ID

一、在mybatis-config配置文件中配置useGeneratedKeys

作用:与mybatis的mapper文件中的useGeneratedKeys=true相对应(详情见下方的mapper文件配置)

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE configuration

    PUBLIC "-//mybatis.org//DTD Config 3.0//EN"

    "https://mybatis.org/dtd/mybatis-3-config.dtd">

<configuration>

<!-- 针对数据库的表格配置 -->

<!-- 配置全局属性 -->

  <settings>

  <!-- 使用jdbc的 getGeneratedKeys获取数据库自增主键值,

  就是当mybatis-dao文件中的SQL语句中useGeneratedKeys=true时,就是可以将数据库自增的主键值ID自动赋值给实体类ID-->

    <setting name="useGeneratedKeys" value="true"/>

    <!-- 可以用列别名替代列字段名,默认:true -->

    <setting name="useColumnLabel" value="true"/>

    <!-- 开启驼峰命名转换:table(create_time)转换为Entity{createTime} -->

    <setting name="mapUnderscoreToCamelCase" value="true"></setting>

  </settings>

</configuration>

二、mapper文件的useGeneratedKeys属性配置

<!-- useGeneratedKeys表示将当前主键值自动赋值给实体类ID-->

    <!--keyColumn为数据库主键  -->

    <!-- 将数据库主键值自动赋值到shop实体类中的shopId属性 -->

    <!--parameterType传入的参数类型  -->

    <!-- 不加parameterType属性也行,这个属性是可选的,因为 MyBatis 可以通过 TypeHandler 推断出具体传入语句的参数 。

    但是最好加上parameterType属性,因为这样可以提高代码的可读性

    -->

    <insert id="insertShop" useGeneratedKeys="true" keyColumn="shop_id" keyProperty="shopId" parameterType="com.imooc.o2o.entity.Shop">

    INSERT INTO

    tb_shop(owner_id,area_id,shop_category_id,

      shop_name,shop_desc,shop_addr,phone,shop_img,priority,create_time,last_edit_time,enable_status,advice)

 

    <!-- 将shop实体类中的成员变量属性值插入到数据库当中,前面三个是另外三个实体类的id,采用的是OGNL表达式,详情见mybatis基础版的笔记 -->

    VALUES(#{owner.userId},#{area.areaId},#{shopCategory.shopCategoryId},

    #{shopName},#{shopDesc},#{shopAddr},#{phone},#{shopImg},#{priority},#{createTime},#{lastEditTime},#{enableStatus},#{advice})

    </insert>

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇oracle存储过程的调试过程步骤讲解 下一篇mysql数据库游标简易教程

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目