要运行要使用了dbcp连接池
package com.crm.db.base;
import java.sql.SQLException;
import java.util.List;
import javax.sql.DataSource;
import org.apache.commons.dbcp.BasicDataSource;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import org.apache.commons.dbutils.handlers.ScalarHandler;
import com.crm.domain.User;
import com.crm.util.Constants;
// wnick123@gmail.com
public class DBBase {
private static DBBase dbBase;
private static QueryRunner run ;
private DataSource dataSource;
public DataSource getDataSource() { return dataSource;}
public void setDataSource(DataSource dataSource) { this.dataSource = dataSource;}
private DBBase(){}
private void init(){
dbBase = this;
run=new QueryRunner(dataSource);
}
public static DBBase getInstance(){
return dbBase;
}
/**
* eg:
* select count(1) from user
*
* @param sql
* @param params
* @return
*/
public int count(String sql, Object[] params){
Object o = getAnAttr(sql,params);
if(o instanceof Integer){
return (Integer) o;
}
if(o instanceof Long){
Long l = (Long)o;
return l.intValue();
}
String s = (String)o;
try{
return Integer.parseInt(s);
}catch (NumberFormatException e) {
return 0;
}
}
/**
* 获得第一个查询第一行第一列
* @param sql
* @param params
* @return
*/
public Object getAnAttr(String sql, Object[] params){
showSql(sql);
Object s=null;
try {
s = run.query(sql, new ScalarHandler(1),params);
} catch (SQLException e) {
e.printStackTrace();
}
return s;
}
/**
* 查询返回单个对象
* @param sql
* @param clazz
* @return
*/
public <T> T queryForObject(String sql,Object param[],Class<T> clazz){
T obj = null;
try {
showSql(sql);
obj = (T)run.query(sql,new BeanHandler(clazz), param);
} catch (SQLException e) {
e.printStackTrace();
}
return obj;
}
/**
* 查询返回list对象
* @param sql
* @param clazz
* @return
*/
public <T> List<T> queryForOList(String sql,Object[] param,Class<T> clazz){
List<T> obj = null;
try {
showSql(sql);
obj = (List<T>)run.query(sql,new BeanListHandler(clazz),param);
} catch (SQLException e) {
e.printStackTrace();
}
return obj;
}
/**
* 保存返回主键
* @param sql
* @param param
* @return
*/
public int storeInfoAndGetGeneratedKey(String sql,Object[] param){
int pk=0;
try {
showSql(sql);
run.update(sql,param);
pk = ((Long)run.query("SELECT LAST_INSERT_ID()", new ScalarHandler(1))).intValue();
}catch(SQLException e) {
e.printStackTrace();
}
return pk;
}
/**
* 更新
* @param sql
* @return
*/
public int update(String sql,Object[] param){
int i=0;
try {
showSql(sql);
i = run.update(sql,param);
}catch(SQLException e) {
e.printStackTrace();
}
return i;
}
private void showSql(String sql){
if(Constants.SHOW_SQL){
System.out.println(sql);
}
}
/**
* @param args
*/
public static void main(String[] args) {
String uri = "jdbc:mysql://localhost:3306/miccrm";
DataSource ds = setupDataSource(uri);
DBBase db = new DBBase();
db.setDataSource(ds);
db.init();
String sql = "select count(1) from user";
int i = db.count(sql,null);
sql="select name from user";
List<User> us = DBBase.getInstance().queryForOList(sql, null, User.class);
for(User u:us){
System.out.println(u.getName());
}
sql = "insert into user(name) values(?)";
int pk = DBBase.getInstance().storeInfoAndGetGeneratedKey(sql, new Object[]{"a"});
System.out.println(pk);
sql ="select name from user where id =?";
String a =(String) DBBase.getInstance().getAnAttr(sql, new Object[]{1});
System.out.println(a);
}
private static DataSource setupDataSource(String connectURI) {
BasicDataSource ds = new BasicDataSource();
ds.setDriverClassName("com.mysql.jdbc.Driver");
ds.setUsername("root");
ds.setPassword("123456");
ds.setUrl(connectURI);
return ds;
}
}
分享到:
相关推荐
Apache Commons DBUtils是一个Java库,它简化了与数据库交互的任务,是Java开发中常用的数据访问工具。这个压缩包“commons-dbutils-1.3.zip”包含的是DBUtils库的1.3版本。DBUtils库是Apache Commons项目的一部分,...
2. 查询结果集处理:DBUtils中最常用的工具类是QueryRunner,它支持执行SQL查询和更新操作。对于查询操作,QueryRunner可以将结果集转换为Bean对象列表,方便进行数据绑定和展示。例如,通过`QueryRunner.runQuery()...
使用 Commons dbutils 可以极大地简化 JDBC 编程,避免了许多手动处理连接、声明和结果集的工作,同时也提高了代码的可读性和可维护性。例如,使用 `QueryRunner` 执行查询和更新操作时,只需要提供 SQL 语句、参数...
它作为Apache Commons项目的一部分,是Java开发者常用的一个工具,能够减少编写重复的JDBC模板代码。 标题提到的"commons-dbutils的jar包,1.3和1.7两个版本合集",意味着我们有两个不同版本的DBUtils库:1.3和1.7...
Apache Commons DBUtils是一个简化数据库操作的库,它与DBCP一起使用时效果更佳。DBUtils提供了一套简单的API,可以避免常见的JDBC编程错误,如资源泄漏。它封装了JDBC的常用操作,如执行SQL查询、处理结果集等,...
Dbutils 是 Apache Commons DbUtils 的简称,它是一个用于简化 Java 数据库编程的开源库。Dbutils 基于 JDBC(Java Database Connectivity),提供了一套简洁、高效且易于使用的API,帮助开发者更方便地处理数据库...
9. **Commons DbUtils**: 是一个轻量级的数据库工具包,简化了 JDBC 的使用,如自动关闭资源、执行 SQL 语句等。它的 `QueryRunner` 类提供了执行 SQL 查询和更新操作的简便方法。 这些 API 在实际开发中有着广泛的...
这个jar包包含了不同版本的dbutils,分别是`dbutils1.6`、`dbutils1.7`和`dbutils1.4`,以及`commons-dbutils-1.6-bin`,这些都是Java开发者在处理数据库操作时常用的工具。 **1. dbutils概述** dbutils是基于...
DBUtils是一组旨在简化JDBC调用的Java类库,它由Apache Commons项目提供。DBUtils的特点在于它能够简化数据库操作,避免资源泄露,并且代码简洁。资源泄露是JDBC操作中常见的问题,通常发生在数据库连接、语句和结果...
6. **commons-dbutils-1.6.jar**:Apache Commons DbUtils是基于Java的数据库操作工具,它简化了JDBC操作,提供了简单的查询、结果集处理等功能,使得处理数据库操作更加安全和简便。 7. **commons-logging-1.1.3....
本压缩包提供了三个常用的Java库,分别是activation.jar、commons-dbutils-1.3.jar和jsmartcom_zh_CN.jar,下面将分别详细介绍这三个jar包及其在Java开发中的作用。 1. **activation.jar**:这是一个用于JavaMail的...
4. **DBUtils**:Apache Commons DBUtils是基于JDBC的数据库操作工具库,简化了数据库操作。它提供了一套异常处理机制,使得开发者不必频繁地处理SQL语句执行过程中的异常,同时还支持批处理和自动关闭资源,避免了...
JavaWeb常用jar包整合,这里用的数据库jar包是5.1.37可以连5.5.40的数据库的,如果数据库版本较高记得更改,其余包含c3p0-0.9.1.2、commons-beanutils-1.9.4、commons-dbcp-1.4、commons-dbutils-1.7、commons-...
11. **Commons DbUtils**: 是一个 JDBC 辅助库,提供简单的资源清理代码,帮助简化数据库操作。 12. **Commons Digester**: 使用 XML 配置文件映射到 Java 对象,简化 XML 解析和对象创建过程。 13. **Commons ...
9. **Commons DbUtils**:简化了数据库操作,提供了一个简单的JDBC工具库,可以防止SQL注入等问题。 10. **Commons Configuration**:提供了一种灵活的方式来管理应用程序的配置,支持多种配置源,如XML、...
这个压缩包包含了一些经典的Java Web开发中的重要组件,如dbutils、dom4j、c3p0、dbcp以及jstl等,同时也包含了数据库驱动和Commons Logging。接下来,我们将深入探讨这些组件的功能和使用场景。 1. **dbutils**: ...
### Apache DbUtils 常见方法详解 #### 一、Apache Commons DbUtils 概述 ...以上是对Apache DbUtils常用方法的详细介绍,希望这些内容能够帮助开发者更好地理解和应用DbUtils,从而提高开发效率。
在Java开发中,数据库操作是不可或缺的一部分,而`dbutils`和`proxool`就是两个常用的工具库,用于简化数据库连接管理和数据访问。本篇文章将详细介绍这两个库以及它们的使用。 `dbutils`是一个轻量级的Java数据库...
以上仅列举了一部分Apache Commons中的模块,实际上它还包括更多其他模块,如DBUtils(数据库操作)、CSV(CSV文件处理)等。这些库的使用可以显著提高开发效率,减少代码量,并且经过广泛测试,稳定性较高。如果你...
`commons-dbutils-1.7`是Apache Commons DBUtils库的一个版本,它是Java开发中常用的数据库操作工具包。DBUtils简化了JDBC编程,提供了一层抽象,避免了手动处理数据库连接、关闭结果集等繁琐工作,降低了出错的可能...