使用JDBC插入数据到ORACLE,使用标识列自增列
不同于SQL Server的是,Oracle中插入数据的时候,没有自增列或者是标识列,但是,我们又不想显式的进行主键的插入,这里,必须在Oracle数据库中指定一个标识列,或者说是一个序列。具体方法如下:
- 先创建一个序列,具体方法为:
CREATE SEQUENCE "数据库名"."序列名"
INCREMENT BY 1
START WITH 1
MAXVALUE 1.0E28
MINVALUE 1
NOCYCLE
CACHE 20
NOORDER; - 要么写一个触发器,在insert之前(参考我的上一篇文章),要么就这样直接在Java代码中写:
a)先写出一条SQL语句查询出即将的序列值,就是如果下一次插入,标识列的值会是多少。
long index = 0;
String sql = "select 序列名.nextval from dual";
PreparedStatement statement = connection.prepareStatement(sql);
rs = statement.executeQuery();
while(rs.next){
index = rs.getLong(1);;
}
b)然后在进行新的数据插入的时候,直接把查出来的序列的值赋进去就OK了
sql = "insert into TB_USERINFO value(USERID,USERNAME,LOGNAME,PASSWORD,DEPARTID) values(?,?,?,?,?)";
这样一来,就简单的实现了Oracle数据库的标识列的插入值。
使用JDBC插入数据到ORACLE,使用标识列自增列的更多相关文章
- Java 批量插入数据(Oracle)
//批量添加20000条数据用时8秒. try { String url = "jdbc:oracle:thin:@IP:1521:orcl"; // orcl为数据库的SI ...
- mybatis批量插入数据到oracle
mybatis 批量插入数据到oracle报 ”java.sql.SQLException: ORA-00933: SQL 命令未正确结束“ 错误解决方法 oracle批量插入使用 insert a ...
- mybatis foreach批量插入数据:Oracle与MySQL区别
mybatis foreach批量插入数据:Oracle与MySQL不同点: 主要不同点在于foreach标签内separator属性的设置问题: separator设置为","分 ...
- JDBC插入数据时中文变为问号的解决方法
JDBC插入数据时中文变为问号的解决方法 制作人:全心全意 出现中文变问号的代码: String url = "jdbc:mysql://localhost:3306/test"; ...
- Java使用iBatis批量插入数据到Oracle数据库
Java使用iBatis批量插入数据到Oracle数据库 因为我们的数据跨库(mysql,oracle),单独取数据的话需要遍历好多遍,所以就想着先从mysql数据库中取出来的数据然后在oracle数 ...
- .NET大批量插入数据到Oracle
跟一个第三方系统做接口,需要插入几百万条数据到Oracle数据库. 下载Oracle的Managed版本的ODP.NET组件,只需要一个Oracle.ManagedDataAccess.dll这个DL ...
- ThinkPHP 3.2.3+ORACLE插入数据BUG修复及支持获取自增Id的上次记录
TP+ORACLE插入数据BUG修复以及获取自增Id支持getLastInsID方法 这些天在做Api接口时候,发现用TP操作Oracle数据库,发现查询修改删除都能执行, 但一旦执行插入操作老是报错 ...
- JDBC插入数据超长时无法自动截断问题
问题 JDBC操作MySQL数据库,当进行插入或更新操作的数据长度超过表字段的声明最大长度时,会报出以下错误,导致不能正常插入: 但是当直接在MySQL客户端操作时,发现确实可以的,只不过会自动对插入 ...
- JDBC插入数据实例
在本教程将演示如何在JDBC应用程序中向数据库的一个表中插入数据记录. 在执行以下示例之前,请确保您已经准备好以下操作: 具有数据库管理员权限,以在给定模式中数据库表中插入数据记录. 要执行以下示例, ...
随机推荐
- Linux 下查看某个进程运行的堆栈信息
1. 根据进程名称查询进程ID ps -ef | grep processName 2. 将进程的堆栈信息写入log gstack processId > s.log 3. 查看log vim ...
- 多媒体开发之h264中的sps---sps信息提取之帧率
------------------------------author:pkf -----------------------------------------time:2015-8-20 --- ...
- eclipse调用jni
http://blog.chinaunix.net/uid-27003388-id-3235189.html 1. 在Eclipse里创建一个Java project(jni_test): ...
- T4使用经验
.<#@ template debug="true" hostspecific="true" language="C#" #> ...
- TensorFlow:tf.train.Saver()模型保存与恢复
1.保存 将训练好的模型参数保存起来,以便以后进行验证或测试.tf里面提供模型保存的是tf.train.Saver()模块. 模型保存,先要创建一个Saver对象:如 saver=tf.train.S ...
- XCode 5资源文件不自动更新问题
在xcode 5中的build settings ->build options ->Scan all source files and Includes设置为YES即可!
- Android OpenGL ES 离屏渲染(offscreen render)
通常在Android上使用OpenGL ES,都是希望把渲染后的结果显示在屏幕上,例如图片处理.模型显示等.这种情况下,只需要使用Android API中提供的GLSurfaceView类和Rende ...
- AsyncTask异步类的简单操作
package com.example.day9; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; im ...
- Alcatraz插件管理器
下载地址:https://github.com/supermarin/Alcatraz 虽然能用Alcatraz插件管理器进行管理,但它有时有些插件并不是最新版本,特别是在Xcode更新版本时.这里有 ...
- C语言之Bit-wise Operation和Logical Operation
首先第一点:十六进制位运算和逻辑运算 都是先转化二进制,后输出结果(十六进制,二或十)Bit-Wise Operations (位运算)包括:& 按位与 | 按位或 ^ 按位异或 ~ 取反 & ...