JDBCUtil工具类及C3P0Util工具类

mac2025-03-21  13

JDBCUtil:

public class JDBCUtils { private JDBCUtils() {} //获得连接 private static String url; private static String username; private static String password; static { //注册驱动 try { url = "jdbc:mysql://localhost:3306/test_db"; username = "root"; password = "123"; Class.forName("com.mysql.jdbc.Driver"); } catch (ClassNotFoundException e) { throw new RuntimeException(e); } } public static Connection getConnection() throws SQLException { Connection con = DriverManager.getConnection(url, username, password); return con; } public static void close(ResultSet rs, Statement sta,Connection con){ try { if(rs!=null){ rs.close(); } } catch (SQLException e) { e.printStackTrace(); } try { if (sta!=null){ sta.close(); } } catch (SQLException e) { e.printStackTrace(); } try { if (con!=null){ con.close(); } } catch (SQLException e) { e.printStackTrace(); } } }

C3P0Util工具类:

Java为数据库连接池提供了公共的接口:javax.sql.DataSource,各个厂商需要让自己的连接池实现这个接口. 方法 Connection getConnection() 从连接池中获取连接 所以,如果想从连接池中获取到连接对象 只需要创建DataSource对象 调用getConnection方法即可 但是DataSource是一个接口 不能创建对象 我们需要创建DataSource的实现类对象 调用getConnection

c3p0连接池实现了Java中的DataSource这个接口 实现类是ComboPooledDataSource 我们只需要创建这个类的对象 调用getConnection方法就可以了

c3p0-config.xml

<c3p0-config> <!-- 使用默认的配置读取连接池对象 --> <default-config> <!-- 连接参数 --> <property name="driverClass">com.mysql.jdbc.Driver</property> <property name="jdbcUrl">jdbc:mysql://localhost:3306/day03_db</property> <property name="user">root</property> <property name="password">123</property> <!-- 连接池参数 --> <property name="initialPoolSize">5</property> <property name="maxPoolSize">10</property> <property name="checkoutTimeout">2000</property> <property name="maxIdleTime">1000</property> </default-config> </c3p0-config>

C3P0Util

public class C3P0_Utils { private C3P0_Utils(){} private static ComboPooledDataSource pool; static{ pool = new ComboPooledDataSource(); //设置连接池的必要属性(使用配置文件后不再需要) //pool.setDriverClass("com.mysql.jdbc.Driver"); //pool.setJdbcUrl("jdbc:mysql://127.0.0.1:3306/test_db"); //pool.setUser("root"); //pool.setPassword("root"); } public static Connection getConnection() throws SQLException { Connection con = pool.getConnection(); return con; } public static void close(ResultSet rs, Statement sta, Connection con){ try { if(rs!=null){ rs.close(); } } catch (SQLException e) { e.printStackTrace(); } try { if(sta!=null){ sta.close(); } } catch (SQLException e) { e.printStackTrace(); } try { if (con!=null){ con.close(); } } catch (SQLException e) { e.printStackTrace(); } } }
最新回复(0)