데이터 베이스 MySQL 튜토리얼 c3p0开源数据库连接池(DataSource)

c3p0开源数据库连接池(DataSource)

Jun 07, 2016 pm 04:01 PM
datasource 오픈 소스 데이터 베이스 지금 연결하다

现在很多WEB服务器(Weblogic, WebSphere, Tomcat)都提供了DataSoruce的实现,即连接池的实现。通常我们把DataSource的实现,按其英文含义称之为数据源,数据源中都包含了数据库连接池的实现。 也有一些开源组织提供了数据源的独立实现: ①DBCP 数据库连接池

现在很多WEB服务器(Weblogic, WebSphere, Tomcat)都提供了DataSoruce的实现,即连接池的实现。通常我们把DataSource的实现,按其英文含义称之为数据源,数据源中都包含了数据库连接池的实现。
也有一些开源组织提供了数据源的独立实现:
①DBCP 数据库连接池
②C3P0 数据库连接池(使用最简单方便)
③Apache Tomcat内置的连接池(apache dbcp)

实际应用时不需要编写连接数据库代码,直接从数据源获得数据库的连接。程序员编程时也应尽量使用这些数据源的实现,以提升程序的数据库访问性能。

使用时,需要新建java工程,在工程中建立“lib”目录,其中添加c3p0-0.9.1.2.jar和mysql-connector-java-5.0.8-bin.jar(mysql驱动)包,并add to build path。

第一种方法:不使用xml配置文件。

/**
 * 演示c3p0的使用方法
 * @project_name Day11   
 * @class_name C3P0Demo   
 * @author Dovinya
 * @data 2014-8-27 下午07:57:42   
 * @version 1
 * @notes
 */
public class C3P0Demo {
	
	@Test
	public void operateDatabase() {
		Connection conn =null;
		PreparedStatement ps = null;
		ResultSet rs = null;
		try {
//			Class.forName("com.mysql.jdbc.Driver");
//			conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/day11", "root", "123");
//			ps = conn.prepareStatement("select * from account");
			ComboPooledDataSource dataSource = new ComboPooledDataSource();
			
			
			dataSource.setDriverClass("com.mysql.jdbc.Driver");
			dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/day11");
			dataSource.setUser("root");
			dataSource.setPassword("123");
			
			
			conn = dataSource.getConnection();
			ps = conn.prepareStatement("select * from account");
			rs = ps.executeQuery();
			
			while(rs.next()){
				String name = rs.getString("name");
				System.out.println(name);
			}
			
		} catch (Exception e) {
			e.printStackTrace();
		}finally{
			if(rs!=null){
				try {
					rs.close();
				} catch (SQLException e) {
					
					e.printStackTrace();
				}finally{
					rs=null;
				}
			}
			
			if(ps!=null){
				try {
					ps.close();
				} catch (SQLException e) {
					
					e.printStackTrace();
				}finally{
					ps=null;
				}
			}
			
			if(conn!=null){
				try {
					conn.close();
				} catch (SQLException e) {
					
					e.printStackTrace();
				}finally{
					conn=null;
				}
			}			
		
		}
	}
	
}
로그인 후 복사
第二种方法:使用xml配置文件,这种方法更常见和普遍。

先新建xml文件,命名为c3p0-config.xml,在其中添加如下代码:

<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
	<default-config>
		<property name="driverClass">com.mysql.jdbc.Driver</property>
		<property name="jdbcUrl">jdbc:mysql:///day11</property>
		<property name="user">root</property>
		<property name="password">123</property>

		<property name="acquireIncrement">3</property>  <!--当连接池中已经没有连接时,连接池自动获取连接时一次获取的连接个数-->
		<property name="initialPoolSize">10</property>  <!--初始化连接池时,获取的连接个数-->
		<property name="minPoolSize">2</property>       <!--连接池应该保有的最小连接的数量--> 
		<property name="maxPoolSize">10</property>      <!--连接池中可以保有的最大连接数量-->
	</default-config>
</c3p0-config>
로그인 후 복사
然后,新建java文件,在其中添加如下代码:
import com.mchange.v2.c3p0.ComboPooledDataSource;
/**
 * 演示c3p0的使用方法
 * @project_name Day11   
 * @class_name C3P0Demo   
 * @author Dovinya
 * @data 2014-8-27 下午07:57:42   
 * @version 1
 * @notes
 */
public class C3P0Demo {
	
	@Test
	public void operateDatabase() {
		Connection conn =null;
		PreparedStatement ps = null;
		ResultSet rs = null;
		try {

			ComboPooledDataSource dataSource = new ComboPooledDataSource();
			
			conn = dataSource.getConnection();
			ps = conn.prepareStatement("select * from account");
			rs = ps.executeQuery();
			
			while(rs.next()){
				String name = rs.getString("name");
				System.out.println(name);
			}
			
		} catch (Exception e) {
			e.printStackTrace();
		}finally{
			if(rs!=null){
				try {
					rs.close();
				} catch (SQLException e) {
					
					e.printStackTrace();
				}finally{
					rs=null;
				}
			}
			
			if(ps!=null){
				try {
					ps.close();
				} catch (SQLException e) {
					
					e.printStackTrace();
				}finally{
					ps=null;
				}
			}
			
			if(conn!=null){
				try {
					conn.close();
				} catch (SQLException e) {
					
					e.printStackTrace();
				}finally{
					conn=null;
				}
			}			
		
		}
	}
	
}
로그인 후 복사
开发时常用。
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. 크로스 플레이가 있습니까?
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

단일 카드는 듀얼 카드보다 Llama를 70B 더 빠르게 실행합니다. Microsoft는 A100에 FP6을 넣었습니다 | 단일 카드는 듀얼 카드보다 Llama를 70B 더 빠르게 실행합니다. Microsoft는 A100에 FP6을 넣었습니다 | Apr 29, 2024 pm 04:55 PM

FP8 이하의 부동 소수점 수량화 정밀도는 더 이상 H100의 "특허"가 아닙니다! Lao Huang은 모든 사람이 INT8/INT4를 사용하기를 원했고 Microsoft DeepSpeed ​​팀은 NVIDIA의 공식 지원 없이 A100에서 FP6을 실행하기 시작했습니다. 테스트 결과에 따르면 A100에 대한 새로운 방법 TC-FPx의 FP6 양자화는 INT4에 가깝거나 때로는 더 빠르며 후자보다 정확도가 더 높은 것으로 나타났습니다. 또한 오픈 소스로 제공되고 DeepSpeed와 같은 딥 러닝 추론 프레임워크에 통합된 엔드투엔드 대규모 모델 지원도 있습니다. 이 결과는 대형 모델 가속화에도 즉각적인 영향을 미칩니다. 이 프레임워크에서는 단일 카드를 사용하여 Llama를 실행하면 처리량이 듀얼 카드보다 2.65배 더 높습니다. 하나

국내 오픈소스 MoE 지표 폭발: GPT-4 수준 기능, API 가격은 1%에 불과 국내 오픈소스 MoE 지표 폭발: GPT-4 수준 기능, API 가격은 1%에 불과 May 07, 2024 pm 05:34 PM

국내 최신 대형 오픈소스 MoE 모델은 출시 직후 인기를 끌었다. DeepSeek-V2의 성능은 GPT-4 수준에 도달하지만 오픈 소스이며 상업용으로 무료이며 API 가격은 GPT-4-Turbo의 1%에 불과합니다. 그래서 공개되자마자 많은 논란이 일었습니다. 공개된 성능 지표에 따르면 DeepSeekV2의 포괄적인 중국어 기능은 많은 오픈 소스 모델을 능가하는 동시에 GPT-4Turbo 및 Wenkuai 4.0과 같은 폐쇄 소스 모델도 첫 번째 단계에 있습니다. 종합적인 영어 능력 역시 LLaMA3-70B와 동일한 1계급에 속하며, 역시 MoE인 Mixtral8x22B를 능가합니다. 또한 지식, 수학, 추론, 프로그래밍 등에서도 좋은 성적을 보여줍니다. 그리고 128K 컨텍스트를 지원합니다. 이것을 상상해 보세요

Hibernate는 어떻게 다형성 매핑을 구현합니까? Hibernate는 어떻게 다형성 매핑을 구현합니까? Apr 17, 2024 pm 12:09 PM

Hibernate 다형성 매핑은 상속된 클래스를 데이터베이스에 매핑할 수 있으며 다음 매핑 유형을 제공합니다. Join-subclass: 상위 클래스의 모든 열을 포함하여 하위 클래스에 대한 별도의 테이블을 생성합니다. 클래스별 테이블: 하위 클래스별 열만 포함하는 하위 클래스에 대한 별도의 테이블을 만듭니다. Union-subclass: Joined-subclass와 유사하지만 상위 클래스 테이블이 모든 하위 클래스 열을 통합합니다.

여러 .NET 오픈 소스 AI 및 LLM 관련 프로젝트 프레임워크 공유 여러 .NET 오픈 소스 AI 및 LLM 관련 프로젝트 프레임워크 공유 May 06, 2024 pm 04:43 PM

오늘날 인공지능(AI) 기술 개발은 본격화되고 있으며, 다양한 분야에서 큰 잠재력과 영향력을 보여주고 있습니다. 오늘 Dayao는 여러분에게 몇 가지 참고 자료를 제공하고자 4개의 .NET 오픈 소스 AI 모델 LLM 관련 프로젝트 프레임워크를 공유할 것입니다. https://github.com/YSGStudyHards/DotNetGuide/blob/main/docs/DotNet/DotNetProjectPicks.mdSemanticKernelSemanticKernel은 OpenAI, Azure와 같은 대규모 언어 모델(LLM)을 통합하도록 설계된 오픈 소스 소프트웨어 개발 키트(SDK)입니다.

iOS 18에는 손실되거나 손상된 사진을 검색할 수 있는 새로운 '복구된' 앨범 기능이 추가되었습니다. iOS 18에는 손실되거나 손상된 사진을 검색할 수 있는 새로운 '복구된' 앨범 기능이 추가되었습니다. Jul 18, 2024 am 05:48 AM

Apple의 최신 iOS18, iPadOS18 및 macOS Sequoia 시스템 릴리스에는 사진 애플리케이션에 중요한 기능이 추가되었습니다. 이 기능은 사용자가 다양한 이유로 손실되거나 손상된 사진과 비디오를 쉽게 복구할 수 있도록 설계되었습니다. 새로운 기능에는 사진 앱의 도구 섹션에 '복구됨'이라는 앨범이 도입되었습니다. 이 앨범은 사용자가 기기에 사진 라이브러리에 포함되지 않은 사진이나 비디오를 가지고 있을 때 자동으로 나타납니다. "복구된" 앨범의 출현은 데이터베이스 손상으로 인해 손실된 사진과 비디오, 사진 라이브러리에 올바르게 저장되지 않은 카메라 응용 프로그램 또는 사진 라이브러리를 관리하는 타사 응용 프로그램에 대한 솔루션을 제공합니다. 사용자는 몇 가지 간단한 단계만 거치면 됩니다.

PHP에서 MySQLi를 사용하여 데이터베이스 연결을 설정하는 방법에 대한 자세한 튜토리얼 PHP에서 MySQLi를 사용하여 데이터베이스 연결을 설정하는 방법에 대한 자세한 튜토리얼 Jun 04, 2024 pm 01:42 PM

MySQLi를 사용하여 PHP에서 데이터베이스 연결을 설정하는 방법: MySQLi 확장 포함(require_once) 연결 함수 생성(functionconnect_to_db) 연결 함수 호출($conn=connect_to_db()) 쿼리 실행($result=$conn->query()) 닫기 연결( $conn->close())

PHP에서 데이터베이스 연결 오류를 처리하는 방법 PHP에서 데이터베이스 연결 오류를 처리하는 방법 Jun 05, 2024 pm 02:16 PM

PHP에서 데이터베이스 연결 오류를 처리하려면 다음 단계를 사용할 수 있습니다. mysqli_connect_errno()를 사용하여 오류 코드를 얻습니다. 오류 메시지를 얻으려면 mysqli_connect_error()를 사용하십시오. 이러한 오류 메시지를 캡처하고 기록하면 데이터베이스 연결 문제를 쉽게 식별하고 해결할 수 있어 애플리케이션이 원활하게 실행될 수 있습니다.

북경대학교의 가장 강력한 오픈소스 aiXcoder-7B 코드 모델! 실제 개발 시나리오에 중점을 두고 기업 프라이빗 배포를 위해 특별히 설계되었습니다. 북경대학교의 가장 강력한 오픈소스 aiXcoder-7B 코드 모델! 실제 개발 시나리오에 중점을 두고 기업 프라이빗 배포를 위해 특별히 설계되었습니다. Apr 09, 2024 pm 06:10 PM

기술계의 최신 발전으로 볼 때 최근 AI 코드 생성 개념이 대중화되었습니다. 그러나 친구 여러분, AI 프로그래밍 질문이 더 눈길을 끌지만 실제 기업 개발 시나리오에서는 항상 그것만으로는 충분하지 않다고 생각하시나요? 이때, 낮은 수준의 시니어 플레이어인 aiXcoder가 조치를 취하고 큰 움직임을 발표했습니다. 이는 새로운 오픈 소스 코드 모델인 aiXcoder-7BBase 버전으로, 특히 엔터프라이즈 소프트웨어 개발 시나리오에 배포하기에 적합한 코드 모델입니다. 잠깐, '단지' 70억 개의 매개변수를 가진 대규모 코드 모델은 어떤 종류의 AI 프로그래밍 수준을 보여줄 수 있을까? 먼저 HumanEval, MBPP 및 MultiPL-E의 세 가지 주요 평가 세트에 대한 성능을 살펴보겠습니다. 평균 점수는 실제로 340억 개의 매개변수를 가진 Co의 평균 점수를 초과합니다.

See all articles