這篇文章主要介紹了Mybatis自動建立表和更新表結構的相關資料,很是不錯,具備參考借鑑價值,須要的朋友能夠參考下java
最近有小夥伴問我mybatis有沒有自動建立表結構的功能,由於他們以前一直使用hibernate用習慣了,理所固然的認爲,在實體類上配置下註解或者寫寫映射文件,系統啓動後就能夠自動建立表。mysql
我只能很遺憾的告訴他,mybatis並無這個功能,看他興致闌珊的樣子,我只能安慰他,就算沒有這功能,咱們能夠本身開發啊~~git
因此就有了下面這套系統,已開源你們能夠下來看看~~web
Mybatis_BuildTable_V0.2sql
https://git.oschina.net/sunchenbin/Mybatis_BuildTable_V0.2.gitmybatis
該項目架構使用的是SpringMvc+Mybatis+Maven,功能特色是經過配置model註解的方式來建立表,修改表結構,目前僅支持Mysql,由於重點是突出mybatis自動創表的功能,因此在框架上沒有話太多心思。架構
使用規範:框架
核心代碼都在model-store-repo中frontend
1.SysMysqlColumns.java這個對象裏面配置的是mysql的數據類型,這裏配置的類型越多,意味着建立表時能使用的類型越多maven
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自動建立表和更新表結構的所有敘述,但願對你們有所幫助,若是你們有任何疑問請給我留言,小編會及時回覆你們的。在此也很是感謝你們對腳本之家網站的支持!
另外一個開源:http://luoyu-ds.iteye.com/blog/2024137