[問題] java程式操作連線池的問題

作者: lueichun (no anonymous)   2015-03-21 00:48:16
如果現在想要在java程式連線到資料庫
除了使用JDBC API
也可以設定連線池取得連線
我的理解是先在context.xml加入這幾行設定:
https://www.dropbox.com/s/x1t2l71imsy53qa/%E6%93%B7%E5%8F%96103.png?dl=0
用來設定連線到資料庫的資訊與連線池的設定
但是我不是很清楚在這邊設定資料庫連線資訊
跟用JDBC API的方式來連線差在哪裡(是因為效能的關係嗎)
而且我也不是很懂連接資料庫的資訊跟連線池的設定
為何可以被包在同一個tag裡,一起做設定
因為資料庫跟連線池應該是兩個分開的部分
然後設定name="jdbc/xxxx"的部分,google到的說法是要設定jndi name
jndi name是可以理解成:
java程式為取得連線池的連線以連接資料庫
所以程式必須利用jndi name找到連線池
以取得連線嗎
這樣的話以下在web.xml裡的設定:
https://www.dropbox.com/s/u82pyuph48ye58i/%E5%9C%96%E7%89%871.png?dl=0
這裡又重複設定一次jndi name
我就不懂了,不懂這裡再打一次的目的是什麼
最後在java程式裡面
產生dtasource物件並取得連線
code長這樣:
https://dl.dropboxusercontent.com/u/63402326/%E5%9C%96%E7%89%872.png
datasource物件之後會call getConnection取得連線
只是我覺得一個datasource不是表示一個資料庫嗎
資料庫內含取得連線池連線的方法(getConnection)
感覺不太自然,畢竟資料庫跟連線池是兩個分開的東西
希望有大大可以解惑(套色部分),謝謝
作者: mars90226 (火星人)   2015-03-21 00:59:00
你的套色該不會是手動打色碼?那個esc你是打不出來的...
作者: haha02 (來人!上夾棍!)   2015-03-21 01:17:00
web.xml是屬於專案的 context.xml是屬於伺服器的 後者宣告前者引用 所以兩邊都要寫 但是某些容器實作可以省略前者datasource的部分你的理解不太對 可以看一下javadoc的說明
作者: MonyemLi (life)   2015-03-21 01:23:00
各connection pool實作的datasource也叫呼叫JDBC API提供一個 pool效果的jdbc連線的資料來源JNDI--> Java Naming and Directory Interface

Links booklink

Contact Us: admin [ a t ] ucptt.com