代码片段: 数据库连接池-gistfile1.txt

public class DBUtil { private final static String driver = "com.mysql.jdbc.Driver"; private final static String url = "jdbc:mysql://localhost:3306/"; private final static S...
<pre>public class DBUtil { private final static String driver = "com.mysql.jdbc.Driver"; private final static String url = "jdbc:mysql://localhost:3306/"; private final static String user = "user"; private final static String pass = "pass"; public static Vector<Connection> connectionPool = new Vector<Connection>(); static { try { Class.forName(driver); for (int i = 0; i < 10; i++) { Connection conn = DriverManager.getConnection(url, user, pass); connectionPool.add(conn); } } catch (Exception e) { e.printStackTrace(); } } public static Connection getConnection() { Connection conn = connectionPool.get(0); connectionPool.remove(0); return conn; } public static void releaseConnection(Connection conn) { connectionPool.add(conn); } public static int update(String sql, Object... p) { Connection conn = DBUtil.getConnection(); int n = 0; try { PreparedStatement ps = conn.prepareStatement(sql); for (int i = 0; i < p.length; i++) { ps.setObject(i + 1, p[i]); } n = ps.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } return n; } public static List query(Class c, String sql, Object... p) { Connection conn = DBUtil.getConnection(); List list = null; try { PreparedStatement ps = conn.prepareStatement(sql); for (int i = 0; i < p.length; i++) { ps.setObject(i + 1, p[i]); } ResultSet rs = ps.executeQuery(); ResultSetMetaData rsmd = rs.getMetaData(); int count = rsmd.getColumnCount(); list = new ArrayList(); while (rs.next()) { Object object = c.newInstance(); for (int i = 0; i < count; i++) { String fieldName = rsmd.getColumnLabel(i + 1); Field field = c.getDeclaredField(fieldName); field.setAccessible(true); field.set(object, rs.getObject(i + 1)); } list.add(object); } } catch (Exception e) { e.printStackTrace(); } finally { DBUtil.releaseConnection(conn); } return list; } // 聚合查询 public static int uniqueQuery(String sql, Object... p) { Connection connection = getConnection(); int n = 0; try { PreparedStatement ps = connection.prepareStatement(sql); for (int i = 0; i < p.length; i++) { ps.setObject(i + 1, p[i]); } ResultSet rs = ps.executeQuery(); rs.next(); n = rs.getInt(1); } catch (SQLException e) { e.printStackTrace(); } finally { releaseConnection(connection); } return n; } }</pre>
  • 发表于 2018-07-05 13:00
  • 阅读 ( 522 )
  • 分类:代码片段

条评论

请先 登录 后评论
不写代码的码农
小编

篇文章

作家榜 »

  1. 小编 文章
返回顶部
部分文章转自于网络,若有侵权请联系我们删除