C3P0 연결 풀
C3P0 연결 풀 생성을 위한 도구 클래스
* 연결을 위한 표준 인터페이스:
* javax.sql.DataSource 인터페이스
* 인터페이스의 구현 클래스 객체
* ComboPooledDataSource
* 멤버에 ComboPooledDataSource 객체 생성 location
* 정적 코드 블록을 사용하여 ComboPooledDataSource에 대한 4개의 대용량 데이터 연결 정보 설정
* Connection 개체를 반환하는 정적 메서드 생성
* 리소스를 해제하는 정적 메서드 생성
1 public class C3P0Utils { 2 //成员位置创建ComboPooledDataSource对象 3 private static ComboPooledDataSource dataSource = new ComboPooledDataSource(); 4 5 //使用静态代码块给ComboPooledDataSource设置4大数据量连接信息 6 static{ 7 try { 8 dataSource.setDriverClass("com.mysql.jdbc.Driver"); 9 dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/mybase4");10 dataSource.setUser("root");11 dataSource.setPassword("root");12 } catch (Exception e) {13 throw new RuntimeException("设置连接信息失败!");14 }15 }16 17 //创建一个静态方法返回Connection对象18 public static Connection getConnection(){19 try {20 return dataSource.getConnection();21 } catch (SQLException e) {22 throw new RuntimeException("获取数据库连接信息失败!");23 }24 }25 26 //定义一个释放资源的方法27 public static void close(ResultSet rs,Statement stat,Connection conn){28 if(rs!=null){29 try {30 rs.close();31 } catch (SQLException e) {32 e.printStackTrace();33 }34 }35 if(stat !=null){36 try {37 stat.close();38 } catch (SQLException e) {39 e.printStackTrace();40 }41 }42 if(conn != null){43 try {44 conn.close();45 } catch (SQLException e) {46 e.printStackTrace();47 }48 }49 }50 }
읽기용 C3P0 도구 클래스 생성 XML 구성 파일
1 public class C3P0UtilsReadXML { 2 //成员位置创建ComboPooledDataSource对象 3 private static ComboPooledDataSource dataSource = new ComboPooledDataSource(); 4 5 //使用静态代码块给ComboPooledDataSource设置4大数据量连接信息 6 /*static{ 7 try { 8 dataSource.setDriverClass("com.mysql.jdbc.Driver"); 9 dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/mybase4");10 dataSource.setUser("root");11 dataSource.setPassword("root");12 } catch (Exception e) {13 throw new RuntimeException("设置连接信息失败!");14 }15 }*/16 17 //创建一个返回ComboPooledDataSource的方法18 public static DataSource getDataSource(){19 return dataSource;20 }21 22 //创建一个静态方法返回Connection对象23 public static Connection getConnection(){24 try {25 return dataSource.getConnection();26 } catch (SQLException e) {27 throw new RuntimeException("获取数据库连接信息失败!");28 }29 }30 31 //定义一个释放资源的方法32 public static void close(ResultSet rs,Statement stat,Connection conn){33 if(rs!=null){34 try {35 rs.close();36 } catch (SQLException e) {37 e.printStackTrace();38 }39 }40 if(stat !=null){41 try {42 stat.close();43 } catch (SQLException e) {44 e.printStackTrace();45 }46 }47 if(conn != null){48 try {49 conn.close();50 } catch (SQLException e) {51 e.printStackTrace();52 }53 }54 }55 }
DBCP 연결 풀
DBCP 연결 풀을 생성하기 위한 도구 클래스
* 연결을 위한 표준 인터페이스:
* javax.sql.DataSource 인터페이스
* 인터페이스의 구현 클래스 개체
* BasicDataSource
* getConnection 메서드 재정의
1 public class DBCPUtils { 2 //创建连接池的实现类对象 3 private static BasicDataSource dataSource = new BasicDataSource(); 4 5 //设置连接数据库的4大变量,使用BasicDataSource中的set方法设置 6 static{ 7 //设置注册的驱动信息 8 dataSource.setDriverClassName("com.mysql.jdbc.Driver"); 9 //设置Url10 dataSource.setUrl("jdbc:mysql://localhost:3306/mybase4");11 //设置用户名12 dataSource.setUsername("root");13 //设置密码14 dataSource.setPassword("root");15 //可选信息16 //dataSource.setInitialSize(100);17 //dataSource.setMaxActive(1000);18 }19 20 //创建获取数据库连接对象的方法21 public static Connection getConnection(){22 try {23 return dataSource.getConnection();24 } catch (SQLException e) {25 throw new RuntimeException("获取数据库连接对象失败");26 }27 }28 29 //定义一个释放资源的方法30 public static void close(ResultSet rs,Statement stat,Connection conn){31 if(rs!=null){32 try {33 rs.close();34 } catch (SQLException e) {35 e.printStackTrace();36 }37 }38 if(stat !=null){39 try {40 stat.close();41 } catch (SQLException e) {42 e.printStackTrace();43 }44 }45 if(conn != null){46 try {47 conn.close();48 } catch (SQLException e) {49 e.printStackTrace();50 }51 }52 }53 }
구성 파일 읽는 방법
1 /* 2 * 创建DBCP连接池工具类 3 * 使用读取配置文件的方式 4 * DBCP中有一个工厂类BasicDataSourceFactory 5 * 工厂类中有一个静态方法 6 * static DataSource createDataSource(Properties prop) 7 * 此方法返回的就是DataSource接口的实现类对象BasicDataSource 8 * 9 * 创建Propertis集合+IO技术读取配置文件10 * 把配置文件传入BasicDataSourceFactory静态方法createDataSource中11 */12 public class DBCPUtilsReadConfig {13 //创建DataSource变量14 private static DataSource dataSource;15 16 static{17 try {18 //创建Propertis集合+IO技术读取配置文件19 //使用类加载器,扫描包下的文件20 InputStream is = DBCPUtilsReadConfig.class.getClassLoader()21 .getResourceAsStream("dbcpconfig.properties");22 //创建Propertis集合23 Properties prop = new Properties();24 prop.load(is);25 //把配置文件传入BasicDataSourceFactory静态方法createDataSource中26 dataSource = BasicDataSourceFactory.createDataSource(prop);27 } catch (Exception e) {28 throw new RuntimeException("读取配置文件失败");29 }30 }31 32 //创建获取数据库连接对象的方法33 public static Connection getConnection(){34 try {35 return dataSource.getConnection();36 } catch (SQLException e) {37 throw new RuntimeException("获取数据库连接对象失败");38 }39 }40 41 //定义一个释放资源的方法42 public static void close(ResultSet rs,Statement stat,Connection conn){43 if(rs!=null){44 try {45 rs.close();46 } catch (SQLException e) {47 e.printStackTrace();48 }49 }50 if(stat !=null){51 try {52 stat.close();53 } catch (SQLException e) {54 e.printStackTrace();55 }56 }57 if(conn != null){58 try {59 conn.close();60 } catch (SQLException e) {61 e.printStackTrace();62 }63 }64 }65 }
* DBUtils 도구 클래스를 사용하여 데이터베이스 테이블을 추가, 삭제, 수정 및 확인합니다
* DBUtils 도구 클래스 기능: JDBC 개발 단순화(6단계)
*
* DBUtils에는 3개의 핵심 클래스가 있습니다.
* 1.QueryRunner: QueryRunner의 메소드를 사용하여 데이터베이스를 추가, 삭제, 수정 및 쿼리합니다
* 2.DbUtils: 리소스를 해제하는 많은 메소드를 제공합니다
* 3.ResultSetHandler 인터페이스: 쿼리 결과 집합을 처리하는 메서드 제공
*
* QueryRunner 클래스
* 생성자 메서드:
* QueryRunner() 빈 매개 변수 생성자
* 업데이트 및 쿼리 메서드 호출 시 Connection 개체를 전달해야 함
* QueryRunner(DataSource ds ) DataSource 데이터베이스 연결 풀을 사용하는 생성자 메서드
* 호출 업데이트 쿼리 메서드를 호출하면 QueryRunner는 DataSource 구현 클래스 개체에서 데이터베이스 연결 개체를 자동으로 가져오고 사용 후 자동으로 반환합니다.
* 멤버 메서드:
* 멤버 메서드 실행 추가, 삭제, 수정을 수행하는 SQL
* int update(Connection conn, String sql, Object ... params) 추가, 삭제, 수정을 수행하는 데 사용되는 SQL
* int update(String sql, Object... params) 사용되는 SQL 추가, 삭제 및 수정을 수행하려면
* 매개변수:
* 연결 conn: 데이터베이스 연결 개체
* 문자열 sql: 연결된 sql 문에서는 ? 자리 표시자를 사용할 수 있습니다.
* 개체... 매개변수: ? 자리 표시자에는 Object[]를 사용할 수 있습니다.
* 반환 값:
* int: 실행된 유효한 행 수
* 쿼리 멤버 메서드 실행
*
*
* 매개변수:
* Connection conn: 데이터베이스 연결 객체
* String sql: spliced sql 문에서 자리 표시자를 사용할 수 있습니다.
* Object... params: 자리 표시자의 실제 매개 변수는 Object[]
를 사용할 수 있습니다. * ResultSetHandler
* 반환 값:
*
위 내용은 C3P0 연결 풀에 대한 자세한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!