mybatis自動生成mapper 為什么springMVC和Mybatis逐漸流行起來了?
為什么springMVC和Mybatis逐漸流行起來了?這是我作為程序員和架構(gòu)師職業(yè)生涯中的主要工作。讓我們根據(jù)我個人10年的發(fā)展經(jīng)驗談?wù)勎易约旱南敕?。spring MVC的常用技術(shù)是struts、p
為什么springMVC和Mybatis逐漸流行起來了?
這是我作為程序員和架構(gòu)師職業(yè)生涯中的主要工作。讓我們根據(jù)我個人10年的發(fā)展經(jīng)驗談?wù)勎易约旱南敕ā?/p>
spring MVC的常用技術(shù)是struts、portal和各公司開發(fā)的前端框架。這種方法的優(yōu)點是代碼非常簡潔,請求中請求的參數(shù)可以自動封裝到對象中,并且還支持注解方法來映射URL。這是程序員的最愛,更不用說他和spring security的完美搭配了。
很難說mybatis stream不受歡迎,但它一定比hibernate好,而且使用起來更方便。在這里我只想抱怨一下hibernate的缺點。首先,使用內(nèi)存太貴了。任何小型系統(tǒng)都將獲得500MB。其次,使用JPA,事物管理和注釋根本不清楚,因此很難分層。但是有多少系統(tǒng)需要分布式的東西呢?更不用說這朵奇葩了。
在我被困多年之后,我的建議是SpringMVC數(shù)據(jù)庫連接池更好。Mybatis可以嘗試,但我個人認(rèn)為spring的Dao套件非常容易使用。
實際開發(fā),mybatis逆向生成用的多嗎?
逆向工程簡介
什么是逆向工程?
mybatis要求程序員編寫自己的SQL語句。Mybatis正式提供了逆向工程,它可以根據(jù)一個表自動生成Mybatis執(zhí)行所需的代碼(映射器.java、 映射器.xml、pojo……,可以讓程序員將更多精力放在復(fù)雜的業(yè)務(wù)邏輯上。
在企業(yè)的實際開發(fā)中,常用的逆向工程方法是從數(shù)據(jù)庫表中生成java代碼。
我們之所以強(qiáng)調(diào)“單表”一詞,是因為mybatis反向工程生成的映射器在單表上運行。你可能認(rèn)為這是一個小雞排。然而,在大型項目中,復(fù)雜的多表關(guān)聯(lián)查詢很少,因此其作用仍然非常重要。
Mybatis逆向工程功能非常強(qiáng)大,可以大大提高工作效率,并且不會出現(xiàn)數(shù)據(jù)庫表和實體類不匹配的情況。使用Eclipse插件更容易。您不需要編寫自己的代碼來執(zhí)行,但是手動執(zhí)行并不麻煩,而且不依賴于開發(fā)工具。
為什么要使用mybatis反向工程?
我們之前說過mybatis是一個半自動的ORM框架。SQL語句需要由開發(fā)人員定制。這樣做的好處是代碼更加靈活。缺點是如果業(yè)務(wù)中涉及的表太多,每個表的業(yè)務(wù)都需要定制SQL,創(chuàng)建實體類和Dao接口,這就不可避免的非常麻煩。所以我們需要使用逆向工程,讓mybatis自動生成表對應(yīng)的各種資源,大大減少我們的工作量。
mybatis逆向工程的缺點是什么?
逆向工程有其自身的局限性。逆向工程方法只能執(zhí)行一次。如果再次執(zhí)行,則會重復(fù)生成相應(yīng)的Dao接口、實體類等資源。如果需要修改表結(jié)構(gòu),則必須刪除所有生成的資源并重新生成它們。
MyBatis中添加數(shù)據(jù)后怎么自動在實體類中獲得主鍵ID?
如果要將ID列設(shè)置為自動增量列,可以直接在數(shù)據(jù)庫中將其設(shè)置為自動增量列