我们平时连接数据库大多是通过类似如下代码获取数据库连接:
public class DBUtil {
private static final String URL = "jdbc:mysql://127.0.0.1:3306/jdbcTest?useUnicode=true&characterEncoding=utf-8";
private static final String USER = "root";
private static final String PASSWORD = "";
private static Connection connection = null;
static {
try {
// 第一步,加载驱动,此处加载MySQL驱动,如加载Oracle驱动则输入com.jdbc.driver.OracalDriver
Class.forName("com.mysql.jdbc.Driver");
// 第二步,获得数据库连接,请注意这里获得的连接对象类型是java.sql.Connection
connection = DriverManager.getConnection(URL, USER, PASSWORD);
} catch (SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
//获取数据库连接对象的静态方法
public static Connection getConnection(){
if(connection != null){
System.out.println("获得数据库连接!");
return connection;
}
System.out.println("连接失败!");
return null;
}
}
习惯了以硬编码的形式在程序中建立数据库连接,处理完成后就在finally语句块或自定义的关闭连接的方法中调用相关对象的
close方法。对于重视数据库连接数的应用(高并发Web应用)来说,这样做会耗费大量的时间和数据库资源,硬编码的形式也不甚
灵活。从逻辑上考虑,数据库连接的维护理应是独立于程序,以达到解耦的目的。
在Tomcat这个JavaWeb容器(也是Servlet容器)下通过配置DataSource(数据源)对象可以解决上面所述的问题。JDBC
中的javax.sql.DataSource接口负责建立于数据库的连接,程序中直接从数据源中获取数据库连接。DataSource对象由Servlet容器
进行管