欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

DBUtil的简单封装(dbutil+tomcat jdbcpool),dbutiljdbcpool,package org.

来源: javaer 分享于  点击 2881 次 点评:182

DBUtil的简单封装(dbutil+tomcat jdbcpool),dbutiljdbcpool,package org.


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;      }     /**     * 根据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;             }}//该片段来自于http://byrx.net
相关栏目:

用户点评