A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 何家旺 黑马粉丝团   /  2013-8-20 22:50  /  3770 人查看  /  37 人回复  /   2 人收藏 转载请遵从CC协议 禁止商业使用本文

如题,使用DBUtil实现简单的增删改查的封装!!!
  1. package org.home.util;

  2. import java.sql.Connection;
  3. import java.sql.SQLException;
  4. import java.util.List;
  5. import org.apache.commons.dbutils.QueryRunner;
  6. import org.apache.commons.dbutils.ResultSetHandler;
  7. import org.apache.commons.dbutils.handlers.BeanListHandler;
  8. import org.apache.tomcat.jdbc.pool.DataSource;
  9. import org.apache.tomcat.jdbc.pool.PoolProperties;

  10. public class DBUtil {
  11.         private static DataSource ds;
  12.         private static QueryRunner runner;
  13.         static {
  14.                 PoolProperties p = new PoolProperties();
  15.                 p.setUrl("jdbc:mysql://localhost:3306/home");
  16.                 p.setDriverClassName("com.mysql.jdbc.Driver");
  17.                 p.setUsername("root");
  18.                 p.setPassword("sa");
  19.                 p.setJmxEnabled(true);
  20.                 p.setTestWhileIdle(false);
  21.                 p.setTestOnBorrow(true);
  22.                 p.setValidationQuery("SELECT 1");
  23.                 p.setTestOnReturn(false);
  24.                 p.setValidationInterval(30000);
  25.                 p.setTimeBetweenEvictionRunsMillis(30000);
  26.                 p.setMaxActive(100);
  27.                 p.setInitialSize(10);
  28.                 p.setMaxWait(10000);
  29.                 p.setRemoveAbandonedTimeout(60);
  30.                 p.setMinEvictableIdleTimeMillis(30000);
  31.                 p.setMinIdle(10);
  32.                 p.setLogAbandoned(true);
  33.                 p.setRemoveAbandoned(true);
  34.                 p.setJdbcInterceptors("org.apache.tomcat.jdbc.pool.interceptor.ConnectionState;"
  35.                                 + "org.apache.tomcat.jdbc.pool.interceptor.StatementFinalizer");
  36.                 ds = new DataSource();
  37.                 ds.setPoolProperties(p);
  38.                 runner = new QueryRunner();
  39.         }

  40.         private static Connection getConnection() throws SQLException {
  41.                 return ds.getConnection();
  42.         }

  43.         /**
  44.          * 删除
  45.          * @param tableName
  46.          * @param id
  47.          * @return
  48.          */
  49.         public static boolean delete(String tableName, long id) {
  50.                 String sql = "delete from " + tableName + " where id=?";
  51.                 int i = 0;
  52.                 boolean flag = false;
  53.                 Connection con = null;
  54.                 try {
  55.                         con = getConnection();
  56.                         i = runner.update(con, sql, id);
  57.                         if (i >= 0) {
  58.                                 flag = true;
  59.                         }
  60.                 } catch (SQLException e) {
  61.                         System.out.println(e.getMessage());
  62.                 } finally {
  63.                         if (con != null) {
  64.                                 try {
  65.                                         con.close();
  66.                                 } catch (SQLException e) {
  67.                                         System.out.println(e.getMessage());
  68.                                 }
  69.                         }
  70.                 }
  71.                 return flag;
  72.         }

  73.         /**
  74.          * 修改/添加
  75.          * @param sql
  76.          * @param pring
  77.          * @return
  78.          */
  79.         public static boolean update(String sql, Object pring[]) {
  80.                 int i = 0;
  81.                 boolean flag = false;
  82.                 Connection con = null;
  83.                 try {
  84.                         con = getConnection();
  85.                         i = runner.update(con, sql, pring);
  86.                         if (i >= 0) {
  87.                                 flag = true;
  88.                         }
  89.                 } catch (SQLException e) {
  90.                         e.printStackTrace();
  91.                 } finally {
  92.                         if (con != null) {
  93.                                 try {
  94.                                         con.close();
  95.                                 } catch (SQLException e) {
  96.                                         e.printStackTrace();
  97.                                 }
  98.                         }
  99.                 }
  100.                 return flag;
  101.         }

  102.         /**
  103.          * 查询
  104.          * @param sql
  105.          * @param rsh
  106.          * @return
  107.          */
  108.         public static List<?> query(String sql, ResultSetHandler<?> rsh) {  
  109.         List<?> result = null;  
  110.         Connection con = null;
  111.         try {  
  112.                 con = getConnection();
  113.                 result = (List<?>) runner.query(con, sql, rsh);
  114.         } catch (SQLException e) {            
  115.             e.printStackTrace();  
  116.         } finally {
  117.                 if (con!=null) {
  118.                         try {
  119.                                         con.close();
  120.                                 } catch (SQLException e) {
  121.                                         e.printStackTrace();
  122.                                 }
  123.                 }
  124.         }
  125.         return result;  
  126.     }  
  127.         
  128.         /**
  129.          * 分页查询
  130.          * @param sql
  131.          * @param rsh
  132.          * @param page
  133.          * @param pageSize
  134.          * @return
  135.          */
  136.         public static List<?> query(String sql, ResultSetHandler<?> rsh, int page, int pageSize) {  
  137.         List<?> result = null;  
  138.         Connection con = null;
  139.         try {  
  140.                 con = getConnection();
  141.                 result = (List<?>) runner.query(con, sql + " limit " + page*pageSize + "," + pageSize, rsh);
  142.         } catch (SQLException e) {            
  143.             e.printStackTrace();  
  144.         } finally {
  145.                 if (con!=null) {
  146.                         try {
  147.                                         con.close();
  148.                                 } catch (SQLException e) {
  149.                                         e.printStackTrace();
  150.                                 }
  151.                 }
  152.         }
  153.         return result;  
  154.     }
  155.         
复制代码
游客,如果您要查看本帖隐藏内容请回复

37 个回复

倒序浏览
这正是我想要的
回复 使用道具 举报
我之前也封装了一个DBUtil类,这个也是不错的。
回复 使用道具 举报
果断拿走、
回复 使用道具 举报
果断拿走、
回复 使用道具 举报
aghgajsg鬼地方郭德纲的说的
回复 使用道具 举报
傅宇 中级黑马 2013-9-13 22:57:45
7#
不错哟。
回复 使用道具 举报
赞赞赞!
回复 使用道具 举报
看看是什么东西
回复 使用道具 举报
谢谢分享
回复 使用道具 举报
chensc 金牌黑马 2013-12-22 14:34:10
11#
学习学习!
回复 使用道具 举报
学习学习!
回复 使用道具 举报
学习学习!
回复 使用道具 举报
这个比较实用,谢谢了!
回复 使用道具 举报
学习学习!
回复 使用道具 举报
学习学习!
回复 使用道具 举报
:lol:lol:lol:lol
回复 使用道具 举报
确实是简单。。。仅仅满足最基本的功能
回复 使用道具 举报
学习学习!
回复 使用道具 举报
:)赞一个
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马