`

分页查询SQL jdbcDAO oracle JdbcTemplate 【给我发表点意见】

阅读更多
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 + jdbcTemplate + Spring + Java + Flex 实现分页 #### 一、Oracle存储过程分页 在Oracle数据库中,为了实现高效的分页查询,通常会采用存储过程的方式来完成。这种方式能够有效地减少网络传输的数据量...

    如何避免JDBC引起的内存溢出情况

    可以通过设置`oracle.jdbc.fetchDirection=oracle.jdbc.OracleFetchDirection.FETCH_FORWARD`来控制游标的读取方向,并通过`oracle.jdbc.fetchSize`属性来指定每次获取的行数。 #### 三、通用的最佳实践 除了针对...

    Oracle + jdbcTemplate + Spring + Java + Flex 实现分页.docx

    在Oracle数据库环境中,结合Spring、Java和Flex进行分页查询是常见的需求。本文档主要讨论如何利用Oracle存储过程、jdbcTemplate(Spring框架的一个组件)以及Flex前端实现这一功能。 首先,Oracle存储过程是实现...

    SpringJdbcTemplate封装工具类

    SpringJdbcTemplate支持分页查询,通过`SimpleJdbcCall`或`NamedParameterJdbcCall`类,可以配合`RowCallbackHandler`或`ResultSetExtractor`处理分页结果。此外,还可以使用`JdbcPagingItemReader`作为Spring ...

    oracle 分页架包及源码

    综上所述,这个Oracle分页框架的源码包含了如何在Java Web应用中使用Oracle进行分页查询的关键步骤,包括Action层的SQL构造和JSP页面的分页展示。通过学习和理解这些代码,开发者可以更好地掌握在实际项目中实现高效...

    简单分页的实现!!!

    除了这种基础的实现方式,还有更高级的分页策略,如使用`RowNum`(Oracle)、`RowNumber() OVER()`(SQL Server)或者`ROWNUMBER() OVER(PARTITION BY ...)`(PostgreSQL)等函数进行分页,这种方法可以避免`OFFSET`...

    Hibernate+spring+struts2分页

    Spring JDBC模块中的`JdbcTemplate`或`NamedParameterJdbcTemplate`可以方便地实现分页查询,通过设置页码和每页大小来获取所需数据。 **Struts2** Struts2作为MVC框架,负责处理用户的请求并展示结果。它提供了...

    移动护理springMVC+maven+oracle

    JdbcTemplate是Spring提供的一个简单JDBC模板类,它封装了JDBC的基本操作,减少了手动处理SQL和结果集的工作量,提高了代码的可读性和可维护性。 **ZTree** ZTree是一款基于jQuery的灵活的树形插件,常用于展示层次...

    Spring+DWR+EXT 技术的一个人事管理系统

    数据库连接池(常用的4-5个)、分页查询(oracle,mysql,sqlserver等)、数据转码(空值、特定、列名等)、数据导出(Pdf,excel,html,rtf,xml等)、日志处理、启动jar加载校验机制、扩展Hib、JdbcTemplate等等...

    c#java

    根据给定的文件信息,我们可以提炼出与C#和Java编程相关的知识点,尽管提供的代码片段主要涉及Oracle数据库的PL/SQL语言,但我们将尝试从中提取有关数据库操作、封装以及异常处理等通用概念,并探讨这些概念如何在C#...

    java jdbc 反射 word学习文档

    - **统一性和兼容性**: 使用JDBC,开发者可以编写与数据库无关的代码,这意味着如果更换数据库类型(如从MySQL切换到Oracle),只需更改数据库连接参数即可,无需修改大量的应用程序代码。 - **API组成**: JDBC由一...

    Excel百万级别数据的导入和导出

    6. **数据库的使用**:当数据量达到百万级别时,使用数据库(如MySQL、Oracle、SQL Server或NoSQL数据库)存储数据更为合适。数据库可以提供高效的查询和数据管理功能,同时支持批量导入导出。 7. **数据预处理**:...

    DBKING使用指南

    目前工具在Oracle 11g、Microsoft SQLServer 2012、MySQL 5.x、DB2 10.x、Sybase 15.x、PostgreSQL 9.x、Derby 10.x上通过了测试。 2、通过生成器创建BO类及DAO层代码  这是一个配合dbking的代码...

Global site tag (gtag.js) - Google Analytics