Mybatis自動建立表和更新表結構

    這篇文章主要介紹了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

相關文章
相關標籤/搜索