每日一得

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

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

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

          今天又碰到一個。

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

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

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

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

          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解析等的工作也沒有必要自己一步一步地用dom或者什么亂七八糟的sax自己去搞一遍,搞了半天就使為了得到其中的一個value,何苦來著???? 如果你不是為了做研究,那么,效率第一,安全第一.

          隨便說說,也許有人不同意我的觀點(diǎn),沒關(guān)系,盡管談?wù)?,哈? :)
          posted on 2007-01-04 20:58 Alex 閱讀(1954) 評論(8)  編輯  收藏 所屬分類: dataBase

          評論

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

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

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

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

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

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

          解析xml用xstream更簡單。  回復(fù)  更多評論
            

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

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

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

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


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

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

            回復(fù)  更多評論
            

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

          主站蜘蛛池模板: 新乐市| 年辖:市辖区| 宜宾县| 固原市| 察雅县| 巫山县| 佳木斯市| 咸阳市| 乌苏市| 柳河县| 新丰县| 荔波县| 门源| 玛纳斯县| 文成县| 东台市| 朝阳市| 盖州市| 兴海县| 永德县| 松滋市| 无锡市| 宣化县| 关岭| 乐山市| 图们市| 云龙县| 泗洪县| 永善县| 五台县| 安阳县| 呼和浩特市| 甘肃省| 东海县| 巴塘县| 双江| 互助| 翁牛特旗| 赣榆县| 锦州市| 文安县|