最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

如何得到JDBCInsert语句执行后插入Oracle数据库记录的主键

来源:懂视网 责编:小采 时间:2020-11-09 11:43:31
文档

如何得到JDBCInsert语句执行后插入Oracle数据库记录的主键

如何得到JDBCInsert语句执行后插入Oracle数据库记录的主键:在应用中,很多时候会对表的主键用一个自动增涨的数来付值,如Oracle的sequence,插入后又想得到的主键的值。下面介绍一下相关的 在应用中,很多时候会对表的主键用一个自动增涨的数来付值,如Oracle的sequence,插入后又想得到的主键的值。下面介绍一下
推荐度:
导读如何得到JDBCInsert语句执行后插入Oracle数据库记录的主键:在应用中,很多时候会对表的主键用一个自动增涨的数来付值,如Oracle的sequence,插入后又想得到的主键的值。下面介绍一下相关的 在应用中,很多时候会对表的主键用一个自动增涨的数来付值,如Oracle的sequence,插入后又想得到的主键的值。下面介绍一下

在应用中,很多时候会对表的主键用一个自动增涨的数来付值,如Oracle的sequence,插入后又想得到的主键的值。下面介绍一下相关的

在应用中,很多时候会对表的主键用一个自动增涨的数来付值,,如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("BEGIN INSERT 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));

linux

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文档

如何得到JDBCInsert语句执行后插入Oracle数据库记录的主键

如何得到JDBCInsert语句执行后插入Oracle数据库记录的主键:在应用中,很多时候会对表的主键用一个自动增涨的数来付值,如Oracle的sequence,插入后又想得到的主键的值。下面介绍一下相关的 在应用中,很多时候会对表的主键用一个自动增涨的数来付值,如Oracle的sequence,插入后又想得到的主键的值。下面介绍一下
推荐度:
标签: 记录 得到 怎么
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top