java 板


LINE

※ 引述《lueichun (no anonymous)》之銘言: : 如果現在想要在java程式連線到資料庫 : 除了使用JDBC API : 也可以設定連線池取得連線 : 我的理解是先在context.xml加入這幾行設定: : https://www.dropbox.com/s/x1t2l71imsy53qa/%E6%93%B7%E5%8F%96103.png?dl=0 : 用來設定連線到資料庫的資訊與連線池的設定 : 但是我不是很清楚在這邊設定資料庫連線資訊 : 跟用JDBC API的方式來連線差在哪裡(是因為效能的關係嗎) 根據小弟的粗淺認知,好處大概是: 1. ap server幫你管理好db connection數量、釋放資源、錯誤處理等等 2. 未來若是佈署環境有變動,例如更換ap server,只要在ap server端改設定 可以"盡量"不去動到程式碼 **暗黑效果** 3. 有些ap server的設定檔藏得很好,好到你只會想用管理介面來修改設定,比起 用properties的方式安全點 : 而且我也不是很懂連接資料庫的資訊跟連線池的設定 : 為何可以被包在同一個tag裡,一起做設定 : 因為資料庫跟連線池應該是兩個分開的部分 : 然後設定name="jdbc/xxxx"的部分,google到的說法是要設定jndi name : jndi name是可以理解成: : java程式為取得連線池的連線以連接資料庫 jndi是存取資源的一種統一介面,不僅僅只有存取資料庫連線的功能而已 只要server端提供jndi的實作,都可以透過jndi來存取,例如AD Server等 : 所以程式必須利用jndi name找到連線池 : 以取得連線嗎 你要在code裡面用jdbc硬幹也可以,只是這樣就沒了使用jndi的優點 : 這樣的話以下在web.xml裡的設定: : https://www.dropbox.com/s/u82pyuph48ye58i/%E5%9C%96%E7%89%871.png?dl=0 : 這裡又重複設定一次jndi name : 我就不懂了,不懂這裡再打一次的目的是什麼 參考你用的ap server所提供的手冊 : 最後在java程式裡面 : 產生dtasource物件並取得連線 : code長這樣: : https://dl.dropboxusercontent.com/u/63402326/%E5%9C%96%E7%89%872.png
: datasource物件之後會call getConnection取得連線 : 只是我覺得一個datasource不是表示一個資料庫嗎 DataSource是資料來源的泛稱,可以是資料庫,也可以是其他資料來源 : 資料庫內含取得連線池連線的方法(getConnection) : 感覺不太自然,畢竟資料庫跟連線池是兩個分開的東西 是說從資料庫給的api來取connection pool以後再拿到connection逆? 這樣幹的好處大概是connection取得跟釋放有connection pool幫忙管 不過最好了解一下相關設定(例如怎麼設定connection數量) : 希望有大大可以解惑(套色部分),謝謝 --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.117.0.66
※ 文章網址: https://webptt.com/m.aspx?n=bbs/java/M.1427314145.A.982.html
1F:推 lueichun: 我現在的理解是如果成是要從連線池取得連線的話 03/26 23:17
2F:→ lueichun: 首先在comtext.xml設定連線管理工具,相當於是 03/26 23:18
3F:→ lueichun: new一個連線管理工具的物件在xml檔裡,這個物件的名稱 03/26 23:20
4F:→ lueichun: 就是jdbc/xxx 之後程式要利用這個連線管理工具從連線池 03/26 23:21
5F:→ lueichun: 取得連線,因此call initialContext(),取出剛剛new的 03/26 23:23
6F:→ lueichun: 管理工具物件 然後再利用資料庫的名稱(jndi/xxx)找到資 03/26 23:25
7F:→ lueichun: 料庫 回傳datasource物件 03/26 23:29
8F:→ lueichun: 只是我在這邊就卡住了 不懂datasource物件為何可以 03/26 23:32
9F:→ lueichun: getConnection 在JDBC對應的方法叫driverManager.getCon 03/26 23:32
10F:→ lueichun: ection datasource跟driverManager不管怎麼看都不像 03/26 23:33
11F:→ lueichun: 為何會有一樣的方法 03/26 23:34
12F:推 lueichun: 自問自答一下 在JAVA程式如果要用連線池連線到資料庫 03/29 00:19
13F:→ lueichun: 的話 SUN官方有推出相對應的規格 叫做JNDI API 這份API 03/29 00:20
14F:→ lueichun: 是由各家伺服器去實作 我們只要拿來用就可連線到資料庫 03/29 00:21
15F:→ lueichun: 第一步是要設定連線到資料庫的相關資訊 就是設定 03/29 00:23
16F:→ lueichun: 連線池的內容 連線池對應到JNDI API的物件就叫做 03/29 00:26
17F:→ lueichun: dataSource物件 所以dataSource物件本身既包含資料庫連 03/29 00:28
18F:→ lueichun: 線資訊 也包含連線池的資訊 所以之後要取得連線的話 03/29 00:29
19F:→ lueichun: 就要從dataSource物件取得 所以dataSource物件之所以可 03/29 00:31
20F:→ lueichun: 以用來取得連線 就是因為其包含了連線池的資訊 03/29 00:32
21F:推 haha02: JNDI跟連線池&DataSource沒有絕對關係 你的理解有誤 03/29 03:00
22F:推 lueichun: 我修正一下想法 連線池是伺服器根據SUN的規範去實作的 03/29 15:50
23F:→ lueichun: 而連線池在SUN官方是定義成DataSource物件 所以在java程 03/29 15:51
24F:→ lueichun: 式裡面只要取得DataSource物件就等於取得連線池 而要取 03/29 15:52
25F:→ lueichun: 得這物件 就要以這物件(連線池)的名稱搭配命名服務來取 03/29 15:54
26F:→ lueichun: 得 命名服務可以用來取得連線池 也可以用來取得別的資源 03/29 15:55
27F:→ lueichun: 利用這服務取得連線池後 就可以call getConnection()了 03/29 15:55
28F:→ lueichun: 看來我前面的自問自答錯很大... 03/29 15:57







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Tech_Job站內搜尋

TOP