mybatis 通用mapper返回插入主键

安稳与你 提交于 2019-12-17 14:01:06

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

查看地址:http://git.oschina.net/free/Mapper/blob/master/wiki/mapper3/3.Use.md

 

3.主键策略(仅用于insert方法)

通用Mapper还提供了序列(支持Oracle)、UUID(任意数据库,字段长度32)、主键自增(类似Mysql,Hsqldb)三种方式,其中序列和UUID可以配置多个,主键自增只能配置一个。

由于MySql自增主键最常用,所以这里从最简单的配置方式开始。

1.@GeneratedValue(generator = "JDBC")

@Id
@GeneratedValue(generator = "JDBC")
private Integer id;

这会令 MyBatis 使用 JDBC 的 getGeneratedKeys 方法来取出由数据库内部生成的主键(比如:像 MySQL 和 SQL Server 这样的关系数据库管理系统的自动递增字段)。
这种情况对应的xml类似下面这样:

<insert id="insertAuthor" useGeneratedKeys="true" keyProperty="id">
    insert into Author (username,password,email,bio)
    values (#{username},#{password},#{email},#{bio})
</insert>

这样执行通用的 mapper 就可以 返回主键值了

 

例子:

@Id
    @GeneratedValue(generator = "JDBC")
   // @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;

 

ProjectUserMapper projectUserMapper = 
                (ProjectUserMapper) context.getBean("projectUserMapper");
        
        ProjectUser projectUser=new ProjectUser();
        projectUser.setFlag(true);
        projectUser.setName("test");
        projectUser.setPassword("password");
        int a=projectUserMapper.insert(projectUser);
        System.out.println("a的结果》》"+a);
        System.out.println(">>>id插入后的》》"+projectUser.getId());

这样都是可以获取到 插入的  主键id 的 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!