首页 / JAVA / 插入后的Java JDBC检索ID
插入后的Java JDBC检索ID
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了插入后的Java JDBC检索ID,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1760字,纯文字阅读大概需要3分钟。
内容图文
![插入后的Java JDBC检索ID](/upload/InfoBanner/zyjiaocheng/729/7c05ebd5c8f54f2db9e1a7fbfeea7779.jpg)
我使用触发器设置所有表的PK列值,所以我不对Java中的ID做任何操作,但我需要插入后的ID.
我怎样才能获得身份证?
stat.execute("INSERT INTO TPROJECT_PROCESS_GROUP(NPROJECT_ID,VDESCRIPTION) " +
"VALUES(" +
"'" + projectID + "'," +
"'" + description + "'" +
"");
编辑:嗨再次我读了这个问题,现在我得到一个例外,例如’不支持的操作'(我翻译自我的母语,确切的英文形式可能会有所不同).我想这是关于oracle对GetGeneratedKeys的支持?你对此有所了解吗?
解决方案:正如关于callablestatements的书中所提到的,该语句可用于执行存储过程和函数.与PreparedStatement不同,大多数数据库不会对调用执行任何准备,因为它是一个如此简单的命令. CallableStatement实例可用于返回更准确地返回存储过程或函数的对象.
OracleConnection conn = null;
//OraclePreparedStatement pstat = null;
OracleCallableStatement cstat = null;
String sql = "BEGIN INSERT INTO TPROJECT P (VPROJECT_TITLE,VPROJECT_DESC) VALUES(?,?) RETURNING P.NPROJECT_ID INTO ?; END;";
try {
conn = ConnectionUtility.GetConnection();
cstat = (OracleCallableStatement)conn.prepareCall(sql);
cstat.setString(1, title);
cstat.setString(2, description);
cstat.registerOutParameter(3, OracleTypes.NUMBER);
cstat.execute();
int returnedID = cstat.getInt(3);
// System.out.println(returnedID);
conn.close();
return returnedID;
解决方法:
这个例子是你如何在PostgreSQL中做到的.希望你能在Oracle中做类似的事情.
这是你在INSERT INTO之后为自动生成的键(如serial)获取id的方法.这里重要的是在prepareStatement()调用中提供RETURN_GENERATED_KEYS.
Resultset result;
PreparedStatement prep;
String query = "INSERT INTO myRel (data) VALUES (?)";
prep = db.prepareStatement(query ,Statement.RETURN_GENERATED_KEYS);
result = prep.getGeneratedKeys();
if(result.next() && result != null){
System.out.println("Key: " + result.getInt(1));
} else {
System.out.println("No, Nop nada");
}
希望有人帮助:)
内容总结
以上是互联网集市为您收集整理的插入后的Java JDBC检索ID全部内容,希望文章能够帮你解决插入后的Java JDBC检索ID所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。