Java 为什么rs.next()不去另一张唱片
如果我删除beforeFirst,我的函数只在ResultSet中做第一条记录并转到end。如果我使用beforeFirst,我会得到一个错误结果集,该集仅为\u TYPE\u FORWARD\u 您对SELECT和INSERT使用相同的语句对象。从: 当生成ResultSet对象的语句对象关闭、重新执行或用于从多个结果序列中检索下一个结果时,ResultSet对象将自动关闭 要解决此问题,请为executeUpdate调用使用单独的语句对象 另外,我强烈建议您将代码更改为使用由?表示的绑定参数?。像现在这样一点一点地构建SQL语句可能会打开。您对SELECT和INSERT使用相同的语句对象。从: 当生成ResultSet对象的语句对象关闭、重新执行或用于从多个结果序列中检索下一个结果时,ResultSet对象将自动关闭 要解决此问题,请为executeUpdate调用使用单独的语句对象Java 为什么rs.next()不去另一张唱片,java,sqlite,resultset,Java,Sqlite,Resultset,如果我删除beforeFirst,我的函数只在ResultSet中做第一条记录并转到end。如果我使用beforeFirst,我会得到一个错误结果集,该集仅为\u TYPE\u FORWARD\u 您对SELECT和INSERT使用相同的语句对象。从: 当生成ResultSet对象的语句对象关闭、重新执行或用于从多个结果序列中检索下一个结果时,ResultSet对象将自动关闭 要解决此问题,请为executeUpdate调用使用单独的语句对象 另外,我强烈建议您将代码更改为使用由?表示的绑定参数
另外,我强烈建议您将代码更改为使用由?表示的绑定参数?。像现在这样一点一点地构建SQL语句可能会出现漏洞。您的代码存在一个严重的安全漏洞。您容易受到SQL注入的攻击。永远,永远,永远,永远,永远,永远,永远,永远,使用字符串连接与SQL语句;改用PreparedStatements
harmonogram_id = " + h_id + " order by pracownik_id,
请看这里,了解如何使用简单的技巧轻松拥有您的应用程序:
不过,要回答您的问题,这取决于您的数据库。您必须在连接创建期间设置属性:
Statement stmt = con.createStatement(
ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE),
ResultSet.HOLD_CURSORS_OVER_COMMIT);
发件人:
您的代码存在严重的安全漏洞。您容易受到SQL注入的攻击。永远,永远,永远,永远,永远,永远,永远,永远,使用字符串连接与SQL语句;改用PreparedStatements
harmonogram_id = " + h_id + " order by pracownik_id,
请看这里,了解如何使用简单的技巧轻松拥有您的应用程序:
不过,要回答您的问题,这取决于您的数据库。您必须在连接创建期间设置属性:
Statement stmt = con.createStatement(
ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE),
ResultSet.HOLD_CURSORS_OVER_COMMIT);
发件人:
可能是您在.executeUpdate中重置rs?请确定您在.executeUpdate中重置rs的可能是哪种SQL引擎?请确定哪种类型的SQL引擎不是最佳做法,但如果h_id是int,则没有风险。同意,但我不同意。现在可能安全了,但是如果你的新同事过来把int改成字符串,这样他就不必在前端做那么多工作了,那该怎么办呢?单元测试仍将通过。安全总比后悔好!这不是最好的做法,但如果h_id是int,就没有风险。同意,但我不同意。现在可能安全了,但是如果你的新同事过来把int改成字符串,这样他就不必在前端做那么多工作了,那该怎么办呢?单元测试仍将通过。安全总比后悔好!