ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

java-如何获取自动生成的键并设置结果集类型?

2019-11-23 03:12:14  阅读:220  来源: 互联网

标签:prepared-statement resultset sql java


我有以下SQL语句:

con = cpds.getConnection();
            con.setAutoCommit(false);
            SQL = "INSERT INTO person(accountID,addressID,lastName,firstName,middleName,suffix,gender,birthDate, [language], ethinicity) "
                    + "VALUES(?,?,?,?,?,?,?,?,?,?)";
            PreparedStatement stmt = con.prepareStatement(SQL,ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);

我想要做的是获取此语句的生成键.现在,我已经完成了此操作,但是没有设置resultset typescroll参数.似乎没有参数可以做到这一点:

PreparedStatement stmt = con.prepareStatement(SQL,ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY, Statement.RETURN_GENERATED_KEYS)

我想知道的是:如何将结果集类型设置为对不敏感的类型滚动并获取生成的键?

解决方法:

Statement#getGeneratedKeys()返回一个ResultSet,您可以使用该ResultSet检索键为

ResultSet rsKeys = statement.getGeneratedKeys();
if (rsKeys.next()) {
    person.setId(rsKeys.getLong(1));
}

How can I set the resultset type to typescroll insensitive AND get generated keys?

这样做是没有意义的,因为您可以期望仅在执行插入操作后才能检索键.虽然您只想为结果集(即查询后)设置滚动类型.因此,这两件事是互斥的,因此API显然不支持它.

标签:prepared-statement,resultset,sql,java
来源: https://codeday.me/bug/20191123/2064760.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有