import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.ResultSetExtractor;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.core.RowMapperResultReader;
public class JdbcDAO extends JdbcTemplate
String sql = "";
String tsql = "";
int startNum = -1;
int pageSize = -1;
int count = 0;
1),获取分页数据
public List queryJdbcForOnePage(String sql, int startNum, int pageSize)
throws PioaGisException
{
this.tsql = sql;
this.startNum = startNum;
this.pageSize = pageSize;
sql = "SELECT * FROM (SELECT A.*,ROWNUM R FROM (" + sql +
") A WHERE ROWNUM <=" + (startNum + pageSize) +
") B WHERE B.R > " + startNum;
List listContent = query(sql,
new RowMapperResultReader(new DataRowMapper()));
List list = new LinkedList();
list.add(this.fieldNames);
for (int i = 0; i < listContent.size(); ++i) {
list.add(listContent.get(i));
}
return list;
}
示例:
SELECT * FROM (SELECT A.*,ROWNUM R FROM (SELECT 字段名 FROM 表名 WHERE ( 1 = 1 ) ORDER BY 字段名 DESC) A WHERE ROWNUM <=10) B WHERE B.R > 0
2),获取数据的数量
public int queryJdbcForMaxNum()
throws PioaGisException
{
String temp = this.tsql;
if (this.tsql.indexOf("ORDER BY") != -1)
temp = this.tsql.substring(this.tsql.indexOf("FROM"), this.tsql.indexOf("ORDER BY"));
else {
temp = this.tsql.substring(this.tsql.indexOf("FROM"));
}
String tempsql = "SELECT COUNT(1) " + temp;
Map map = queryJdbcForOneRow(tempsql);
int count = Integer.parseInt(map.get("COUNT(1)").toString());
return count;
}
public Map queryJdbcForOneRow(String sql)
throws PioaGisException
{
List list = query(sql, new OneRowMapper());
if ((list != null) && (list.size() > 0)) {
return (Map)list.get(0);
}
return null;
}
分享到:
相关推荐
### Oracle + jdbcTemplate + Spring + Java + Flex 实现分页 #### 一、Oracle存储过程分页 在Oracle数据库中,为了实现高效的分页查询,通常会采用存储过程的方式来完成。这种方式能够有效地减少网络传输的数据量...
可以通过设置`oracle.jdbc.fetchDirection=oracle.jdbc.OracleFetchDirection.FETCH_FORWARD`来控制游标的读取方向,并通过`oracle.jdbc.fetchSize`属性来指定每次获取的行数。 #### 三、通用的最佳实践 除了针对...
在Oracle数据库环境中,结合Spring、Java和Flex进行分页查询是常见的需求。本文档主要讨论如何利用Oracle存储过程、jdbcTemplate(Spring框架的一个组件)以及Flex前端实现这一功能。 首先,Oracle存储过程是实现...
SpringJdbcTemplate支持分页查询,通过`SimpleJdbcCall`或`NamedParameterJdbcCall`类,可以配合`RowCallbackHandler`或`ResultSetExtractor`处理分页结果。此外,还可以使用`JdbcPagingItemReader`作为Spring ...
综上所述,这个Oracle分页框架的源码包含了如何在Java Web应用中使用Oracle进行分页查询的关键步骤,包括Action层的SQL构造和JSP页面的分页展示。通过学习和理解这些代码,开发者可以更好地掌握在实际项目中实现高效...
除了这种基础的实现方式,还有更高级的分页策略,如使用`RowNum`(Oracle)、`RowNumber() OVER()`(SQL Server)或者`ROWNUMBER() OVER(PARTITION BY ...)`(PostgreSQL)等函数进行分页,这种方法可以避免`OFFSET`...
Spring JDBC模块中的`JdbcTemplate`或`NamedParameterJdbcTemplate`可以方便地实现分页查询,通过设置页码和每页大小来获取所需数据。 **Struts2** Struts2作为MVC框架,负责处理用户的请求并展示结果。它提供了...
JdbcTemplate是Spring提供的一个简单JDBC模板类,它封装了JDBC的基本操作,减少了手动处理SQL和结果集的工作量,提高了代码的可读性和可维护性。 **ZTree** ZTree是一款基于jQuery的灵活的树形插件,常用于展示层次...
数据库连接池(常用的4-5个)、分页查询(oracle,mysql,sqlserver等)、数据转码(空值、特定、列名等)、数据导出(Pdf,excel,html,rtf,xml等)、日志处理、启动jar加载校验机制、扩展Hib、JdbcTemplate等等...
根据给定的文件信息,我们可以提炼出与C#和Java编程相关的知识点,尽管提供的代码片段主要涉及Oracle数据库的PL/SQL语言,但我们将尝试从中提取有关数据库操作、封装以及异常处理等通用概念,并探讨这些概念如何在C#...
- **统一性和兼容性**: 使用JDBC,开发者可以编写与数据库无关的代码,这意味着如果更换数据库类型(如从MySQL切换到Oracle),只需更改数据库连接参数即可,无需修改大量的应用程序代码。 - **API组成**: JDBC由一...
6. **数据库的使用**:当数据量达到百万级别时,使用数据库(如MySQL、Oracle、SQL Server或NoSQL数据库)存储数据更为合适。数据库可以提供高效的查询和数据管理功能,同时支持批量导入导出。 7. **数据预处理**:...
目前工具在Oracle 11g、Microsoft SQLServer 2012、MySQL 5.x、DB2 10.x、Sybase 15.x、PostgreSQL 9.x、Derby 10.x上通过了测试。 2、通过生成器创建BO类及DAO层代码 这是一个配合dbking的代码...