JDBC插入操作时,通过return返回主键
来源:互联网 发布:nba体测数据之最2016 编辑:程序博客网 时间:2024/06/13 21:25
转载自:http://blog.csdn.net/kkdelta/article/details/4640029
在应用中,很多时候会对表的主键用一个自动增涨的数来付值,如Oracle的sequence,插入后又想得到的主键的值。下面介绍一下相关的方法。
1,用Oracle 的returning 语句。
PreparedStatement sta = conn.prepareStatement("INSERT INTO LOGGING VALUES (TESTSEQ.NEXTVAL,SYSDATE)returning id into ? ");
sta.execute();
ResultSet rset = sta.getResultSet();
while(rset.next())
{
int id = rset.getInt(1);
}
如果是既有传入值,又有返回值的话,应该:
PreparedStatement sta = conn.prepareStatement("BEGININSERT INTO LOGGING VALUES
(TESTSEQ.NEXTVAL,? )returning id into ?; END; ");
sta = conn.prepareCall(sqlText);
sta .setString(1, srqID);
sta .registerOutParameter(2, Types.NUMERIC);
sta .execute();
return sta .getLong(2);
或者用oracle的 OraclePreparedStatement
String sql = "insert into test values(1,?) returning id into ?";
OraclePreparedStatement pstt = (OraclePreparedStatement) conn.prepareStatement(sql);
pstt.setString(1, "xxx");
pstt.registerReturnParameter(2, OracleTypes.INTEGER);
pstt.executeUpdate();
ResultSet rset = pstt.getReturnResultSet(); // rest is not null
while (rset.next()) {
int id = rset.getInt(1);
System.out.println("Insert returnning: " + id);
}
2,用JDBC的getGeneratedKeys,返回的是Oracle 的rowid.
PreparedStatement sta = conn.prepareStatement("INSERT INTO TESTTABLE VALUES (TESTSEQ.NEXTVAL,'aaaa')",Statement.RETURN_GENERATED_KEYS);
sta.execute();
System.out.println(sta.getGeneratedKeys());
ResultSet rest = sta.getGeneratedKeys();
rest.next();
//oracle rowid
System.out.println(rest.getString(1));
- JDBC插入操作时,通过return返回主键
- jdbc插入返回主键
- Access JDBC 并不支持插入返回主键
- JDBC 插入数据返回数据主键
- JDBC 插入数据返回数据主键
- jdbc 插入记录后返回主键
- JDBC 插入数据返回数据主键
- 转摘 JDBC 插入数据返回数据主键
- MyBatis在insert插入操作时返回主键ID
- 插入数据时返回主键
- JDBC 插入时, 取得插入的主键的返回值
- JDBC Insert语句插入Oracle数据库返回数据主键
- JDBC之获取插入语句返回的主键
- JDBC插入数据返回生成的主键ID
- 插入数据时返回主键值
- 数据库插入返回主键
- ibatis插入返回主键
- mybitas插入返回主键
- 基本排序——冒泡排序Java实现
- 屏蔽右键菜单+右键事件 js
- 【Android开发学习33】PopupWindow之显示顶层对话框
- oracle中V$session 表中各个字段的中文说明
- 动态改变PopupWindow大小
- JDBC插入操作时,通过return返回主键
- 多行并一行显示的两种方式(DB2)
- 416657380骗我500钱 骗子
- 严重: Cannot create PoolableConnectionFactory (ORA-01017: invalid username/password; logon denied
- GridView绑定数据库中bit型的数据显示成0和1而不是True和False
- stack
- viewDidLoad, viewWillDisappear, viewWillAppear等区别及各自的加载顺序
- Windows I/O模型、同步/异步、阻塞/非阻塞
- 水晶报表(使用VS2010配合水晶报表)