java.sql.Statement或java.sql.PreparedStatement – 带参数的可
发布时间:2020-12-15 04:32:33 所属栏目:Java 来源:网络整理
导读:在我的 java应用程序中,它似乎在我的查询中使用参数到数据库,我需要利用PreparedStatement. 但同时,我想在前进/后退模式下使用语句的结果集(可滚动) PreparedStatement似乎没有提供设置可滚动模式 声明似乎没有提供参数. 看起来像一个基本问题..但没有什么东
|
在我的
java应用程序中,它似乎在我的查询中使用参数到数据库,我需要利用PreparedStatement.
但同时,我想在前进/后退模式下使用语句的结果集(可滚动) PreparedStatement似乎没有提供设置可滚动模式 声明似乎没有提供参数. 看起来像一个基本问题..但没有什么东西跳出来(除了使用Statement和构造没有参数的SQL).真的没有办法为Statement提供参数.或者有一个可滚动的预备语句吗?我错过了什么吗? conn = Utility.getConnection();
tmpSQL = "SELECT * FROM " + baseTable + " WHERE " + filterCriteria
+ " ORDER BY " + sortCriteria;
//method 1
Statement stmt = conn.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
rset = stmt.executeQuery(tmpSQL); //not using any parameters!
//method 2
PreparedStatement pStatement = conn.prepareStatement(tmpSQL); //not scrollable!
if (params != null)
for (int i = 0; i < params.size(); i++) {
pStatement.setString(i + 1,((Parameter) params.get(i)).getStringValue());
}
rset = pStatement.executeQuery();
解决方法
使用
PreparedStatement pStatement = conn.prepareStatement(tmpSQL,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE); Java Doc Info 然后,要获取ResultSet中的记录计数,请使用rset.last(),然后使用rset.getRow().然后使用rset.beforeFirst()将光标放回原来的位置. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
