通过 BasicDataSource 类直接创建数据源对象
在Eclipse中创建一个名称为chapter10的Web项目,在项目chapter10中导入mysql-connector-java-5.0.8-bin.jar、commons-dbcp-1.4.jar 以及 commons-pool-1.6.jar 3个JAR包,并发布到类路径下
然后在项目的src目录下创建包blue.example,并在该包下创建一个Example01类,该类采用手动方式获取数据库的连接信息和数据源的初始化信息
package blue.example;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.SQLException;
import javax.sql.DataSource;
import org.apache.commons.dbcp.BasicDataSource;
public class Example01 {
public static DataSource ds= null;
static {
//获得DBCP数据源实现类对象
BasicDataSource bds = new BasicDataSource();
//设置连接数据库需要的配置信息
bds.setDriverClassName("com.mysql.jdbc.Driver");
bds.setUrl("jdbc:mysql://localhost:3306/jdbc");
bds.setUsername("root");
bds.setPassword("123456");
//设置参数池的参数
bds.setInitialSize(5);
bds.setMaxActive(5);
ds = bds;
}
public static void main(String[] args) throws SQLException{
//获取数据库连接对象
Connection conn = ds.getConnection();
//获取数据库连接信息
DatabaseMetaData metaData = conn.getMetaData();
//打印数据库连接信息
System.out.println(metaData.getURL()
+",UserName=" + metaData.getUserName()
+","+metaData.getDriverName());
}
}
运行main()方法后,程序的运行结果如图
通过读取配置文件创建数据源对象
除了使用BasicDataSource 直接创建数据源对象外,还可以使用BasicDataSourceFactory工厂类读取配置文件,创建数据源对象,然后获取数据库连接对象。
(1)在chapter10项目的src目录下创建dbcpconfig.properties文件,该文件用于设置数据库的连接信息和数据源的初始化信息
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/jdbc
username=root
password=123456
initialSize=5
maxActive=10
maxIdle=10
(2)在blue.example包下创建一个Example02类,该类中采用了从配置文件中获取数据库的连接信息和数据源的初始化信息的方式
package blue.example;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.SQLException;
import java.util.Properties;
import javax.sql.DataSource;
import org.apache.commons.dbcp.BasicDataSourceFactory;
public class Example02 {
public static DataSource ds= null;
static {
Properties prop = new Properties();
try {
InputStream in = new Example02().getClass().getClassLoader().getResourceAsStream("dbcpconfig.properties");
prop.load(in);
ds = BasicDataSourceFactory.createDataSource(prop);
} catch (Exception e) {
throw new ExceptionInInitializerError(e);
}
}
public static void main(String[] args) throws SQLException{
Connection conn = ds.getConnection();
DatabaseMetaData metaData = conn.getMetaData();
System.out.println(metaData.getURL()
+",UserName=" + metaData.getUserName()
+","+metaData.getDriverName());
}
}
运行main()方法后,程序的运行结果如图
通过 ComboPooledDataSource()构造方法创建数据源对象
(1)在项目chapter10中导入JAR包c3p0-0.9.1.2.jar,然后在cn.itcast.chapter10.example
包下创建一个Example03类,该类采用C3PO数据源手动代码的方式获取Connection对象
package blue.example;
import java.sql.SQLException;
import javax.sql.DataSource;
import com.mchange.v2.c3p0.ComboPooledDataSource;
public class Example03 {
public static DataSource ds= null;
static {
ComboPooledDataSource cpds = new ComboPooledDataSource();
try {
cpds.setDriverClass("com.mysql.jdbc.Driver");
cpds.setJdbcUrl("jdbc:mysql://localhost:3306/jdbc");
cpds.setUser("root");
cpds.setPassword("123456"