mybatis insertUseGeneratedKeys

简介: mybatis中的一个坑:预期:传入的Record中会生动填入在db中生成的id值。使用  insertUseGeneratedKeys插入数据时,如果id字段不是AUTO_INCREMENT,则不会生成新的id package tk.

mybatis中的一个坑:预期:传入的Record中会生动填入在db中生成的id值

使用  insertUseGeneratedKeys插入数据时,如果id字段不是AUTO_INCREMENT,则不会生成新的id

package tk.mybatis.mapper.common.special;

import org.apache.ibatis.annotations.InsertProvider;
import org.apache.ibatis.annotations.Options;
import tk.mybatis.mapper.provider.SpecialProvider;

public interface InsertUseGeneratedKeysMapper<T> {
    @Options(
        useGeneratedKeys = true,
        keyProperty = "id"
    )
    @InsertProvider(
        type = SpecialProvider.class,
        method = "dynamicSQL"
    )
    int insertUseGeneratedKeys(T var1);
}
package tk.mybatis.mapper.common.special;

import org.apache.ibatis.annotations.InsertProvider;
import org.apache.ibatis.annotations.Options;
import tk.mybatis.mapper.provider.SpecialProvider;

/**
 * 通用Mapper接口,特殊方法,批量插入,支持批量插入的数据库都可以使用,例如mysql,h2等
 *
 * @param <T> 不能为空
 * @author liuzh
 */
public interface InsertUseGeneratedKeysMapper<T> {

    /**
     * 插入数据,限制为实体包含`id`属性并且必须为自增列,实体配置的主键策略无效
     *
     * @param record
     * @return
     */
    @Options(useGeneratedKeys = true, keyProperty = "id")
    @InsertProvider(type = SpecialProvider.class, method = "dynamicSQL")
    int insertUseGeneratedKeys(T record);

}

 

相关文章
|
4月前
|
SQL Java 数据库连接
|
7月前
|
XML Java 数据库连接
|
11天前
|
Java 关系型数据库 数据库连接
Mybatis-plus
Mybatis-plus
|
1月前
|
SQL Java 数据库连接
从0开始回顾Mybatis
Mybatis 1、什么是Mybatis? 概念: 1. Mybatis 是一个半 ORM(对象关系映射)框架,它内部封装了 JDBC,开发时只需要关注 SQL 语句本身,不需要花费精力去处理加载驱动、创建连接、创建statement 等繁杂的过程。程序员直接编写原生态 sql,可以严格控制 sql 执行性能,灵活度高。 2. MyBatis 可以使用 XML 或注解来配置和映射原生信息,将 POJO 映射成数据库中的记录,避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。 缺点: 1. SQL语句的编写工作量较大,尤其当字段多、关联表多时,对开发人员编写SQL语句的功底有一定要求
|
2月前
|
SQL 缓存 Java
|
4月前
|
Java 数据库连接 测试技术
mybatis中@Many
mybatis中@Many
29 0
|
11月前
|
算法 Java 关系型数据库
MyBatis-Plus基本的使用
MyBatis-Plus基本的使用
|
Java 数据库连接 mybatis
MyBatis总结
MyBatis总结
52 0
MyBatis总结
Mybatis-Plus中or()的使用
Mybatis-Plus中or()的使用
102 0
|
SQL Java 关系型数据库
Mybatis详解(2)
你好看官,里面请!今天笔者讲的是 Mybatis详解(2)。不懂或者觉得我写的有问题可以在评论区留言,我看到会及时回复。 注意:本文仅用于学习参考,不可用于商业用途,如需转载请跟我联系。
188 1