gpt4 book ai didi

java.sql.Statement 或 java.sql.PreparedStatement - 带参数的可滚动结果集

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:23:19 25 4
gpt4 key购买 nike

在我的 java 应用程序中,它似乎在我对数据库的查询中使用了参数,我需要利用 PreparedStatement。但是与此同时,我想在前向/后向模式(可滚动)中使用语句的结果集PreparedStatement 似乎不提供设置滚动模式语句好像没有提供参数。

这似乎是一个基本问题..但我没有想到什么(除了使用 Statement 和构建不带参数的 SQL 之外)。是否真的没有办法向语句提供参数......或者有一个可滚动的准备语句?我错过了什么吗?

            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

然后要获取结果集中的记录数,请使用 rset.last(),然后使用 rset.getRow()。然后使用 rset.beforeFirst() 将光标放回原来的位置。

关于java.sql.Statement 或 java.sql.PreparedStatement - 带参数的可滚动结果集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35581370/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com