每日一得

          不求多得,只求一得 about java,hibernate,spring,design,database,Ror,ruby,快速開發(fā)
          最近關(guān)心的內(nèi)容:SSH,seam,flex,敏捷,TDD
          本站的官方站點(diǎn)是:顛覆軟件

            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            220 隨筆 :: 9 文章 :: 421 評(píng)論 :: 0 Trackbacks
          key words: 連接池 數(shù)據(jù)庫(kù)

          發(fā)現(xiàn)一個(gè)有意思的現(xiàn)象,好多人在開發(fā)過(guò)程中不知道是出于訓(xùn)練自己編碼還是為了重新發(fā)明輪子,總之明明已經(jīng)存在的功能他非要自己實(shí)現(xiàn)一遍。

          今天又碰到一個(gè)。

          jdbc的連接,好多人也喜歡自己實(shí)現(xiàn)一個(gè)連接池,但是對(duì)于app server來(lái)說(shuō)本身一般都有支持連接池的,為什么不用呢?
          寫了一通又長(zhǎng)又臭的代碼,自己以為牛B的很,其實(shí)算個(gè)球啊。

          不要浪費(fèi),不要自己發(fā)明輪子,你不是最牛的,一定還有比你更牛的!

          對(duì)于weblogic或者oracle以及ibm的產(chǎn)品來(lái)說(shuō),大家還是比較習(xí)慣于用容器的jndi,但是即使對(duì)于tomcat,我個(gè)人也建議用tomcat自帶的。

          附: jndi連接數(shù)據(jù)庫(kù)

          public?final?static?synchronized?Connection?getConnection(String?inputJNDI)?throws
          ??????DBMException?
          {
          ????Connection?conn?
          =?null;
          ????String?strConnJNDI?
          =?null;
          ????
          try?{
          ??????Context?ctx?
          =?new?InitialContext();
          ??????_log.debug(ctx);

          ??????
          if?(null?!=?inputJNDI)?{
          ????????
          if(inputJNDI.length()?>?0)
          ??????????strConnJNDI?
          =?inputJNDI;
          ????????
          else
          ??????????strConnJNDI?
          =?dbJndiName;
          ??????}

          ??????
          else?{
          ????????strConnJNDI?
          =?dbJndiName;
          ??????}

          ??????DataSource?ds?
          =?(DataSource)?ctx.lookup(strConnJNDI);
          ??????_log.debug(ds);
          ??????conn?
          =?ds.getConnection();
          ????}

          ????
          catch?(Exception?ex)?{
          ??????_log.error(
          "It's?error?to?get?connection",?ex);
          ??????
          throw?new?DBMException("Error?to?get?connection");
          ????}

          ????_log.debug(conn);
          ????
          return?conn;
          ??}


          以此類推,類似于xml解析等的工作也沒(méi)有必要自己一步一步地用dom或者什么亂七八糟的sax自己去搞一遍,搞了半天就使為了得到其中的一個(gè)value,何苦來(lái)著???? 如果你不是為了做研究,那么,效率第一,安全第一.

          隨便說(shuō)說(shuō),也許有人不同意我的觀點(diǎn),沒(méi)關(guān)系,盡管談?wù)劊? :)
          posted on 2007-01-04 20:58 Alex 閱讀(1958) 評(píng)論(8)  編輯  收藏 所屬分類: dataBase

          評(píng)論

          # re: 不要浪費(fèi)資源 : 數(shù)據(jù)庫(kù)連接池 2007-01-04 22:19 jrobot[匿名]
          解析xml不用jdom有什么呢?
          偶新手不知道有什么更簡(jiǎn)單的方法,拿讀取和保存一個(gè)軟件的xml格式的配置文件來(lái)說(shuō)  回復(fù)  更多評(píng)論
            

          # re: 不要浪費(fèi)資源 : 數(shù)據(jù)庫(kù)連接池 2007-01-04 23:01 羅明
          摟主是不是說(shuō)搞個(gè)properties file就可以了?  回復(fù)  更多評(píng)論
            

          # re: 不要浪費(fèi)資源 : 數(shù)據(jù)庫(kù)連接池 2007-01-05 08:44 ncindy
          用common-dbcp比用JNDI更簡(jiǎn)單。

          而且,這年頭誰(shuí)還自己寫連接代碼啊。直接用Hibernate唄。要不就用spring來(lái)組裝,用spring的JdbcTemplate來(lái)操作。事務(wù)啥的也都聲明在外面交給Spring了。  回復(fù)  更多評(píng)論
            

          # re: 不要浪費(fèi)資源 : 數(shù)據(jù)庫(kù)連接池 2007-01-05 11:07 Ivan Chen
          JNDI只是一種資源定位方式。

          TOMCAT內(nèi)置的數(shù)據(jù)庫(kù)連接池就是用的common-dbcp。

          解析xml用xstream更簡(jiǎn)單。  回復(fù)  更多評(píng)論
            

          # re: 不要浪費(fèi)資源 : 數(shù)據(jù)庫(kù)連接池 2007-01-05 12:38 errorfun
          以此類推,類似于xml解析等的工作也沒(méi)有必要自己一步一步地用dom或者什么亂七八糟的sax自己去搞一遍,搞了半天就使為了得到其中的一個(gè)value,何苦來(lái)著?

          ===========================
          確實(shí)不明白樓主說(shuō):不用DOM解析XML得到VALUE。這句話的高深函義,每每在項(xiàng)目中有需要解析XML的地方我都是用了DOM4J來(lái)解析。確實(shí)不知道有什么更好的辦法得到我想要的VALUE,還望樓主告知一二。  回復(fù)  更多評(píng)論
            

          # re: 不要浪費(fèi)資源 : 數(shù)據(jù)庫(kù)連接池 2007-01-05 13:05 某某
          用容器的連接池,不太好吧,這樣耦合度太高了吧
          用proxool吧  回復(fù)  更多評(píng)論
            

          # re: 不要浪費(fèi)資源 : 數(shù)據(jù)庫(kù)連接池 2007-01-05 16:05 Alex
          以我個(gè)人經(jīng)驗(yàn)來(lái)看,使用例如common-dbcp,c3p0,以及proxool,碰到的問(wèn)題比較多,好多還不夠穩(wěn)定,但是容器中的實(shí)現(xiàn)一般比較穩(wěn)定,這一點(diǎn)應(yīng)該被認(rèn)可。


          至于耦合度,其實(shí)現(xiàn)在來(lái)看也是扯淡,就好像java的一次編譯到處運(yùn)行,就是就是個(gè)鳥,你的項(xiàng)目一旦啟動(dòng),好多東西都是定了的,有什么需要解耦或者移植的問(wèn)題。

          另外,以我目前看到的情況,對(duì)于比較大一點(diǎn)的項(xiàng)目,肯定是用商業(yè)app server的,一般都盡量用容器自帶的特性,包括數(shù)據(jù)源,沒(méi)別的,有保障。

            回復(fù)  更多評(píng)論
            

          # re: 不要浪費(fèi)資源 : 數(shù)據(jù)庫(kù)連接池 2007-01-05 17:24 ncindy
          項(xiàng)目和產(chǎn)品是不同di,也許你做項(xiàng)目真是不需要考慮移植,但是做產(chǎn)品肯定要考慮,呵呵。
          而且有些客戶也會(huì)強(qiáng)調(diào)移植性,因?yàn)樗麄儾幌矚g被一個(gè)供應(yīng)商綁死。  回復(fù)  更多評(píng)論
            

          主站蜘蛛池模板: 垦利县| 闸北区| 左贡县| 府谷县| 兖州市| 余江县| 双柏县| 儋州市| 交口县| 常宁市| 怀集县| 安康市| 洪洞县| 仙居县| 绥阳县| 邮箱| 阜平县| 中牟县| 金平| 云梦县| 钦州市| 阳东县| 修武县| 定陶县| 锡林浩特市| 蒙城县| 通辽市| 高碑店市| 万载县| 宿迁市| 阿鲁科尔沁旗| 无棣县| 汉川市| 讷河市| 丘北县| 朝阳市| 永平县| 南通市| 南召县| 贵定县| 静乐县|