mybatis insertUseGeneratedKeys

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);

}

 

时间: 2024-09-20 08:46:54

mybatis insertUseGeneratedKeys的相关文章

tk.mybatis.mapper.provider.SpecialProvider.&lt;init&gt;()

  2017-03-26 23:44:29.192 ERROR 48392 --- [p-nio-80-exec-5] c.t.global.exception.GlobalExHandler : nested exception is org.apache.ibatis.builder.BuilderException: Error invoking SqlProvider method (tk.mybatis.mapper.provider.SpecialProvider.dynamicSQ

springmvc+mybatis整合 MapperScannerConfigurer配置出错

问题描述 springmvc+mybatis整合 MapperScannerConfigurer配置出错 1C 配置如下: 问题:如果配置了 <property name=""sqlSessionFactoryBeanName"" value=""wechatSqlSessionFactory"" />,启动的时候报错如下:Caused by: org.springframework.beans.factory.B

mybatis 嵌套的结果集不能被安全的转为自定义ResultHandler

问题描述 mybatis 嵌套的结果集不能被安全的转为自定义ResultHandler 如下:org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.executor.ExecutorException: Mapped Statements with nested result mappings cannot be safely used with a custom ResultHandle

spring mvc-springmvc+mybatis+quartz的项目启动出错了,求大神指点

问题描述 springmvc+mybatis+quartz的项目启动出错了,求大神指点 看不懂什么情况,求大神指点下 jackson-mapper-asl严重: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/Quart

java 后台获取mybatis自增主键

问题描述 java 后台获取mybatis自增主键 现在java后台执行insert操作想获取 mybatis里这条插入语句的自增主键 SELECT LAST_INSERT_ID() AS source_id insert into tenke_pick_resource (url path name size heightwidthformatstatus) values (#{urljdbcType=VARCHAR} #{pathjdbcType=VARCHAR} #{namejdbcTyp

MyBATIS使用CRUD

MyEclipse不提供自动生成,这里提供mybatis文件包和开发文档 http://download.csdn.net/detail/u010026901/7489319 自己建立配置文件, <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http

Mybatis 在CS程序中的应用

如果是自己用的Mybatis,不需要考虑对配置文件加密,如果不是,那就需要考虑加密,这篇文章主要讲如何配置CS的Mybatis   因为mybatis好使,所以几乎需要操作数据库的时候,我都会使用mybatis,而且在一个正式的项目中,同时存在BS和CS的程序,都使用的Mybatis,使用的相同mapper文件. Mybatis的XML配置文件正常如下: 复制代码 代码如下: <?xml version="1.0" encoding="UTF-8" ?>

Mybatis整合Spring

 Mybatis整合SpringintegrationMapperScannerConfigurer  Mybatis整合Spring 根据官方的说法,在ibatis3,也就是Mybatis3问世之前,Spring3的开发工作就已经完成了,所以Spring3中还是没有对Mybatis3的支持.因此由Mybatis社区自己开发了一个Mybatis-Spring用来满足Mybatis用户整合Spring的需求.下面就将通过Mybatis-Spring来整合Mybatis跟Spring的用法做一个简单

mybatis错误:Invalid bound statement (not found)万分感谢!

问题描述 mybatis错误:Invalid bound statement (not found)万分感谢! 0.问题说明: 我是一名菜鸟,最近使用spring-mvc ,spring,mybatis框架 这两天出现一个错误一直搞不定,心好累,恳请前辈帮帮忙 1. 异常 org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.apache.ib