DataSource和close方法
我想问的是conn的close方法 是否调用的是重写的colse()方法
老师这个close方法是把conn放回连接池 但不是调用close的方法
我感觉怪怪的
Servlet中使用数据源
按照我最近看视频的内容 写了以下内容
来说明我认为的 colse()是调用重写后的close()方法
1.
2.
3.
请问我的理解是否正确?!~
老师这个close方法是把conn放回连接池 但不是调用close的方法
我感觉怪怪的
Servlet中使用数据源
Context context = new InitialContext();
DataSource ds = (DataSource) context.lookup("java:comp/env/jdbc/oracleds");
Connection conn = ds.getConnection();
conn.close();//是否调用的是重写的colse()方法
按照我最近看视频的内容 写了以下内容
来说明我认为的 colse()是调用重写后的close()方法
1.
//实现Connection接口中所有的方法 其中close方法将连接放回Pool中
public class MyConnection implements Connection{
private ConncetionPool pool;
public MyConnection(ConncetionPool pool){
this.pool = pool;
}
public void close() throws SQLException {
pool.realse(this);
}
2.
//在池中放五个MyConnction
public class ConncetionPool {
private MyConnection conn;
Vector<MyConnection> pool = new Vector<MyConnection>();
static
{
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
public ConncetionPool(){
for(int i=0;i<5;i++){
conn = new MyConnection(this);
pool.add(conn);
}
}
public void realse(MyConnection myConnection){
pool.add(myConnection);
}
3.
//数据源对象中放了一个 Pool
public class MyDataSource implements DataSource{
private ConncetionPool connectionPool = new ConncetionPool();
MyDataSource(){
}
public Connection getConnection() throws SQLException {
//我们得到的是Connection的实现类MyConnection
//所以 close方法调用的是MyConnection 重写后的close() 方法
MyConnection conn = connectionPool.getPool().get(0);
return conn;
}
请问我的理解是否正确?!~
...全文
相关推荐
java 自己实现DataSource实现实例
这样可以使得我们的数据源更加灵活和可控。本文介绍了 Java 中的 DataSource 实现,包括了数据源的概念、实现原理、代理模式的应用等内容。
DataSource
这个接口定义了获取和管理数据库连接的一系列方法,比如getConnection(),用来获取数据库连接,以及close()方法,用于关闭连接。
java设置Sping的dataSource的参数信息
同时,这种方法也很好地体现了面向服务的思想,使得程序更加灵活和可扩展。
spring中dataSource的配置以及配合IOC的使用
```java@Servicepublic class UserService { @Autowired private DataSource dataSource; // 使用dataSource的方法
DBCP-DataSource
了解其配置和使用方法,对于优化数据库操作和提升系统效率至关重要。同时,根据具体需求,可以结合Spring的特性实现数据源的动态管理和刷新。


