要运行要使用了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;
}
}
分享到:
相关推荐
commons的四个常用组件jar包,包括commons-beanutils-1.9.3、commons-dbutils-1.6、commons-io-2.5、commons-logging-1.2。
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-...
内涵多个个 java web 常用 jar 包 c3p0-0.9.2-pre1、Commons Logging、dbcp、dom4j、jstl、数据库驱动、dbutils
存一些java常用的jar包,方便以后使用 ...commons-dbutils-1.4.jar commons-io-2.4.jar dom4j-1.6.1.jar hamcrest-core-1.3.jar jaxen-1.1.6.jar junit-4.12.jar mysql-connector-java-5.1.37-bin.jar
8.commons-Codec.jar包:处理常用的编码方法的工具类包 例如DES、SHA1、MD5、Base64等. 9.commons-Configuration.jar:一个java应用程序的配置管理类库 10.commons-Betwixt.jar:XML与Java对象之间相互转换。 11....
里面包含了java常用的jar包,activation.jar,commons-dbutils-1.3.jar,jsmartcom_zh_CN.jar
c3p0-0.9.2-pre1.jar commons-beanutils-1.8.0.jar commons-dbcp.jar commons-dbutils-1.1.fixed.jar commons-fileupload-1.2.1.jar commons-io-1.4.jar commons-logging.jar commons-pool.jar等等。
java 常用 工具包,包含 commons-io,commons-fileupload,commnons-dbutils,commons-beanutils,c3p0....
本资源是java开发的常用工具类,包括01.DTD约束文档,02.Schema约束文档,c3p0,commons-dbutils-1.6,commons-io-2.4,commons-pool-1.5.6,mysql-connector-java-5.1.37
简洁明快的一个数据库工具尖,使用...封装了最常用的数据库操作方法,比如万能更新,万能能查询,插入数据后返回自增id的方法等 内含测试用的示例和数据库建表语句以及测试数据,在eclipse或myeclipse 都能直接运行
8.3 Commons DbUtils 8.4 网络留言板V3.0 第9章 JSP及其应用 9.1 JSP基础知识 9.2 JSP 语法 9.3 JSP 范例 9.4 网络留言板V4.0 第10章 JavaBean及其应用 10.1 JavaBean 基础知识 10.2 JavaBean 在 JSP 中的...
开源 bbs 源码 java #SSHE Easyui演示项目 SSHE示例项目是一个由Eclipse Kepler创建,Struts2.3.x+Spring3.2.x+...在sy.test包下,添加了apache的commons包下的dbutils工具的一些常用示例 v20131018 升级Highchart
13.3 commons dbutils组件 13.4 小结 第14章 ajax技术jquary框架的经典应用 14.1 jquery框架的简单应用 14.2 利用jquery框架实现的经典运用 14.3 实现仿google suggest功能 14.4 google ...