黑马程序员技术交流社区
标题:
DBUtil的简单封装
[打印本页]
作者:
何家旺
时间:
2013-8-20 22:50
标题:
DBUtil的简单封装
如题,使用DBUtil实现简单的增删改查的封装!!!
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, sql, 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, sql, 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;
}
复制代码
作者:
想你 已成习惯
时间:
2013-8-22 16:10
这正是我想要的
作者:
wangaowell
时间:
2013-8-22 19:03
我之前也封装了一个DBUtil类,这个也是不错的。
作者:
转身大笑面对
时间:
2013-8-26 16:20
果断拿走、
作者:
转身大笑面对
时间:
2013-8-26 16:20
果断拿走、
作者:
风乐
时间:
2013-9-7 22:32
aghgajsg鬼地方郭德纲的说的
作者:
傅宇
时间:
2013-9-13 22:57
不错哟。
作者:
cuilitang
时间:
2013-12-4 14:09
赞赞赞!
作者:
mudaoliuxigb
时间:
2013-12-16 19:48
看看是什么东西
作者:
wilberthome
时间:
2013-12-17 21:54
谢谢分享
作者:
chensc
时间:
2013-12-22 14:34
学习学习!
作者:
chensc
时间:
2014-1-3 08:21
学习学习!
作者:
chensc
时间:
2014-1-11 16:00
学习学习!
作者:
myclover
时间:
2014-2-9 17:00
这个比较实用,谢谢了!
作者:
chensc
时间:
2014-3-13 08:07
学习学习!
作者:
chensc
时间:
2014-3-26 08:11
学习学习!
作者:
brucer
时间:
2014-4-13 00:55
:lol:lol:lol:lol
作者:
喔哟
时间:
2014-4-18 10:07
确实是简单。。。仅仅满足最基本的功能
作者:
chensc
时间:
2014-4-19 05:32
学习学习!
作者:
幽雅
时间:
2014-5-5 18:16
:)赞一个
作者:
瞌睡虫
时间:
2014-5-10 14:22
RE: DBUtil的简单封装 [修改
作者:
hero112200
时间:
2014-6-19 22:38
挺好,hibernate中的dbUtil也都一个道理……
作者:
qishengfeng
时间:
2014-6-29 18:23
复制下来看看
作者:
八零、玖羚
时间:
2014-6-30 23:59
我发下自己封装的就是小儿科:L
作者:
冰雪里的男孩
时间:
2014-7-8 09:48
牛人,感谢了
作者:
hzy1992asd
时间:
2014-8-4 23:13
学习学习
作者:
lxg1208
时间:
2014-8-30 22:24
收藏了。
作者:
zz_job
时间:
2014-9-24 22:09
谢谢何老师 你真厉害 能分享这么多资源!!!
作者:
xmail978
时间:
2016-2-13 21:18
这正是我想要的
作者:
15266913109
时间:
2016-2-14 10:39
顶一下,哈哈
作者:
yimoaini
时间:
2016-8-9 23:13
http://bbs.itheima.com/forum.php ... yMjA1OTV8NjA2OTE%3D
作者:
yimoaini
时间:
2016-8-9 23:15
看一看,有用
作者:
newu
时间:
2016-8-9 23:33
我之前也封装了一个DBUtil类,这个也是不错的
作者:
哈韩浪子
时间:
2016-8-10 11:32
学习了 非常实用
作者:
文艺复兴
时间:
2018-3-29 12:38
gkakgkagakjlgklahgakgh
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2