用c3p0实现Apache—DBUtils框架的Dao层源码
分类: 课堂随笔 2011-11-22 20:43 484人阅读 评论(0) 收藏 举报
用c3p0实现Apache—DBUtils框架的Dao层源码
import java.sql.SQLException;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.ArrayHandler;
import org.apache.commons.dbutils.handlers.ArrayListHandler;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import org.apache.commons.dbutils.handlers.MapListHandler;
import com.hbsi.domain.User;
import com.hbsi.utils.DBManager_c3p0;
public class UserDaoImpl {
// 插入操作
public void insert() {
// 得到数据库连接池对象
QueryRunner runner = newQueryRunner(DBManager_c3p0.getDataSource());
String sql = "insertinto users(name,password) values('liop','8988')";
try {
runner.update(sql);
} catch (SQLException e){
// TODOAuto-generated catch block
e.printStackTrace();
}
}
// 删除操作
public void delete() {
QueryRunner runner = newQueryRunner(DBManager_c3p0.getDataSource());
String sql = "deletefrom users where id=1";
try {
runner.update(sql);
} catch (SQLException e){
// TODOAuto-generated catch block
e.printStackTrace();
}
}
// 更新操作
public void update() {
QueryRunner runner = newQueryRunner(DBManager_c3p0.getDataSource());
String sql = "updateusers set name='老王',password=222 where id=3";
try {
runner.update(sql);
} catch (SQLException e){
// TODOAuto-generated catch block
e.printStackTrace();
}
}
// 通过Id查询操作
public void findById() {
QueryRunner runner = newQueryRunner(DBManager_c3p0.getDataSource());
String sql = "select* from users where id=3";
BeanHandler rsh = newBeanHandler(User.class);
try {
User user =runner.query(sql, rsh);
System.out.println(user.toString());
} catch (SQLException e){
// TODOAuto-generated catch block
e.printStackTrace();
}
}
// 查询所有
public void findAll() {
QueryRunner runner = newQueryRunner(DBManager_c3p0.getDataSource());
String sql = "select* from users";
BeanListHandler rsh = newBeanListHandler(User.class);
try {
List<User>entities = runner.query(sql, rsh);
System.out.println(entities.size());
for (User entity :entities) {
System.out.println(entity.toString());
}
} catch (SQLException e){
// TODOAuto-generated catch block
e.printStackTrace();
}
}
// 批处理
public void bath() {
QueryRunner runner = newQueryRunner(DBManager_c3p0.getDataSource());
String sql = "insertinto users(name,password) values(?,?)";
Object[][] params = { {"aaa", "111" }, { "qqq", "222" },
{"www", "333" }, { "eee", "444" } };
try {
runner.batch(sql,params);
} catch (SQLException e){
// TODOAuto-generated catch block
e.printStackTrace();
}
}
// ArrayHandler的使用
public void testArrayHandler(){
QueryRunner runner = newQueryRunner(DBManager_c3p0.getDataSource());
String sql = "select* from users where id=5";
ArrayHandler rsh = newArrayHandler();
try {
Object[] array =runner.query(sql, rsh);
System.out.println(Arrays.asList(array));
} catch (SQLException e){
// TODOAuto-generated catch block
e.printStackTrace();
}
}
// ArrayListHandler的使用
public void testArrayListHandler(){
QueryRunner runner = newQueryRunner(DBManager_c3p0.getDataSource());
String sql = "select* from users";
ArrayListHandler rsh =new ArrayListHandler();
try {
List<Object[]>array = runner.query(sql, rsh);
for (int i = 1; i< array.size(); i++) {
System.out.println(Arrays.asList(array.get(i)));
}
} catch (SQLException e){
// TODOAuto-generated catch block
e.printStackTrace();
}
}
// Map的应用
public voidtestMapListHandler(){
QueryRunner runner = newQueryRunner(DBManager_c3p0.getDataSource());
String sql = "select* from users";
MapListHandler rsh = newMapListHandler();
List<Map<String,Object>> result=null;
try {
result =(List<Map<String, Object>>) runner.query(sql,rsh);
for (int i = 0; i< result.size(); i++) {
Map<String,Object> map = result.get(i);
System.out.println("---------------------");
for(Map.Entry<String, Object> me : map.entrySet()) {
StringcolName = me.getKey();
Objectvalue = me.getValue();
System.out.println(colName+ " = " + value);
}
}
} catch (SQLException e){
// TODOAuto-generated catch block
e.printStackTrace();
}
}
public static voidmain(String[] args) {
// new UserDaoImpl().insert();
// newUserDaoImpl().delete();
// newUserDaoImpl().update();
// newUserDaoImpl().findById();
// newUserDaoImpl().findAll();
// 批处理
// newUserDaoImpl().bath();
// 数组使用
// newUserDaoImpl().testArrayHandler();
//
//newUserDaoImpl().testArrayListHandler();
newUserDaoImpl().testMapListHandler();
}
分享到:
相关推荐
使用C3P0连接池和DBUtils实现Dao模式的步骤如下: 1. **引入依赖**:首先,在项目中添加C3P0和DBUtils的依赖库,通常通过Maven或Gradle的配置来完成。 2. **配置C3P0**:创建一个配置文件(如c3p0-config.xml),...
将C3P0和DBUtils结合使用,可以构建一个高效且稳定的数据库访问层。例如,通过C3P0初始化一个数据库连接池,然后在DBUtils的QueryRunner中使用这些连接来执行数据库操作。这样,不仅可以利用C3P0的连接池管理,还能...
c3p0和dbutils的jar包c3p0和dbutils的jar包c3p0和dbutils的jar包c3p0和dbutils的jar包c3p0和dbutils的jar包c3p0和dbutils的jar包c3p0和dbutils的jar包c3p0和dbutils的jar包c3p0和dbutils的jar包c3p0和dbutils的jar包...
`c3p0`和`dbUtils`是两个常用的Java库,它们帮助开发者更有效地管理和操作数据库连接。`servlet`是Java Web开发的基础组件,而`MySQL`则是一种广泛应用的关系型数据库管理系统。下面我们将详细探讨这些知识点。 ...
在本项目"C3P0+DBUtils+Ajax+Json+Jquery实现【增删改查】Demo"中,我们将探讨如何结合这些技术来构建一个功能完善的Web应用,用于执行基本的数据操作,即增(Add)、删(Delete)、改(Modify)和查(Query)。...
这些库包括BeanUtils、C3p0、DBCP、DBUtils、JDBC、jstl和dom4j,它们各自在不同的领域提供了强大的支持。 1. **BeanUtils**:Apache Commons BeanUtils库简化了Java对象属性的访问和操作。它提供了一种通过属性名...
在Java开发中,数据库连接管理是一项关键任务,而c3p0-dbutils-mysql连接驱动则是实现这一目标的重要工具。本篇文章将深入探讨c3p0、DBUtils以及MySQL驱动在Java应用程序中的作用和使用方法。 首先,c3p0是一个开源...
将DBUtils、C3P0和ojdbc6结合使用,可以构建一个高效、可靠的数据库访问层。具体步骤如下: 1. 首先,你需要在项目中引入这三个库的依赖。如果是Maven项目,可以在pom.xml文件中添加对应的依赖项;对于非Maven项目...
原创制作,无框架,功能界面美观大气,这个Java Web项目是一个基于servlet、c3p0和dbutils的网上商城系统,使用MySQL数据库作为后端存储。它采用了极简风格的设计,没有使用任何框架,所有代码都是手写的。 该项目...
commons-dbutils是Apache组织提供的一个开源JDBC工具类库,它是对JDBC的简单封装,学习成本极低,并且使用dbutils能极大简化jdbc编码的工作量,同时也不会影响程序的性能。 springmvc与springmvc 整合demo
通过集成MySQL数据库进行数据存储,C3P0连接池优化数据库连接管理,以及DBUtils简化数据库操作,系统具有良好的结构和性能。StuSerVlet作为控制器处理HTTP请求,协调模型和视图,完成各种功能,如查询学生信息、添加...
Apache DBUtils是一个开源的Java库,它为Java程序员提供了便捷的方式来处理JDBC(Java Database Connectivity)操作。DBUtils的主要目标是简化JDBC编程,减少代码重复,并帮助避免常见的JDBC编程错误。它不是一个...
在实际应用中,开发者通常会将Apache Commons DBUtils和C3P0结合使用,DBUtils负责简化SQL操作,C3P0负责高效管理数据库连接。通过使用C3P0的连接池,开发者可以在不影响性能的前提下,有效地管理和复用数据库连接,...
7. **连接池集成**:DBUtils可以很好地与各种常见的Java数据库连接池(如C3P0、DBCP、HikariCP等)集成,提高数据库操作的性能。 在提供的压缩文件中,我们看到以下几个部分: 1. **DdlUtils-1.0.jar**:这是...
Apache DBUtils 是一个轻量级的 Java 数据库连接(JDBC)工具,它提供了一些实用功能,简化了数据库操作。DBUtils 最主要的功能是对 JDBC 结果集进行封装,能够将查询结果直接转换为 JavaBean 对象,从而减轻开发...
本项目名为“简易学生信息管理系统”,它利用了Java Web中的Servlet、DBUtils、c3p0以及MySQL数据库来实现。下面我们将逐一探讨这些技术及其在项目中的应用。 1. **Servlet**: Servlet是Java EE的一部分,它是...
commons-dbutils是Apache组织提供的一个开源JDBC工具类库,它是对JDBC的简单封装,学习成本极低,并且使用dbutils能极大简化jdbc编码的工作量,同时也不会影响程序的性能。因此dbutils成为很多不喜欢hibernate的公司...
DBUtils的核心理念是通过提供一组实用工具类来减少数据库访问代码,使得开发人员能够更专注于业务逻辑,而不是繁琐的数据层实现。 **1. 框架特性** 1.1 容错性:DBUtils通过处理SQLException异常,提供了一种优雅...
[Database-support-package]-...[myDbPoolUse]C3P0连接池配置/DBCP连接池配置/Apache的DBUtils框架使用 [myFilterDemoWeb]过滤器Filter学习-设置全站编码与设置页面缓存 [myGzipWeb]全站压缩 [myJavaMainDemo]Java-Q
在描述中提到的"采用Apache dbutils操作数据库的DAO类",指的是使用DBUtils库创建的DAO(Data Access Object)模式实现。DAO模式是一种设计模式,用于封装对数据库的所有操作,使业务逻辑与数据访问层分离,提高代码...