成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Hibernate ibatis全面概括

開發(fā) 后端
這里介紹Hibernate和ibatis,Hibernate是十分強大,比較完善的orm框架,不過這是它的優(yōu)點也是它的缺點。ibatis對于應用的修改,調(diào)試,擴充和維護將會變得容易自然。

使用ibatis需要自己寫SQL時,由于我們的SQL不可能完全符合SQL標準,比起Hibernate產(chǎn)生的SQL來,可移植性差。不過由于我們更改 數(shù)據(jù)庫的可能性較小,對我們來說SQL符合標準以便可以在遷移到不同服務器時代價最小并不是十分必要的。另一方面,Hibernate雖然可以屏蔽很多 數(shù)據(jù)庫間的不同,但是卻很難利用某些數(shù)據(jù)庫的高級特性,比如oracle的分析統(tǒng)計函數(shù)。

Hibernate不適合數(shù)據(jù)庫模式不規(guī)范,約束不完整,需要大量復雜查詢的系統(tǒng),同時Hibernate的學習成本較高,完全掌握Hibernate也較困難,風險較大。

自己寫框架未必比ibatis的好,穩(wěn)定,強大和可擴展。而且自己開發(fā)框架也需要較大的工作量。

如果使用dotnet并且要選一個數(shù)據(jù)層框架,而系統(tǒng)中有相當一部分較復雜的SQL,或數(shù)據(jù)庫設計不合理,臟數(shù)據(jù)多,對性能和資源要求嚴格,ibatis 是一個比較不錯的選擇。他的那些缺點并不是致命的,而且也是有一些解決方案的。尤其是,當選用了ibatis的dataaccess作為dao框架時,我們可以同時使用Hibernate,ado.net和datamapper(ibatisnet的核心組件),那樣將會使風險降到***,并且整個系統(tǒng)的 框架比較合理。

另外,利用ibatis可以統(tǒng)一編碼風格,節(jié)約開發(fā)成本,大家不會再把精力浪費到分頁 連接池 主鍵生成等地方了,可以集中精力進行業(yè)務組件的編寫。

綜上: 很多時候我們要在是自己開發(fā)框架和選用第三方框架和選用什么樣的框架問題上進行綜合考慮。考慮的標準當然是項目的當前情況和我們希望達到目的的一個平衡。

ibatis只是封裝了數(shù)據(jù)訪問層,替我們做了部分的對象關系映射。但我們的代價是必須要寫xml配置文件,相對于Hibernate我們還要寫很多 SQL.Hibernate通過工具直接從數(shù)據(jù)庫模式生成實體類和基本的配置文件,而且大部分情況下不需要我們寫SQL,會較大的提升開發(fā)效率。但這些也 有很多的局限性,尤其是對環(huán)境的要求較高(數(shù)據(jù)庫設計,對象設計,團隊的協(xié)作等)。

個人感覺ibatis對項目比較有意義的地方在于它小巧靈活,可擴展,封裝了數(shù)據(jù)訪問層(事務,緩存,異常,日志),并提供了dao框架支持。

利用ibatis我們可以做到代碼和SQL的分離,只要SQL能夠解決的問題,ibatis就能幫我們較容易的解決,同時也使我們的項目對某一框架的依賴性變小(因為ibatis是非侵入性的)。這將極大的降低項目風險,減少解決復雜問題的時間,使項目的維護變得簡單。

ibatis對于應用的修改,調(diào)試,擴充和維護將會變得容易自然。修改時,我們主要修改的是代表模型的實體對象,xml配置文件中的SQL,和/或配置文件的resultmap(很多時候是不需要的)。同時,SQL和代碼分離,我們不用在代碼的stringbuffer的append方法之間尋找需要修改的SQL.配置文件中的SQL便利了我們的調(diào)試和對SQL的評審及以后的SQL重用。

利用一些框架在前期一般會拖慢開發(fā)效率。因為我們需要付出學習成本,很多時候,使用框架需要寫很多配置文件,在使用不熟時開發(fā)速度較慢;同時利用框架往往使系統(tǒng)代碼量增大,比如model1和model2模型,開發(fā)效率應該還是model1快,四層的架構肯定比兩層的代碼量大。但對于中后期開發(fā)和維護將會極大的提高效率。

利用一些較完全的開發(fā)框架和代碼生成工具,在前期會較大的提高開發(fā)效率,但在后期常常會拖慢進度,并有可能成為以后維護的夢魘。比如torque生成實體類和其對應的SQL,雖大幅提高了效率,但修改負擔較大。

比較理想的開發(fā)方式是使用簡單框架結合簡單的代碼生成工具。框架提供系統(tǒng)的基礎服務,并規(guī)范開發(fā)。框架一方面提供了開發(fā)中某一方面的開發(fā)基礎支持,比如數(shù)據(jù)訪問層,事務,日志,公用類,異常等。另一方面,也為開發(fā)定義了模式,定義了系統(tǒng)的基本輪廓。同時,通過簡單的代碼生成工具生成部分低級的代碼。比如通過工具從數(shù)據(jù)庫模式生成實體類。這些類生成后我們可以自由修改。

Hibernate是十分強大,比較完善的orm框架,不過這是它的優(yōu)點也是它的缺點。 J2EE系統(tǒng)是否采用Hibernate3,是一個需要認真評估的問題。

要想Hibernate工作的好,數(shù)據(jù)庫的設計必須好。同時對于復雜的數(shù)據(jù)操作同時需要使用SQL,Hibernate3對于直接使用SQL的支持比Hibernate2要自然,這一點是可以接受的。

Hibernate比較復雜,功能強大而靈活,要用好Hibernate確實不是很簡單,當然spring框架提供了對Hibernate的封裝,使Hibernate的使用變得簡單了點。

可以說ibatis在任何系統(tǒng)里都適用,但未必是***選擇。不過ibatis提供的思路是我們應該仔細考慮的。

【編輯推薦】

  1. Hibernate3.1簡單描述
  2. Hibernate save基礎簡介
  3. 淺析Hibernate 3二級緩存基礎
  4. Hibernate流行架構淺析
  5. Hibernate update淺談
責任編輯:佚名 來源: IT168
相關推薦

2009-09-28 17:27:27

Hibernate A

2009-09-22 13:12:25

Hibernateibatis

2009-09-21 16:40:42

Hibernate可行

2009-09-28 15:24:38

Hibernate V

2009-09-24 09:25:10

Hibernate批量

2009-09-25 15:15:54

Hibernate檢索

2009-09-22 13:31:28

Hibernate C

2009-09-22 17:55:51

Spring Hibe

2009-09-29 16:29:40

Hibernate查詢

2009-09-22 09:31:15

Hibernate主鍵

2009-09-27 14:33:01

Hibernate批量

2009-09-28 09:56:53

Hibernate屬性

2009-09-16 16:55:07

LINQ to XML

2009-09-25 13:18:15

Hibernate數(shù)據(jù)

2009-09-23 18:05:48

2009-09-22 09:40:03

cascade和invHibernate

2009-09-24 14:04:25

Hibernate i

2009-09-24 13:45:53

Hibernate性能

2009-09-22 14:52:55

Hibernate p

2009-09-23 13:21:32

Hibernate O
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久大陆| 999免费网站 | 亚洲a视 | 毛片在线免费 | 岛国av一区二区 | av香蕉 | 老司机午夜性大片 | 99亚洲精品 | 国产成人在线播放 | 国产高清在线观看 | 欧美成视频在线观看 | 亚洲人成人一区二区在线观看 | 视频精品一区二区三区 | 日韩一区二区三区在线播放 | 久久国产精品网站 | 伊人二区| 亚洲精品电影在线观看 | 亚洲国产中文在线 | 精品国产乱码久久久久久闺蜜 | 久久国产精品偷 | 久久久国产一区二区三区四区小说 | 国产精品成人在线观看 | 国产精品中文字幕在线播放 | 黄色免费网 | 亚洲一区二区三区桃乃木香奈 | 亚洲久久 | 日韩成人一区 | 欧美日韩在线综合 | 999久久久久久久久 国产欧美在线观看 | 狠狠干美女 | 日韩在线免费视频 | 欧美日韩精品区 | 国产精品美女在线观看 | 久久亚洲一区二区三区四区 | 欧美一区2区三区4区公司 | 91精品国产日韩91久久久久久 | 欧美日韩视频在线播放 | 成人免费视频观看视频 | 日韩一二区 | 极品销魂美女一区二区 | 亚洲精品二区 |