java db封装_java DBUtil的简单封装(dbutil+tomcat jdbcpool)

本文介绍了如何使用Java对数据库操作进行封装,具体包括使用DBUtil工具类以及Tomcat JDBC连接池进行数据库的增删查改操作。详细展示了DataSource的配置和QueryRunner的使用方法。
摘要由CSDN通过智能技术生成

下面是编程之家 jb51.cc 通过网络收集整理的代码片段。

编程之家小编现在分享给大家,也给大家做个参考。

package org.home.util;

import java.sql.Connection;

import java.sql.sqlException;

import java.util.List;

import org.apache.commons.dbutils.QueryRunner;

import org.apache.commons.dbutils.ResultSetHandler;

import org.apache.commons.dbutils.handlers.BeanListHandler;

import org.apache.tomcat.jdbc.pool.DataSource;

import org.apache.tomcat.jdbc.pool.PoolProperties;

public class DBUtil {

private static DataSource ds;

private static QueryRunner runner;

static {

PoolProperties p = new PoolProperties();

p.setUrl("jdbc:MysqL://localhost:3306/home");

p.setDriverClassName("com.MysqL.jdbc.Driver");

p.setUsername("root");

p.setPassword("sa");

p.setJmxEnabled(true);

p.setTestWhileIdle(false);

p.setTestOnBorrow(true);

p.setValidationQuery("SELECT 1");

p.setTestOnReturn(false);

p.setValidationInterval(30000);

p.setTimeBetweenEvictionRunsMillis(30000);

p.setMaxActive(100);

p.setInitialSize(10);

p.setMaxWait(10000);

p.setRemoveAbandonedTimeout(60);

p.setMinEvictableIdleTimeMillis(30000);

p.setMinIdle(10);

p.setLogAbandoned(true);

p.setRemoveAbandoned(true);

p.setJdbcInterceptors("org.apache.tomcat.jdbc.pool.interceptor.ConnectionState;"

+ "org.apache.tomcat.jdbc.pool.interceptor.StatementFinalizer");

ds = new DataSource();

ds.setPoolProperties(p);

runner = new QueryRunner();

}

private static Connection getConnection() throws sqlException {

return ds.getConnection();

}

/**

* 删除

* @param tableName

* @param id

* @return

*/

public static boolean delete(String tableName,long id) {

String sql = "delete from " + tableName + " where id=?";

int i = 0;

boolean flag = false;

Connection con = null;

try {

con = getConnection();

i = runner.update(con,sql,id);

if (i >= 0) {

flag = true;

}

} catch (sqlException e) {

System.out.println(e.getMessage());

} finally {

if (con != null) {

try {

con.close();

} catch (sqlException e) {

System.out.println(e.getMessage());

}

}

}

return flag;

}

/**

* 修改/添加

* @param sql

* @param pring

* @return

*/

public static boolean update(String sql,Object pring[]) {

int i = 0;

boolean flag = false;

Connection con = null;

try {

con = getConnection();

i = runner.update(con,pring);

if (i >= 0) {

flag = true;

}

} catch (sqlException e) {

e.printStackTrace();

} finally {

if (con != null) {

try {

con.close();

} catch (sqlException e) {

e.printStackTrace();

}

}

}

return flag;

}

/**

* 查询

* @param sql

* @param rsh

* @return

*/

public static List> query(String sql,ResultSetHandler> rsh) {

List> result = null;

Connection con = null;

try {

con = getConnection();

result = (List>) runner.query(con,rsh);

} catch (sqlException e) {

e.printStackTrace();

} finally {

if (con!=null) {

try {

con.close();

} catch (sqlException e) {

e.printStackTrace();

}

}

}

return result;

}

/**

* 分页查询

* @param sql

* @param rsh

* @param page

* @param pageSize

* @return

*/

public static List> query(String sql,ResultSetHandler> rsh,int page,int pageSize) {

List> result = null;

Connection con = null;

try {

con = getConnection();

result = (List>) runner.query(con,sql + " limit " + page*pageSize + "," + pageSize,rsh);

} catch (sqlException e) {

e.printStackTrace();

} finally {

if (con!=null) {

try {

con.close();

} catch (sqlException e) {

e.printStackTrace();

}

}

}

return result;

}

/**

* 根据id查询

* @param clasz

* @param id

* @return

*/

public static Object get(Class> clasz,int id) {

Connection con = null;

Object obj = null;

try {

con = getConnection();

@SuppressWarnings({ "unchecked","rawtypes" })

List>result = (List>) runner.query(con,"select * from " + clasz.getSimpleName().toLowerCase() + " where id=" + id,new BeanListHandler(clasz));

if (result!=null && result.size()>0) {

obj = result.get(0);

}

} catch (sqlException e) {

e.printStackTrace();

} finally {

if (con!=null) {

try {

con.close();

} catch (sqlException e) {

e.printStackTrace();

}

}

}

return obj;

}

}

以上是编程之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

如您喜欢交流学习经验,点击链接加入交流1群:1065694478(已满)交流2群:163560250

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值