mybatis番外篇(一)自动生成键selectkey

简介: 我们在数据库插入一条数据的时候,经常是需要返回插入这条数据的主键。但是数据库供应商之间生成主键的方式都不一样。

我们在数据库插入一条数据的时候,经常是需要返回插入这条数据的主键。但是数据库供应商之间生成主键的方式都不一样。
有些是预先生成(pre-generate)主键的,如Oracle和PostgreSQL;有些是事后生成(post-generate)主键的,如MySQL和SQL Server。但不管是哪种方式,我们都可以用ibatis的节点来获取语句所产生的主键。


1、oracle例子:

<insert id="insertProduct-ORACLE" parameterClass="product">  
    <selectKey resultClass="int" type="pre" keyProperty="id" >  
        SELECT STOCKIDSEQUENCE.NEXTVAL AS VALUE FROM DUAL  
    </selectKey>  
    insert into PRODUCT (PRD_ID,PRD_DESCRIPTION) values (#id#,#description#)  
</insert>


2、sql-server例子:

<insert id="insertProduct-MS-SQL" parameterClass="product">  
    insert into PRODUCT (PRD_DESCRIPTION) values (#description#)  
    <selectKey resultClass="int" type="post" keyProperty="id" >  
        select @@IDENTITY as value  
    </selectKey>  
</insert>


3、mysql例子:

<insert id="insertProduct-MYSQL" parameterClass="product">  
    insert into PRODUCT (PRD_DESCRIPTION) values (#description#)  
    <selectKey resultClass="int" type="post" keyProperty="id" >  
        select LAST_INSERT_ID() as value  
    </selectKey>  
</insert>

2、SQLite例子:

  <insert id="Create" parameterClass="Subject">
      INSERT INTO SUBJECT
      (SubjectName,QuestionCount,IsNowPaper)
      VALUES(#SubjectName#,#QuestionCount#,#IsNowPaper#)
      <selectKey resultClass="int" type="post" property="SubjectId">
        SELECT seq
        FROM sqlite_sequence
        WHERE (name = 'SUBJECT')
      </selectKey>
    </insert><span style="font-family: 微软雅黑, 'Microsoft YaHei'; background-color: rgb(255, 255, 255);">  </span>


注意:name = 'SUBJECT'中SUBJECT为表名称

目录
相关文章
|
Oracle Java 数据库连接
使用Mybatis generator自动生成代码,仅限Oracle数据库
使用Mybatis generator自动生成代码,仅限Oracle数据库
|
11月前
|
Java 数据库连接 数据库
Spring boot 使用mybatis generator 自动生成代码插件
本文介绍了在Spring Boot项目中使用MyBatis Generator插件自动生成代码的详细步骤。首先创建一个新的Spring Boot项目,接着引入MyBatis Generator插件并配置`pom.xml`文件。然后删除默认的`application.properties`文件,创建`application.yml`进行相关配置,如设置Mapper路径和实体类包名。重点在于配置`generatorConfig.xml`文件,包括数据库驱动、连接信息、生成模型、映射文件及DAO的包名和位置。最后通过IDE配置运行插件生成代码,并在主类添加`@MapperScan`注解完成整合
1580 1
Spring boot 使用mybatis generator 自动生成代码插件
|
关系型数据库 Java 数据库连接
如何利用Mybatis-Plus自动生成代码(超详细注解)
如何利用Mybatis-Plus自动生成代码(超详细注解)
5595 1
|
XML Java 数据库连接
SpringBoot结合MyBatis Plus 自动生成代码
SpringBoot结合MyBatis Plus 自动生成代码
561 0
|
Oracle Java 关系型数据库
mybatis快速自动生成代码【采用工具,开箱即用】
mybatis快速自动生成代码【采用工具,开箱即用】
|
XML Java 数据库连接
Mybatis自动生成增删改查代码
Mybatis自动生成增删改查代码
728 2
|
存储 XML Java
Mybatis使用SelectKey自定义主键
Mybatis使用SelectKey自定义主键
451 0
|
Java 数据库连接 mybatis
mybatis自动生成代码
mybatis自动生成代码
117 0
|
SQL 算法 关系型数据库
Mybatis-Plus3.0默认主键策略导致自动生成19位长度主键id的坑
Mybatis-Plus3.0默认主键策略导致自动生成19位长度主键id的坑
489 0
|
Java 数据库连接 应用服务中间件
javaweb项目:用户(登录和注销)实现 SSM框架(mybatis-generator自动生成代码)
javaweb项目:用户(登录和注销)实现 SSM框架(mybatis-generator自动生成代码)
394 0
javaweb项目:用户(登录和注销)实现 SSM框架(mybatis-generator自动生成代码)