MyBatis自动获取主键,MyBatis使用Oracle返回主键,Oracle获取主键

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

蕃薯耀 2016年8月24日 10:39:04 星期三

http://fanshuyao.iteye.com/

一、问题描述

由于Oracle是不支持自动生成主键的,不像Sql或者Mysql能自动生成。

二、解决方案

使用Oracle的序列生成主键。

1、首先在Oracle数据库创建序列:

create sequence SEQ_T_OPERATION_LOG
minvalue 1
maxvalue 9999999999999999999999999999
start with 1
increment by 1
cache 20;

2、在Mybatis中使用序列,order必须为"BEFORE" ,keyProperty对应Java实体的主键属性,

SEQ_T_OPERATION_LOG.nextval 为第1步创建的序列

<selectKey resultType="java.lang.Long" order="BEFORE" keyProperty="logId">
SELECT SEQ_T_OPERATION_LOG.nextval AS logId FROM dual
</selectKey>

完整示例(一个保存操作):

<insert id="save" parameterType="com.chinagas.org.beans.OperationLog" >
<selectKey resultType="java.lang.Long" order="BEFORE" keyProperty="logId">
SELECT SEQ_T_OPERATION_LOG.nextval AS logId FROM dual
</selectKey>
insert into T_OPERATION_LOG (LOG_ID, LOG_NAME, LOG_TYPE,
TABLE_NAME, TABLE_NAME_VALUE, TABLE_ID, IP_ADDRESS, MAC_ADDRESS,
CREATE_BY, CREATE_BY_NAME, CREATE_TIME,
MODIFY_BY, MODIFY_BY_NAME, MODIFY_TIME,
REMARK, CONTENT_AFTER_OPERATION
)
values (#{logId,jdbcType=DECIMAL}, #{logName,jdbcType=VARCHAR}, #{logType,jdbcType=DECIMAL},
#{tableName,jdbcType=VARCHAR}, #{tableNameValue,jdbcType=VARCHAR}, #{tableId,jdbcType=DECIMAL}, #{ipAddress,jdbcType=VARCHAR}, #{macAddress,jdbcType=VARCHAR},
#{createBy,jdbcType=DECIMAL}, #{createByName,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP},
#{modifyBy,jdbcType=DECIMAL}, #{modifyByName,jdbcType=VARCHAR}, #{modifyTime,jdbcType=TIMESTAMP},
#{remark,jdbcType=VARCHAR}, #{contentAfterOperation,jdbcType=CLOB}
)
</insert>

如果数据库支持自动生成主键的,可以参考此文章:

http://fanshuyao.iteye.com/blog/2245853

(如果你觉得文章对你有帮助,欢迎捐赠,^_^,谢谢!)

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

蕃薯耀 2016年8月24日 10:39:04 星期三

http://fanshuyao.iteye.com/

MyBatis自动获取主键,MyBatis使用Oracle返回主键,Oracle获取主键的更多相关文章

  1. mybatis 自动生成代码(mybatis generator)

    pom.xml 文件配置 引入 mybatis generator <properties> <mysql.connector.version>5.1.44</mysql ...

  2. Mybatis自动生成代码,MyBatis Generator

    这还是在学校里跟老师学到的办法,然后随便在csdn下载一个并调试到可以用的状态. 基本由这几个文件组成,一个mysql连接的jar包.一个用于自动生成的配置文件,一个自动生成的jar包,运行jar包语 ...

  3. mybatis+oracle添加一条数据并返回所添加数据的主键问题

    最近做mybatis+oracle项目的时候解决添加一条数据并返回所添加数据的主键问题 controller层 @RequestMapping("/addplan") public ...

  4. MyBatis 插入时返回刚插入记录的主键值

    MyBatis 插入时返回刚插入记录的主键值 一.要求: 1.数据库表中的主键是自增长的,如:id: 2.获取刚刚插入的记录的id值: 二.源代码: 1.User.java package cn.co ...

  5. Oracle和MySQL插入时获取主键

    这里只写selectKey方法的 一,Oracle数据库中的写法 order="BEFORE"因为oracle中需要先从序列获取值,然后将值作为主键插入到数据库中 <sele ...

  6. 转载:mybatis自动生成

    MyBatis Generator中文文档 MyBatis Generator中文文档地址: http://generator.sturgeon.mopaas.com/ 该中文文档由于尽可能和原文内容 ...

  7. Mybatis自动生成实体类

    Maven自动生成实体类需要的jar包 一.pom.xml中 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns ...

  8. 使用mybatis-generator插件结合tk.mybatis自动生成mapper二三事

    本篇文章将介绍使用spring boot框架,引入mybatis-generator插件,结合tk.mybatis自动生成Mapper和Entity的一整套流程,其中包括最重要的踩坑与填坑.     ...

  9. 自定义Mybatis自动生成代码规则

    前言 大家都清楚mybatis-generate-core 这个工程提供了获取表信息到生成model.dao.xml这三层代码的一个实现,但是这往往有一个痛点,比如需求来了,某个表需要增加字段,肯定需 ...

随机推荐

  1. 使用Chrome测试页面响应性

    如今我们都知道 响应式 的意思.作为开发者,我们常常开发一些响应式的应用.有很多工具可以帮助我们完成这个目的.某些人甚至使用付费扩展.然而,我用了一个东西,它就是 Google Chrome 浏览器. ...

  2. import project后,出现Unable to get system library for the project

    import project 后,出现Unable to get system library for the project. 这是因为在import 一个项目的时候,没有指定android sdk ...

  3. java split函数用法(转)

    1.语法如下 String.split(sourceStr,maxSplit) String.split(sourceStr) 参数说明:sourceStr是被分割的字符串,maxSplit是最大的分 ...

  4. leecode single numer

    http://www.acmerblog.com/leetcode-single-number-ii-5394.html acm之家的讲解总是那么到位 public class Solution { ...

  5. Esper系列(七)数据缓存、外部事件应用(静态方法)

    LRU Cache 功能:最近最少使用策略. 数据库查询缓存应用配置: 1  ); 12          } 13          return bean; 14      }    15  } ...

  6. JQuery Dialog 禁用X按钮关闭对话框,-摘自网络

    JQuery Dialog 禁用X按钮关闭对话框,禁用ESC键关闭代码如下:$("#div1").dialog({   closeOnEscape: false,   open: ...

  7. Java同步块(synchronized block)使用详解

    Java 同步块(synchronized block)用来标记方法或者代码块是同步的.Java同步块用来避免竞争.本文介绍以下内容: Java同步关键字(synchronzied) 实例方法同步 静 ...

  8. 原来DataTable的Distinct竟如此简单![转]

    本文转自:http://www.cnblogs.com/BlueFly/archive/2009/01/08/1372151.html 有时我们需要从DataTable中抽取Distinct数据,以前 ...

  9. Identity-第一章

    本篇文章内容搭建Identity项目,实现几个用户基本的功能,了解Identity具体是什么. 一.Identity入门 Identity是微软在ASP.NET应用程序中管理用户的一个新的API. 1 ...

  10. Dublin Core

    DC(Dublin Core) 是数字图书馆中使用的一组简单的包括15个“核心元素”的元数据元素集合,主要用于描述数字对象.馆藏管理和元数据交换. 这15项元数据不仅适用于电子文献目录,也适用于各类电 ...