zoukankan      html  css  js  c++  java
  • 深入浅出mybatis之useGeneratedKeys参数用法

    转载....

    目录

    在MyBatis中,允许设置名称为“useGeneratedKeys”参数存在3个位置:

    1. 在settings元素中设置useGeneratedKeys参数
    2. 在xml映射器中设置useGeneratedKeys参数
    3. 在接口映射器中设置useGeneratedKeys参数

    在不同位置设置的useGeneratedKeys参数,最终结果相同,但是影响范围不同。

    在settings元素中设置useGeneratedKeys参数

    官方的说法是该参数的作用是:“允许JDBC支持自动生成主键,需要驱动兼容”,如何理解这句话的意思?
    其本意是说:对于支持自动生成记录主键的数据库,如:MySQL,SQL Server,此时设置useGeneratedKeys参数值为true,在执行添加记录之后可以获取到数据库自动生成的主键ID。
    实际上,在settings元素中设置useGeneratedKeys是一个全局参数,但是只会对接口映射器产生影响,对xml映射器不起效。

    此时,在接口映射中添加记录之后将返回主键ID。

    但是,请注意如果此时在接口映射器中又明确设置了useGeneratedKeys参数,那么注解映射器中的useGeneratedKeys参数值将覆盖settings元素中设置的全局useGeneratedKeys参数值。
    举个例子:先在settings元素中设置全局useGeneratedKeys参数值为true,再在接口映射器中设置useGeneratedKeys参数值为false,添加记录之后将不能返回注解ID。

    另外,在settings元素中设置的全局useGeneratedKeys参数对于xml映射器无效。如果希望在xml映射器中执行添加记录之后返回主键ID,则必须在xml映射器中明确设置useGeneratedKeys参数值为true。

    在xml映射器中配置useGeneratedKeys参数

    xml映射器中配置的useGeneratedKeys参数只会对xml映射器产生影响,且在settings元素中设置的全局useGeneratedKeys参数值对于xml映射器不产生任何作用。

    在接口映射器中设置useGeneratedKeys参数

    注意: 在接口映射器中设置的useGeneratedKeys参数会覆盖在<settings>元素中设置的对应参数值。

    【参考】
    [1] http://blog.csdn.net/suwu150/article/details/52895855 Mybatis中自动生成主键

  • 相关阅读:
    归并排序的java实现
    Hanoi问题java解法
    j2ee之Filter使用实例(页面跳转)
    java工具类之Graphics
    java程序设计之循环链表
    Java程序设计求出岁数
    Java程序设计之链表结构
    CENTOS 6 通过YUM升级GCC到4.7/4.8
    Object c的NSString的使用,创建,拼接和分隔,子string,substring
    Let’s Encrypt 最近很火的免费SSL 使用教程
  • 原文地址:https://www.cnblogs.com/yachao1120/p/10660236.html
Copyright © 2011-2022 走看看