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()将光标放回原来的位置. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |