目录
1、首先在tomcat的conf/context.xml中配置如下信息:
2、在项目的web.xml中配置如下信息,就可以在当前应用中使用:
(2)通过BasicDataSourceFactory(配置文件方式):
一、Tomcat-DBCP
1、首先在tomcat的conf/context.xml中配置如下信息:
tomcat7.0版本:
<Resource name="myDBCP"
auth="Container"
type="javax.sql.DataSource"
username="root"
password="admin"
url="jdbc:mysql://localhost:3306/hospital"
maxActive="8"
maxIdle="4"
maxWait="5000"
driverClassName="com.mysql.jdbc.Driver"/>
tomcat8.0、9.0版本:
将其中的maxActive替换为maxTotal="8" ,maxWait 替换为maxWaitMillis
注意:要在tomcat的lib下放数据库驱动jar包
2、在项目的web.xml中配置如下信息,就可以在当前应用中使用:
<resource-ref>
<res-ref-name> myDBCP </res-ref-name>
<res-type> javax.sql.DataSource </res-type>
<res-auth> Container </res-auth>
</resource-ref>
3、使用:
InitialContext ic = new InitialContext();
DataSource ds = (DataSource) ic.lookup("java:comp/env/myDBCP");
Connection conn = ds.getConnection();
注:以下都是通过DataSource对象获取数据库连接,只写到获取该对象为止。
二、Apache-DBCP(DBCP)
1、添加jar包
commons-dbcp-1.4.jar
commons-pool-1.4.jar
2、获取DataSoure对象的两种方式(硬编码方式):
(1)通过BasicDataSource
public static DataSource getBasicDataSource (){
BasicDataSource bdcp = new BasicDataSource();
bdcp.setDriverClassName("com.mysql.jdbc.Driver");
bdcp.setUsername("root");
bdcp.setPassword("admin");
bdcp.setUrl("jdbc:mysql://localhost:3306/hospital");
bdcp.setInitialSize(10);
bdcp.setMaxIdle(10);
bdcp.setMaxActive(10);
bdcp.setMaxWait(30);
return bdcp;
}
(2)通过BasicDataSourceFactory(配置文件方式):
a.首先新建一个dbcpconfig.properties文件:
driverClassName = com.mysql.jdbc.Driver
username = root
password = admin
url = jdbc:mysql://localhost:3306/hospital
initialSize = 10
maxIdle = 10
maxActive = 10
maxWait = 30
b.再创建DataSource对象:
public static DataSource getBasicDataSourceFactory (){
DataSource ds = null;
Properties prop = new Properties();
InputStream input = new testDBCP().getClass().getClassLoader().getResourceAsStream("dbpcconfig.properties");
try {
prop.load(input);
ds = BasicDataSourceFactory.createDataSource(prop);
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return ds;
}
三、C3P0
1、添加jar包:
c3p0-0.9.5.2.jar
mchange-commons-java-0.2.11.jar
2、获取DataSource的两种方式:
(1)硬编码方式
public static DataSource getDataSource(){
ComboPooledDataSource c3po = new ComboPooledDataSource();
try {
c3po.setDriverClass("com.mysql.jdbc.Driver");
c3po.setJdbcUrl("jdbc:mysql://localhost:3306/hospital");
c3po.setUser("root");
c3po.setPassword("admin");
c3po.setInitialPoolSize(20);
c3po.setMaxIdleTime(10);
c3po.setMaxPoolSize(10);
}catch (PropertyVetoException e){
e.printStackTrace();
}
return c3po;
}
(2)配置文件方式
a.先创建c3p0-config.xml(文件名必须为这个)文件:
<?xml version="1.0" encoding="utf-8" ?>
<c3p0-config>
<default-config>
<!--写一些默认的参数设置-->
<property name="user">root</property>
<property name="password">admin</property>
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="checkoutTimeout">30000</property>
</default-config>
<named-config name="myConfig">
<!--自定义一些参数设置,先扫描自定义的,如果没有,就会取默认值,并且可以设置多个-->
<property name="jdbcUrl">jdbc:mysql://localhost:3306/hospital</property>
</named-config>
</c3p0-config>
b.获取DataSource对象
public static DataSource getDataSource(){
return new ComboPooledDataSource("myConfig");//这里的参数为配置文件中自定义name属性的值
}