- 浏览: 762350 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (241)
- 个人思考 (1)
- 数据库 (5)
- java基础 (32)
- 软件工程 (2)
- zk开源框架 (15)
- 设计模式 (25)
- javascript (12)
- css (9)
- UML (2)
- CMMI软件需求 (3)
- CMMI软件设计 (2)
- CMMI软件实现 (1)
- CMMI软件测试 (1)
- 正则表达式 (4)
- 系统日志配置 (4)
- 应用服务器 (1)
- spring (7)
- XML (6)
- java web (10)
- Ajax (3)
- RichFaces (14)
- 问题 (1)
- 评论文章 (2)
- fushioncharts (2)
- MAVN (4)
- jquery (26)
- Ext js学习 (2)
- 学习心得 (2)
- CSS兼容问题 (3)
- XSL-FOP (1)
- Quartz (0)
- OSGI (1)
- spring--security (6)
- apache tools (1)
- eclispe 小技巧 (2)
- Ant (1)
- 杂记 (1)
- spring3系列 (5)
- java cache (4)
- EffectiveJava (2)
- 代码重构 (0)
最新评论
-
psz6696:
可以说是超级简单的Demo了,可惜没有演示设值注入和构造注入两 ...
模拟spring中的ClassPathXmlApplicationContext类的实现 -
ziyourJava:
[flash=200,200][img][url][list] ...
spring security进级篇 V 自定义标签控制显示 -
ztw1122:
...
zk组件开发指南(目录) -
zjysuv:
容我说一句 在座的各位都是垃圾 spring 3.2以后的@C ...
三. spring mvc 异常统一处理 -
chengwu1201:
二 基于Spring的异常体系处理
1.JdbcTemplateExtend.java
public class JdbcTemplateExtend extends JdbcTemplate
{
private DataSource dataSource;
/**
* 默认构造器,调用此方法初始化,需要调用setDataSource设置数据源
*/
public JdbcTemplateExtend()
{
}
/**
* 初始构造器
*
* @param dataSource
* 数据源
*/
public JdbcTemplateExtend(DataSource dataSource)
{
this.dataSource = dataSource;
super.setDataSource(dataSource);
}
/**
* 普通分页查询<br>
* <b>如果结果结合比较大应该调用setFetchsize() 和setMaxRow两个方法来控制一下,否则会内存溢出</b>
* @see #setFetchSize(int)
* @see #setMaxRows(int)
* @param sql
* 查询的sql语句
* @param startRow
* 起始行
* @param rowsCount
* 获取的行数
* @return
* @throws DataAccessException
*/
@SuppressWarnings("unchecked")
public List<Map> querySP(String sql, int startRow, int rowsCount)
throws DataAccessException
{
return querySP(sql, startRow, rowsCount, getColumnMapRowMapper());
}
/**
* 自定义行包装器查询<br>
* <b>如果结果结合比较大应该调用setFetchsize() 和setMaxRow两个方法来控制一下,否则会内存溢出</b>
* @see #setFetchSize(int)
* @see #setMaxRows(int)
* @param sql
* 查询的sql语句
* @param startRow
* 起始行
* @param rowsCount
* 获取的行数
* @param rowMapper
* 行包装器
* @return
* @throws DataAccessException
*/
@SuppressWarnings("unchecked")
public List<Map> querySP(String sql, int startRow, int rowsCount, RowMapper rowMapper)
throws DataAccessException
{
return (List) query(sql, new SplitPageResultSetExtractor(rowMapper, startRow,
rowsCount));
}
public DataSource getDataSource()
{
return dataSource;
}
public void setDataSource(DataSource dataSource)
{
this.dataSource = dataSource;
super.setDataSource(dataSource);
}
}
2.SplitPageResultSetExtractor.java
public class SplitPageResultSetExtractor implements ResultSetExtractor
{
private final int start;// 起始行号
private final int len;// 结果集合的长度
private final RowMapper rowMapper;// 行包装器
public SplitPageResultSetExtractor(RowMapper rowMapper, int start, int len)
{
Assert.notNull(rowMapper, "RowMapper is required");
this.rowMapper = rowMapper;
this.start = start;
this.len = len;
}
/**
* 处理结果集合,被接口自动调用,该类外边不应该调用
*/
public Object extractData(ResultSet rs) throws SQLException, DataAccessException
{
List result = new ArrayList();
int rowNum = 0;
int end = start + len;
point: while (rs.next())
{
++rowNum;
if (rowNum < start)
{
continue point;
}
else
if (rowNum >= end)
{
break point;
}
else
{
result.add(this.rowMapper.mapRow(rs, rowNum));
}
}
return result;
}
}
发表评论
-
面向对象设计原则-------总结
2015-07-14 10:55 0单一职能原则 ----- 设计类时,尽量功能单一,粒度合 ... -
MVC设计模式理解
2009-11-16 22:11 2078常常说MVC设计模式,今天抽空整理下,感觉模式这东 ... -
面向对象设计的原则---------迪米特原则
2009-10-15 21:15 3168迪米特原则(Law of Demeter) 1、迪米特原则的 ... -
面向对象设计的原则------接口隔离原则
2009-10-12 15:50 2802接口隔离原则(Interface ... -
面向对象设计的原则------依赖倒置原则
2009-10-11 18:27 3635依赖倒置原则(Dependence Inversion Pri ... -
面向对象设计的原则------里氏代换原则
2009-10-11 14:21 2637里氏代换原则(Liskov Sub ... -
面向对象设计的原则------开闭原则
2009-10-10 23:09 2469开闭原则(Open-Closed Prin ... -
面向对象设计的原则------单一职责原则
2009-10-09 20:36 3271学习设计模式,自然会涉及面向对象的设计原则,面向对 ... -
观察者模式
2009-08-04 22:14 1177gaojie -
组合模式-------树形模式
2009-08-03 20:42 22581、组合模式定义 ... -
命令模式
2009-08-02 14:06 18411、Commad模式是一种对象行为模式,它可以对发送者(se ... -
适配器和外观模式的区别
2009-08-01 18:23 1402ok -
适配器模式
2009-08-01 14:43 1188适配器模式通俗的说是将两个联系不密切的类或类与接口通过另一个类 ... -
门面模式(外观模式)
2009-07-29 22:49 14761、外观模式 为子系统的一组接口提供一个一致的界 ... -
简单工厂模式、代理模式、策略模式如此相似
2009-07-21 22:34 4113最近,一直在看设计模式,感觉简单工厂模式、代理模式、策略模式、 ... -
策略模式
2009-07-19 23:01 1359今天学习策略模式。策略模式是这个样子的。定义一个接 ... -
单例模式完全剖析
2009-07-07 21:01 1340概要 单例模式是最简单的设计模式之一,但是对于Jav ... -
DAO设计模式
2009-07-04 11:40 2233虽然DAO模式已经有了好多的成熟的框架,但它仍然是 ... -
工厂模式与DAO模式
2009-07-02 21:17 4418工厂模式是设计模式中较简单的模式,但在项目的开发过 ... -
动态代理模式
2009-06-30 22:25 15132.动态代理类 Java动态代理类位于Ja ...
相关推荐
综上所述,Spring JdbcTemplate结合MySQL的分页查询封装涉及到的主要知识点有:Spring的JdbcTemplate用法、MySQL的分页查询(LIMIT和OFFSET)、结果集映射、分页结果对象的构建、以及代码封装与复用。通过这些技术,...
本文将深入探讨如何使用`JdbcTemplate`配合游标滚动来解决分页问题,并结合提供的两个文件`JdbcTemplateExtend.java`和`SplitPageResultSetExtractor.java`进行讲解。 首先,我们需要理解什么是游标滚动。在数据库...
SpringJdbcTemplate支持分页查询,通过`SimpleJdbcCall`或`NamedParameterJdbcCall`类,可以配合`RowCallbackHandler`或`ResultSetExtractor`处理分页结果。此外,还可以使用`JdbcPagingItemReader`作为Spring ...
3. 执行分页查询:通过分页信息调用JdbcTemplate方法来返回结果集合。 JdbcTemplate的使用涉及到许多细节,如事务管理、异常处理和SQL注入防护等。在具体应用时,开发者需要结合实际业务需求和Spring框架的其他特性...
同时,可以使用Spring提供的Pageable接口和Page对象来封装分页信息。 【简单易懂】 本案例的特点是简单易懂,适合初学者学习。通过注解方式配置,使得代码更加简洁,减少了XML配置的工作量。同时,案例中包含完整的...
总结起来,实现Oracle + jdbcTemplate + Spring + Java + Flex的分页查询,主要涉及以下步骤: 1. 在Oracle中创建存储过程,处理分页逻辑和计数。 2. 使用Spring的jdbcTemplate调用存储过程,处理输入输出参数。 3. ...
8. **性能优化**:JDBCTemplate支持批处理、分页查询等优化技巧,可以根据需求进行配置。 博客链接中提到的内容可能详细解释了如何配置和使用这些组件,并提供了实际的代码示例。通过这个项目,你可以学习到如何...
为了解决这个问题,Spring框架提供了一个强大的工具——JdbcTemplate,它对JDBC进行了封装,简化了数据库操作,同时也保持了良好的灵活性和控制性。本文将深入探讨JdbcTemplate的使用和原理,以及其在实际项目中的...
1. 设计一个`Page`类来封装分页信息。 2. 编写服务类,如`PageService`,提供分页查询方法,包含SQL的构造、执行以及结果转换。 3. 针对不同的数据库操作工具(JDBC、ORM框架等),适配相应的查询方式。 4. 考虑到...
Java中的数字分页是Web应用开发中常见的需求,特别是在大数据量的展示场景下,为了...通过封装和复用分页逻辑,可以使代码更加整洁,提高开发效率。同时,对于前端展示,还可以考虑使用AJAX无刷新分页,提升用户体验。
由于SSH框架本身的分页功能可能不能满足所有需求,开发者通常会创建自己的分页组件,封装通用的分页逻辑,包括计算总页数、生成分页链接、处理排序条件等。这样的组件可以提高代码复用性和可维护性。 5. **前端...
总结来说,PageBean分页查询是一种有效的数据管理策略,它通过封装分页信息,简化了前后端交互,提高了系统的响应速度。在Java开发中,我们可以利用持久层框架提供的功能,结合SQL的分页语法,实现高效且灵活的分页...
5. **处理结果**:将查询结果封装为业务对象,传递给Struts的Action,最后由Struts渲染成页面展示。 此外,为了提供更好的用户体验,分页通常会配合前端JavaScript库,如jQuery或AngularJS,实现动态加载(Ajax分页...
`PageBean`用于封装每一页的数据,`PageParam`则用于设置分页参数,如当前页数、每页显示条数等。而`PageResult`则是返回给前端的分页结果,包含了总页数、总记录数等信息。 在实际使用中,首先需要创建一个`...
在本文中,我们将深入探讨如何使用Spring框架,特别是Spring MVC和JdbcTemplate,来实现一个功能齐全的数据操作系统,包括单表的增删改查、条件查询以及分页功能,并涉及文件上传。对于初学者来说,这是一个很好的...
在这个项目中,可能会有一个`Page`类,用来封装每页的数据以及分页参数。 2. **视图(View)**:负责呈现用户界面,如JSP、Thymeleaf等。在分页场景下,视图需要展示当前页数据,并可能提供导航链接,让用户可以...
List<User> users = jdbcTemplate.query(sql, params, new UserRowMapper()); return users; } private static class UserRowMapper implements RowMapper<User> { @Override public User mapRow(ResultSet rs,...
在这样的技术栈下实现分页,我们可以利用Spring的JdbcTemplate或者MyBatis等持久层工具来执行SQL查询,获取每页的数据。同时,Struts或Spring MVC负责处理用户的请求,根据用户的选择(如当前页码、每页数量等)动态...
在Java中,我们创建了一个名为`PageUtil`的类,该类用于封装分页的相关参数。`PageUtil`类包含以下属性: 1. `pageNum`:当前页数,初始化为1。 2. `pageSize`:每页显示的记录数,默认为3。 3. `offset`:计算出的...
EasyFramework-Data 在Spring JdbcTemplate的基础上做了进一步封装,提供了以下主要特性: - **简单易用的API**:通过定义DAO接口,EasyFramework-Data自动生成实现,减少了代码量,使开发更快速。 - **参数绑定和...