Mybatis自动创建表/更新表结构/动态建表

最近有小火伴问我mybatis有无自动创建表结构的功能,由于他们之前1直使用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是1个自定义的注解,用于标记在SysMysqlColumns.java里面配置的数据类型上的,标记该类型需要设置几个长度,如datetime/varchar(1)/decimal(5,2),分别是需要设置0个1个2个

3.Column.java也是1个自定义的注解,用于标记model中的字段上,作为创建表的根据如不标记,不会被扫描到,有几个属性用来设置字段名、字段类型、长度等属性的设置,详细请看代码上的注释

4.Table.java也是1个自定义的注解,用于标记在model对象上,有1个属性name,用于设置该model生成表后的表名,如不设置该注解,则该model不会被扫描到

ok,系统启动后会去自动调用SysMysqlCreateTableManagerImpl.java的createMysqlTable()方法,没错,这就是核心方法了,负责创建、删除、修改表。

model-store-frontend/resources/config/autoCreateTable.properties

你会发现有这样1个配置文件,其中有两项配置

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,必须先instal1下web和repo

至于如何用maven启动项目….不再多说了。

嗯~~ 有的朋友说这套系统的实际意义不大,见仁见智了,对有的人来说是没意义的,而对另外一部份人讲可能会有很大的帮助…好了,就酱~

后续我准备重构1下,打成jar包以供大家使用。

波比源码 – 精品源码模版分享 | www.bobi11.com
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!

波比源码 » Mybatis自动创建表/更新表结构/动态建表

发表评论

Hi, 如果你对这款模板有疑问,可以跟我联系哦!

联系站长
赞助VIP 享更多特权,建议使用 QQ 登录
喜欢我嘛?喜欢就按“ctrl+D”收藏我吧!♡