每日一得

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

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            220 隨筆 :: 9 文章 :: 421 評論 :: 0 Trackbacks
          key words: 連接池 數據庫

          發現一個有意思的現象,好多人在開發過程中不知道是出于訓練自己編碼還是為了重新發明輪子,總之明明已經存在的功能他非要自己實現一遍。

          今天又碰到一個。

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

          不要浪費,不要自己發明輪子,你不是最牛的,一定還有比你更牛的!

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

          附: jndi連接數據庫

          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,何苦來著???? 如果你不是為了做研究,那么,效率第一,安全第一.

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

          評論

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

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

          # re: 不要浪費資源 : 數據庫連接池 2007-01-05 08:44 ncindy
          用common-dbcp比用JNDI更簡單。

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

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

          TOMCAT內置的數據庫連接池就是用的common-dbcp。

          解析xml用xstream更簡單。  回復  更多評論
            

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

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

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

          # re: 不要浪費資源 : 數據庫連接池 2007-01-05 16:05 Alex
          以我個人經驗來看,使用例如common-dbcp,c3p0,以及proxool,碰到的問題比較多,好多還不夠穩定,但是容器中的實現一般比較穩定,這一點應該被認可。


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

          另外,以我目前看到的情況,對于比較大一點的項目,肯定是用商業app server的,一般都盡量用容器自帶的特性,包括數據源,沒別的,有保障。

            回復  更多評論
            

          # re: 不要浪費資源 : 數據庫連接池 2007-01-05 17:24 ncindy
          項目和產品是不同di,也許你做項目真是不需要考慮移植,但是做產品肯定要考慮,呵呵。
          而且有些客戶也會強調移植性,因為他們不喜歡被一個供應商綁死。  回復  更多評論
            

          主站蜘蛛池模板: 盐城市| 伊川县| 山西省| 满洲里市| 浮梁县| 内丘县| 错那县| 临沭县| 天柱县| 迁西县| 磐石市| 白城市| 常山县| 新密市| 南部县| 蓝山县| 沙洋县| 华坪县| 布拖县| 静宁县| 饶阳县| 和静县| 荥经县| 长葛市| 沈阳市| 海原县| 饶阳县| 贵定县| 鄂伦春自治旗| 泽州县| 平塘县| 涟水县| 开江县| 深州市| 合山市| 彰化县| 宜阳县| 井研县| 延长县| 山西省| 襄垣县|