day18 15.自定义连接池
我們寫的是連接池嗎?Connection對象絕對不能關。現(xiàn)在寫的玩意不是連接池。因為現(xiàn)在講的是JDBC,連接池也是JDBC里面的,人家那是SUN公司定義的標準。標準,你那不是標準。既然是標準,你做連接池得符合人標準。DataSource才是數(shù)據(jù)源/連接池。你要做一連接池必須實現(xiàn)這接口,所有的連接池必須實現(xiàn)這個接口。
DataSource是子接口,子接口有父接口嘛。父接口里面的方法也需要重寫。
實現(xiàn)了DataSource接口之后我這個就是標準的連接池了。代碼要耦合度降低,不要依賴于任何東西,要符合標準。JDBC標準里面Connection對象用完就要close,close()方法不再希望銷毀Connection對象,而是把它放回到連接池。原來的close()方法是銷毀,現(xiàn)在的close()方法也是銷毀,但是我們希望它不是銷毀,而是放回到連接池。是指放回到開源的連接池,不是我自己寫的連接池,因為你自己寫的連接池根本就沒做這事。你自己寫的連接池根本沒實現(xiàn)這個功能。
繼承是絕對不靠譜的,close()方法是Connection接口里面的。你不知道具體實現(xiàn)類,你要知道具體實現(xiàn)類也行。但是你要是使用具體實現(xiàn)類,那就要用到驅動程序里面的包了。用到驅動包里面的類又是緊密耦合了。繼承也是能做增強的。
裝飾模式。
連接池就是一個集合,里面裝了幾個Connection,用的時候就從里面取一個,取完之后就放回去,這就是最基本的連接池。什么是連接池?實現(xiàn)了DataSource接口。DataSource里面有個getConnection()方法獲得連接,那怎么放回去呢?Connection自己的close()方法的行為已經(jīng)改變了,連接池已經(jīng)把那個方法的行為改變了,你一調用close()方法就放回去了。
?
轉載于:https://www.cnblogs.com/ZHONGZHENHUA/p/6686498.html
總結
以上是生活随笔為你收集整理的day18 15.自定义连接池的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: hiho1062
- 下一篇: JAVA中的变量和常量