中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

java DBUtil的簡(jiǎn)單封裝(dbutil+tomcat jdbcpool)

2018-07-20    來源:open-open

容器云強(qiáng)勢(shì)上線!快速搭建集群,上萬Linux鏡像隨意使用
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;  
    } 

    /**
     * 根據(jù)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;         
    }
}

標(biāo)簽: Mysql

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請(qǐng)與原作者聯(lián)系。

上一篇:php curl 上傳文件

下一篇:Python獲取腳本所在目錄的正確方法