日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

纯JDBC系统的开发随想

發布時間:2023/12/4 windows 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 纯JDBC系统的开发随想 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
純JDBC系統的開發隨想 前兩天,兩個個純后臺應用項目在沒有充分論證的情況下使用了Spring+iBatis實現,從需求到實現、測試歷經兩天時間,實際代碼開發時間是8小時,時間比較短,因為有以前的代碼積累。再加上對框架熟爛于心,就像聊天一般的把系統實現了。 今天,迫于壓力,需要推翻重做,只允許用JDBC,包括日志工具包,其他的一概不讓使用。我也挺郁悶的,剛做好測完了,又要推翻重來-----沉住氣,硬是花了6個小時時間把這兩個項目的后臺代碼全用JDBC實現了,不是說寫JDBC代碼快,而是因為給予對需求和數據庫有了透徹理解的基礎上。 寫這些不是想發什么牢騷,而是對JDBC有了一些思考。如果現在誰要說自己系統用JDBC所寫,很容易讓人瞧不起,感覺很低級。因為JDBC太基礎,用的好與用不好有著天壤之別。就像一把利劍,是否對你有利要看你握著劍柄還是劍刃。 著這里,我不是因為項目用了JDBC費勁而批判什么,而是要為JDBC正個身,把自己開發JDBC系統的體驗與大家分享,JDBC好與不好全看你怎么用了。 本人看過無數的JDBC代碼,很多系統,有初學者的,有老手的。但沒看過很優雅分層的JDBC系統。很多代碼都是面向過程式的往下堆,看著到處的try。。。catch,操作結果集代碼,早已把業務邏輯淹沒了,這可以說是一般JDBC系統的通病。 JDBC是在開發者很郁悶,代碼不好寫,不好維護,不好分層,那用它干啥啊,大多數開發者一般會首先考慮一個問題,自己實現一個系統,怎么做代價更小的問題。因此JDBC在第一輪的權衡下就被Out了。 對此問題進一步分析,看看能不能找到更好的解決方式。 JDBC代碼為什么不好寫?要管理數據庫連接,要復用連接提高性能,要將結果集與Bean自動綁定,要管理事務,要處理眾多的SQLException。 JDBC為什么不好維護,因為代碼不好寫,寫得很爛,業務和數據混雜在一起,這樣能好維護嗎? JDBC為什么難以分層,跨層調用Connection誰來管理,如何做到復用,事務控制在哪層?如何提交事務?如何將業務和數據分離,還需要DAO嗎? 基于以上問題的分析,我把我實現過程中的一些經驗總結出來與大家分享,并不能算最好,也許更好的。 1、包裝一個JDBC工具類,可產靜態產生連接和執行各種SQL。這是最基本的,可以省去很多重復的代碼。必要的話可以自己實現各連接池,或者用開源的。這樣,操作數據庫的最低級代碼得到了一次大的減肥。 2、而考慮系統的分層,系統分層是很必要的,邏輯清晰,易于維護,數據和業務分離。因此應該有DAO層,其次是服務層(業務層)Service,有了這兩層,業務-數據實基本上已經實現分離了。 3、建立了層,那么下來就是如何管理層之間的調用,主要是數據庫連接,這里常常看到一個很低級也不容易發現的設計上缺陷:在DAO中創建SQL連接,處理SQLException、并用完后立即關閉。這表面上看似沒有錯,但不要忘記了,事務是在Service上,事務應該放到Service層上做控制。你在DAO中把這些活都干了顯然不合理,再說很多DAO調用才形成了一個業務,顯然那樣做,一個業務的實現需要多次打開和關閉數據庫連接,這是導致性能急劇下降的原因。因此得出一個結論,不要再DAO層去管理連接。因此可以考慮在每個Service業務中獲取數據連接,在業務中將Connection傳遞給DAO,在DAO中不要處理異常,上拋吧,以便業務層捕獲并處理。對比Spring的事務處理,也是將每個業務方法的數據庫連接都保存在一個線程變量中,這樣既實現了連接復用,也方便了事務控制。 4、如何用JDBC實現高級框架的關聯查詢。典型的就是一多關系查詢。這里可以分兩步實現,實際上Hibernate、iBatis也是分兩步來實現,看看SQL便可知道了。而且要注意兩個ResultSet嵌套時候的關系,如果是多層的,更應該注重這種層次關系。 5、以上問題都解決了,還有幾個不爽的地方,ResultSet到Bean對象集合的轉換,這個可以通過Apache Commons DBUitls來得到解決;數據庫持久化類的書寫,我寫了200行左右的工具,可以輕松解決。動態條件SQL拼裝,這個問題是非常有挑戰性的,目前我就用if。。else。。。做個簡單判定來拼裝。很麻煩,可以學習下iBatis的源碼,看看如何實現。 6、對于事務控制,目前沒有需求,但是已經也考慮到了,可以使用JDBC自己的事務管理,也可以使用cglib或者開源的工具來實現,多高的復雜度,要看你的時間來決定了。 到目前為止,我的項目也不是那么完美,還有很多地方可以不用硬編碼,但是時間和精力有限。也希望和大家一塊討論。 另外,對于MySQL數據庫,如果要連接多個數據庫,并且這多個數據庫在一個MySQL上,可以用一個數據庫連接URL就行,然后在SQL中就可以動態指定操作的是哪個數據庫上表。這樣避免為一個數據庫創建一個連接管理配置。

總結

以上是生活随笔為你收集整理的纯JDBC系统的开发随想的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: www.亚洲一区二区三区 | 色婷婷av一区二区三区之红樱桃 | 午夜免费体验区 | 欧美aaa在线观看 | 久久久久久国产视频 | 92精品 | 无码人妻精品一区二区三 | 综合网中文字幕 | 欧美一区二区三区久久综合 | 91精品啪 | 黑人大群体交免费视频 | 欧美日韩一区二区视频观看 | 伊人婷婷综合 | 香蕉毛片 | 村姑电影在线播放免费观看 | 欧美一二区 | 欧美丰满一区二区免费视频 | 成人无码av片在线观看 | 在线播放亚洲精品 | 国产av电影一区 | 91中文在线 | 欧美性aaa | japanese国产 | 免费播放毛片 | 播色屋| 麻豆精品国产传媒av绿帽社 | 久草视频在线免费看 | 一区二区三区久久精品 | 中文字幕一区二区免费 | 人人亚洲| 老司机成人免费视频 | 欧美在线你懂的 | 日韩专区中文字幕 | 日韩一二三四五区 | 五月av| 欧美在线激情视频 | 久草超碰在线 | 好色成人网 | 女优视频在线观看 | 九九热国产在线 | 四虎4hu永久免费网站影院 | 国产人妻人伦精品1国产丝袜 | 欧美破处大片 | 五月天亚洲综合 | 国产精品一区二区在线看 | 香蕉视频在线免费看 | 精品国产xxx| 中国黄色大片 | 色秀视频网 | 欧美日韩亚洲高清 | 亚洲欧美v | 在线看日韩 | av先锋资源| 日韩高清在线观看 | 亚洲第一成年网 | 成人动漫一区 | 亚洲一区二区三区午夜 | 亚洲一区二区三区在线视频观看 | 午夜激情视频在线观看 | 亚洲视频一区二区三区 | 日韩色图一区 | 日本美女性生活视频 | 欧洲成人在线观看 | 国产精品无码一区二区三区三 | 91精品国产91久久久久久吃药 | 国产一区av在线 | 日韩在线一卡二卡 | 黑人玩弄人妻一区二区三区 | 老妇裸体性激交老太视频 | 久久综合国产精品 | 日本不卡视频一区二区三区 | 国产乱码精品一区二区三区亚洲人 | 手机版av | 精品一区二区三区毛片 | 可以直接看的毛片 | 国产又爽又黄的激情精品视频 | 成人超碰| 九草视频在线 | av番号网| 99精品国产一区二区 | 日韩激情文学 | 福利社午夜 | 欧美日韩亚洲系列 | 亚洲麻豆一区二区三区 | 97超碰人人在线 | 国产一级生活片 | 咪咪色在线视频 | 韩日精品中文字幕 | 日韩精品在线免费观看视频 | av55 | 免费高清av在线看 | 日本一区二区三区免费看 | 91网站免费入口 | 黄在线网站 | 黄色麻豆视频 | а 天堂 在线 | 狠狠搞视频 | 很黄的网站在线观看 | 波多野结衣视频一区二区 | 日本三级不卡 |