Mybatis主動創立表和更新表構造。本站提示廣大學習愛好者:(Mybatis主動創立表和更新表構造)文章只能為提供參考,不一定能成為您想要的結果。以下是Mybatis主動創立表和更新表構造正文
比來有小同伴問我mybatis有無主動創立表構造的功效,由於他們之前一向應用hibernate用習氣了,天經地義的以為,在實體類上設置裝備擺設下注解或許寫寫映照文件,體系啟動後便可以主動創立表。
我只能很遺憾的告知他,mybatis並沒有這個功效,看他興趣衰退的模樣,我只能撫慰他,就算沒有這功效,我們可以本身開辟啊~~
所以就有了上面這套體系,已開源年夜家可以上去看看~~
Mybatis_BuildTable_V0.2
https://git.oschina.net/sunchenbin/Mybatis_BuildTable_V0.2.git
該項目架構應用的是SpringMvc+Mybatis+Maven,功效特色是經由過程設置裝備擺設model注解的方法來創立表,修正表構造,今朝僅支撐Mysql,由於重點是凸起mybatis主動創表的功效,所以在框架上沒有話太多心思。
應用標准:
焦點代碼都在model-store-repo中
1.SysMysqlColumns.java這個對象外面設置裝備擺設的是mysql的數據類型,這裡設置裝備擺設的類型越多,意味著創立表時能應用的類型越多
2.LengthCount.java是一個自界說的注解,用於標志在SysMysqlColumns.java外面設置裝備擺設的數據類型上的,標志該類型須要設置幾個長度,如datetime/varchar(1)/decimal(5,2),分離是須要設置0個1個2個
3.Column.java也是一個自界說的注解,用於標志model中的字段上,作為創立表的根據如不標志,不會被掃描到,有幾個屬性用來設置字段名、字段類型、長度等屬性的設置,具體請看代碼上的正文
4.Table.java也是一個自界說的注解,用於標志在model對象上,有一個屬性name,用於設置該model生成表後的表名,如不設置該注解,則該model不會被掃描到
ok,體系啟動後會去主動挪用SysMysqlCreateTableManagerImpl.java的createMysqlTable()辦法,沒錯,這就是焦點辦法了,擔任創立、刪除、修正表。
model-store-frontend/resources/config/autoCreateTable.properties
你會發明有如許一個設置裝備擺設文件,個中有兩項設置裝備擺設
1.mybatis.table.auto=update
2.mybatis.model.pack=com.sunchenbin.store.model
本體系供給兩種形式:
1.當mybatis.table.auto=create時,體系啟動後,會將一切的表刪除失落,然後依據model中設置裝備擺設的構造從新建表,該操作會損壞原稀有據。
2.當mybatis.table.auto=update時,體系會主動斷定哪些表是新建的,哪些字段要修正類型等,哪些字段要刪除,哪些字段要新增,該操作不會損壞原稀有據。
3.mybatis.model.pack這個設置裝備擺設是用來設置裝備擺設要掃描的用於創立表的對象的包名
體系設置裝備擺設的是應用maven來啟動的,web依附repo,frontend和mobile依附web,所以要運轉frontend和mobile,必需先instal一下web和repo
至於若何用maven啟動項目….不再多說了。
以上所述是小編給年夜家引見的Mybatis主動創立表和更新表構造的全體論述,願望對年夜家有所贊助,假如年夜家有任何疑問請給我留言,小編會實時答復年夜家的。在此也異常感激年夜家對網站的支撐!