Java自动切表_java_Mybatis自动创建表和更新表结构,最近有小伙伴问我mybatis有没有 - phpStudy...
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自動創建表和更新表結構的全部敘述,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對phpstudy網站的支持!相關閱讀:
JavaWeb搭建網上圖書商城畢業設計
jquery.qtip提示信息插件用法簡單實例
Android防止按鈕過快點擊造成多次事件的解決方法
Javascript實現商品秒殺倒計時(時間與服務器時間同步)
win10 edge瀏覽器怎么樣 win10 edge瀏覽器上手體驗評測
jQuery Validate插件實現表單強大的驗證功能
css實現的滑動鼠標到img后切換圖片移開恢復默認
從零開始學android實現計算器功能示例分享(計算器源碼)
win7文件夾應該怎么加密?win7文件夾加密教程
LTSB分支上的Win10企業版不會預裝Edge瀏覽器
Win10系統怎么打開OneNote云筆記
oracle誤刪數據恢復方法小結
基于JS實現新聞列表無縫向上滾動實例代碼
win7寬帶連接錯誤提示738情況的解決方法介紹
總結
以上是生活随笔為你收集整理的Java自动切表_java_Mybatis自动创建表和更新表结构,最近有小伙伴问我mybatis有没有 - phpStudy...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java反码_Java:二进制(原码、反
- 下一篇: 五邑大学c语言期末考试题,五邑大学 c语