第一次学习JDBC相关的知识,再练习代码的时候,遇见了好几次getConnection()方法,发现他们并不是一样的。
在我编写JDBC的工具类的时候,遇到了第一种类型getConnection()方法,
看其源码,getConnection()方法是DriverManager类中的一方法。
后面学习阿里巴巴的Druid数据池的时候,遇见了第二种getConnection()方法,很明显它是属于DataSource的一种方法。
查阅其源码
发现DataSource是一个接口,第二种 getConnection()方法只是其定义的一种规范方法。
两种getConnection()方法并不是一致,很容易误用。
具体的区别在于:DataSource的getConnection()方法需要我们在编写工具类的时候自己实现需要的功能。而DriverManager.getConnection是真正实现连接数据库的方法,需要传入具体的参数
具体代码如下:
//DataSource的getConnection()方法,需要我们自己实现功能
public static Connection getConnection() {
try {
//DriverManager.getConnection()是被明确定义的
connection = DriverManager.getConnection(url,username,password);
} catch (SQLException e) {
e.printStackTrace();
}
return connection;
}



