今天用jdbc读取数据库,用的是ResultSet,每次读出来都是一大堆记录,但是为了处理方便,我只需要每次读取记录的第一条.网上说用什么rs.first()方法,但是不靠谱,最后的解决方案如下。
public static ResultSet excuteSql(String sql) {
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
url = GlobalsConfig.getDBUrl();
user = GlobalsConfig.getDBUser();
password = GlobalsConfig.getDBPwd();
try {
//int parameterIndex = 1;
conn = DriverManager.getConnection(url, user, password);
ps = conn.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
//ps.setString(parameterIndex, "url");
rs = ps.executeQuery();
} catch (Exception e) {
e.printStackTrace();
}
return rs;
}
- 其实最主要就是在这句ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY
- 然后,你只需要调用即可,如下
ResultSet rs = QueryDB.excuteSql(sql);
if(rs.first()) {
System.out.println(rs.getString("url"));
}
这样就OK了!
分享到:
相关推荐
同时,在查询所有用户的记录时,如果只需要获取部分字段的数据,可以在SQL查询语句中指定需要的字段,例如“SELECT userid, username FROM user”,这样返回的结果集中只包含这两个字段的数据。 最后,为了将这些...
rs.getRow()获得总计录条数,使用rs.absolute()定位到本页起始记录)。这种方式在某些数据库(如oracle)的JDBC实现中差不多也是需要遍历所有记录,实验证明在记录数很大时速度非常慢。 至于缓存结果集ResultSet的...
- 用户可以请求查看特定页面的数据,如第一页、第二页等。 3. **`int pageCount`**:总共有多少页。 - `pageCount`表示所有数据按`pageSize`分割后的总页数。 4. **`int rowCount`**:数据库中总的记录数量。 - ...
3. **确定当前页显示的数据范围**:根据当前页码和每页显示的记录数,将结果集定位到当前页第一条记录的位置。 ```java rs.absolute((curPage - 1) * pageSize + 1); // 定位到当前页第一条记录 ``` 4. **显示...
- **MyISAM**:由于MyISAM使用独立的文件存储自动增长的ID值,即使在删除了一些记录并重启MySQL服务后,新的记录ID也会继续从上一个最大ID值加1开始计算,即第18条记录的ID将是18。 - **InnoDB**:重启MySQL服务后,...
在实际开发过程中可能会遇到一些问题,例如文中提到的问题:“JDBC数据库分页显示页面中,使用默认的排序读取数据库记录时,数据库中的第一条记录并不是在第1页第1条显示,而是跑到了最后一页最后一条显示。...
例如,如果我们每页显示10条记录,第一页的SQL可能如下: ```java String sql = "SELECT * FROM your_table LIMIT ?, ?"; PreparedStatement pstmt = conn.prepareStatement(sql); pstmt.setInt(1, (page - 1) ...
4. **定位游标并显示数据**:通过`rs.absolute(p)`方法将游标定位到当前页面的第一条记录,然后按需遍历并显示结果。 在实际应用中,我们还需要确保页面编号`currentPage`的有效性,即它必须在1和总页数`totalPages...
// 当前记录在第一页时,索引为(pageNum-1)* countPerPage 到 pageNum * countPerPage if ((j >= (pageNum - 1) * countPerPage) && (j * countPerPage)) { currentPageV.addElement(totalV.get(j)); } // ...
注意,OFFSET的值是(页码 - 1) * 每页大小,因为第一页的OFFSET是0。 3. **创建Statement或PreparedStatement对象**: 使用`Connection.createStatement()`或`Connection.prepareStatement()`来创建执行SQL的`...
这里的10是每页的记录数,OFFSET 10则表示跳过前10条记录,从第11条开始取。 接下来,我们探讨JDBC在Java中的应用。JDBC是Java标准API,用于与各种数据库进行交互。在分页显示中,我们需要编写Java代码来执行上述...
这个实现使用了Statement的getGeneratedKeys方法,当Statement追加了一条记录后,可以直接调用getGeneratedKeys方法获得新追加记录的key。 测试程序如下: ```java import java.sql.Connection; import java.sql....
例如,当curPage为2时,从结果集的第7条记录开始读取,直至第12条。在Java中,可以使用ResultSet的absolute(int position)方法定位到指定位置。 在上述示例中,使用了JSP技术来混合HTML、Java代码和表达式语言,...
为了让结果集指针指向当前页的第一条记录,可以使用如下代码: ```java rs.absolute((curPage - 1) * PAGESIZE + 1); ``` 这里的 `PAGESIZE` 是每页显示的记录数。 ##### 7. 实现翻页链接 最后,需要实现上一页...
Apriori 算法的第一步是简单统计所有含一个元素的项集出现的频率,以决定最大的一维项目集。在第 k 步,分两个阶段,首先用一函数 sc_candidate(候选),通过第(k-1)步中生成的最大项目集 Lk-1 来生成侯选项目集 Ck。...
但是,需要注意的是,如果一次`INSERT`语句插入了多行,`LAST_INSERT_ID()`和`@@IDENTITY`将返回第一条插入记录的ID。 ```sql SELECT LAST_INSERT_ID(); ``` 或者 ```sql SELECT @@IDENTITY; ``` 在Java中,你...
已经没有任何位置可选,则第i-1个皇后必须往后移动进行协调,同样,假如第i-1个皇后往后移动时没有找到空位置,则第i-2个皇后必须往后移动,进行协调,当找到空位置时,暂时停下,将下一个皇后重新从第一列开始寻找...