實際開發,mybatis逆向生成用的多嗎?

我的名字長度有3釐米


逆向工程簡介

什麼是逆向工程:

mybatis需要程序員自己編寫sql語句,mybatis官方提供逆向工程,可以針對單表自動生成mybatis執行所需要的代碼(mapper.java、mapper.xml、pojo…),可以讓程序員將更多的精力放在繁雜的業務邏輯上。

企業實際開發中,常用的逆向工程方式:由數據庫的表生成java代碼。

之所以強調單表兩個字,是因為Mybatis逆向工程生成的Mapper所進行的操作都是針對單表的,也許你可能會覺得那這就有點雞肋了,但是在大型項目中,很少有複雜的多表關聯查詢,所以作用還是很大的。

mybatis逆向工程非常強大,可以大大提高工作效率,而且也不會出現數據庫表與實體類對不上號的情況。用eclipse插件更簡單一點,不用自己寫執行的代碼,但是自己手動也不算麻煩,而且不依賴了開發工具。

為什麼要使用Mybatis逆向工程?

  我們之前說過MyBatis是一個"半自動"的ORM框架,SQL語句需要開發者自定義,這樣做的好處是代碼更加靈活,缺點是如果參與業務的表太多,每張表的業務都需要自定義SQL,創建實體類,DAO接口,難免會很麻煩。所以我們需要使用逆向工程,讓MyBatis自動生成表對應的各種資源,大大減少我們的工作量。

  Mybatis逆向工程有什麼不足?

  逆向工程有它自身的侷限性,逆向工程方法只能執行一次,如果再次執行就會重複生成對應的DAO接口,實體類等資源。如果需要對錶結構進行修改,那麼就必須刪除已經生成的所有資源,重新生成一次。



無忌實驗室


以前沒怎麼用過mybatis,只知道與hibernate一樣是個orm數據庫框架。隨著使用熟練度的增加,發現它與hibernate區別是非常大的,結合至今為止的經驗,總結出以下幾點:

1. hibernate是全自動,而mybatis是半自動。

hibernate完全可以通過對象關係模型實現對數據庫的操作,擁有完整的JavaBean對象與數據庫的映射結構來自動生成sql。而mybatis僅有基本的字段映射,對象數據以及對象實際關係仍然需要通過手寫sql來實現和管理。

2. hibernate數據庫移植性遠大於mybatis。

hibernate通過它強大的映射結構和hql語言,大大降低了對象與數據庫(oracle、MySQL等)的耦合性,而mybatis由於需要手寫sql,因此與數據庫的耦合性直接取決於程序員寫sql的方法,如果sql不具通用性而用了很多某數據庫特性的sql語句的話,移植性也會隨之降低很多,成本很高。

3. hibernate擁有完整的日誌系統,mybatis則欠缺一些。

hibernate日誌系統非常健全,涉及廣泛,包括:sql記錄、關係異常、優化警告、緩存提示、髒數據警告等;而mybatis則除了基本記錄功能外,功能薄弱很多。

4. mybatis相比hibernate需要關心很多細節

hibernate配置要比mybatis複雜的多,學習成本也比mybatis高。但也正因為mybatis使用簡單,才導致它要比hibernate關心很多技術細節。mybatis由於不用考慮很多細節,開發模式上與傳統jdbc區別很小,因此很容易上手並開發項目,但忽略細節會導致項目前期bug較多,因而開發出相對穩定的軟件很慢,而開發出軟件卻很快。hibernate則正好與之相反。但是如果使用hibernate很熟練的話,實際上開發效率絲毫不差於甚至超越mybatis。


路西法李


中國的中小企業比較多,這種情況,特別多,因為實用,快


油田402


不多也不少,剛開始搭架子的時候會用到,具體多少看你怎麼封裝了


用戶5927348866


現在ssm框架已經非常流行,大大小小的公司都在使用,逆向工程基本上是標配


物萬生三


多的,提高效率。


分享到:


相關文章: