加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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()将光标放回原来的位置.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读