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; } }
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/10421.html