数据库:oracle9i
应用服务器:tomcat6
查询调用 jdbcTemplate().queryForList(
StringBuffer sb = new StringBuffer();
sb.append(" SELECT PLU_CODE,PLU_VALUE,MEASURE_TIME,EQP_ID FROM E_DATA_VALUE ");
sb.append(" WHERE EQP_ID=? AND MEASURE_TIME BETWEEN ? AND ? ");*/
System.out.println(System.currentTimeMillis());
List rsop = getJdbcTemplate().queryForList(sb.toString(),param);
System.out.println(System.currentTimeMillis());
速度非常慢,表中已经分区,数据大有5000万条,查询要30秒左右
DataSource ds = this.getDataSource();
Connection con = null;
PreparedStatement pstmt = null;
ResultSet rs =null;
try {
con = ds.getConnection();
{
pstmt = con.prepareStatement("SELECT PLU_CODE,PLU_VALUE,MEASURE_TIME,EQP_ID FROM E_DATA_VALUE WHERE EQP_ID=? AND MEASURE_TIME BETWEEN to_date(?,'yyyy-mm-dd hh24:mi:ss') AND to_date(?,'yyyy-mm-dd hh24:mi:ss') ");
pstmt.setInt(1, eqpId);
pstmt.setString(2,qd.getBeginTime());
pstmt.setString(3, qd.getEndTime());
rs = pstmt.executeQuery();
}
}
catch( Exception sqle ) {
ds = null;
con = null;
pstmt = null;
}finally{
ds = null;
con = null;
pstmt = null;
}这种方式,查询只要<1秒, 可是无法释放连接池,大概一天时间后,就会连接池耗尽
不知道有没有好的办法实现解决getJdbcTemplate().queryForList(sb.toString(),param);查询慢的问题,困扰!
分享到:
相关推荐
在Spring框架中,`JdbcDaoSupport`是一个非常重要的辅助类,它为使用JDBC(Java Database Connectivity)的DAO(Data Access Object)层提供了一种基础支持。这个类是Spring JDBC模块的一部分,它使得开发者可以方便...
在Java的Spring框架中,`JdbcDaoSupport`是一个非常重要的工具类,它为基于JDBC的数据访问对象(DAO)提供了一种简化数据库操作的方法。这个类是`org.springframework.jdbc.core.support`包下的一个抽象基类,它为...
3. 实现DAO服务类,继承JdbcDaoSupport。在服务类中,可以调用getJdbcTemplate().update()方法进行数据的增删改查操作,如上面的save()和delete()方法所示。 在实际开发中,我们还需要配置Spring的bean定义文件,...
在Spring框架中,`JdbcTemplate`和`JdbcDaoSupport`是两个重要的组件,它们用于简化Java数据库连接(JDBC)的操作,提高了代码的可读性和可维护性。本篇文章将详细阐述这两个类的核心概念、使用场景以及如何在实际...
本文将深入探讨Spring如何为Hibernate和JDBC提供支持,帮助开发者更高效地进行数据访问操作。 首先,Spring对Hibernate的支持体现在其集成层面。通过Spring,我们可以将Hibernate的SessionFactory和Session对象的...
这两个接口是Spring JDBC用于将数据库查询结果映射到Java对象的工具。RowMapper适用于单行数据的映射,而ResultSetExtractor则可以处理整个结果集,提供更大的灵活性。 6. **Transaction Management** Spring ...
在Spring JDBC中,可以通过继承`JdbcDaoSupport`类来简化代码编写过程。下面将详细分析BaseDAO类的实现原理及其核心方法。 #### 核心方法解析 1. **查询方法(query)** - **方法定义**:`public List, Object>> ...
首先,`JdbcDaoSupport`是`AbstractJdbcDaoSupport`的子类,它提供了对JDBC访问的便捷封装,允许开发者无需直接管理`DataSource`,而是通过`setJdbcTemplate(JdbcTemplate jdbcTemplate)`方法注入`JdbcTemplate`实例...
2. 然后,创建一个DAO(Data Access Object)层,继承自JdbcDaoSupport类,Spring会自动注入JdbcTemplate实例。 3. 在DAO中,你可以定义方法,如`selectUsers()`、`insertUser()`等,这些方法内部调用JdbcTemplate的...
Spring JDBC是Spring框架的一个重要组成部分,它提供了一种更高级别的JDBC抽象,简化了数据库操作。在Spring JDBC中,`JdbcTemplate`是一个核心组件,它通过消除大量的样板代码,如打开和关闭连接、处理结果集等,...
而**JdbcDaoSupport**则主要针对原生JDBC操作进行了封装,使得开发者能够更方便地执行SQL语句。 #### 二、Spring框架中实现数据库连接方式 ##### 1. 借助HibernateDaoSupport实现 - **简介**:当项目中已经使用了...
8. **DAO(数据访问对象)支持**:Spring提供了一套通用的DAO接口和抽象类,如JdbcDaoSupport和HibernateDaoSupport,帮助开发者创建符合约定的DAO层,便于测试和扩展。 综上所述,Spring对JDBC和ORM的支持极大地...
也可以继承JdbcDaoSupport,使用super.getJdbcTemplate()获得jdbcTemplate对象: ```java public class UserDaoImpl extends JdbcDaoSupport implements IUserDao { @Override public void save(User user) { ...
这个模型允许开发者以面向对象的方式处理SQL查询,而不是直接处理JDBC API,从而提高了代码的可读性和可维护性。核心概念包括几个关键接口和类,如RdbmsOperation、SqlQuery、SqlUpdate、SqlCall以及DataSource。 1...
3. 高级查询功能:`JdbcTemplate`提供了各种方法来执行SQL查询,如`queryForList()`, `queryForObject()`, `update()`, `execute()`等。 **Spring AOP(面向切面编程)和声明式事务管理:** 1. **Spring AOP**:AOP...
应用程序的数据访问层(DAO)只需要继承 `JdbcDaoSupport` 或者直接注入 `JdbcTemplate` 就可以获得对数据库的操作能力。值得注意的是,`JdbcTemplate` 是一个线程安全的类,因此多个 DAO 层可以共享同一个 `...
args)`用于查询单个对象,`query(String sql, RowMapper<T> rowMapper, PreparedStatementSetter pss)`用于更复杂的查询等。 **三、数据库操作步骤** 1. **配置数据源**:在Spring配置文件中配置DataSource Bean,...
"Spring 整合 JDBC 和 AOP 事务的方法" Spring 框架为我们提供了一个强大的整合了 JDBC 和 AOP 事务的方法,今天我们就来了解一下这个方法的实现。 首先,我们需要了解什么是 JDBC 和 AOP。JDBC 全称为 Java ...
通过封装原生的JDBC API,JdbcTemplate不仅提高了代码的可读性和可维护性,还帮助开发者避免了许多常见的错误,比如资源关闭、SQL注入等问题。 Spring框架提供了多种模板类来处理不同的数据访问需求,例如...