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...相关推荐

  1. java 数据透视表 组件_Java创建Excel数据透视表

    正版现货excel效率手册早做完不锡 22.82元 包邮 (需用券) 去购买 > Excel 数据透视表具有强大的数据处理功能,能够使表格中的数据更加直观化.使用Excel 数据透视表,能方便用 ...

  2. 创建mysql数据库 表_MySQL:创建数据库和数据表操作

    1.使用SQL创建数据库,数据库名:studentDB,如果数据库studentDB已存在,那么,先删除再创建. DROP DATABASE IF EXISTS StudentDB ;-----如果存 ...

  3. oracle省市表,省市之一 创建全国省市Sql表

    最近有朋友遇到省市的问题,想想自己今后也有可能会遇到,所以就自己在网上写写,搜搜,主要是对自己今后有参考 --创建数据库 create database NationalAll Go --使用Nati ...

  4. mysql用存储过程更新表_如何创建存储过程以更新MySQL表中的值?

    我们可以使用IN运算符创建一个存储过程来更新MySQL表中的值.为了理解它,我们以一个名为" student_info"的表为例,该表包含以下数据:mysql> Select ...

  5. oracle创建新指定表空间,oracle创建用户并指定表空间

    /*第1步:创建ODPS数据表空间 */ create tablespace ODPS logging datafile '/home/oracle/tablespace_dir/ODPS.dbf' ...

  6. Oracle中for update造成锁表,致使无法删除或更新表内容

    在使用oracle中,想要修改数据库数据时 ,正常情况下查询出表内容后,无法对表进行修改,可以使用以下两种方法进行修改! 方法一 select t.*,t.rowid from CLAIM_USER ...

  7. java 填充pdf_Java如何创建和填充PDF表单域(代码示例)

    本篇文章给大家带来的内容是关于Java如何创建和填充PDF表单域(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 表单域,可以按用途分为多种不同的类型,常见的有文本框.多行 ...

  8. java 填充pdf_Java创建和填充PDF表单域方法

    表单域,可以按用途分为多种不同的类型,常见的有文本框.多行文本框.密码框.隐藏域.复选框.单选框和下拉选择框等,目的是用于采集用户的输入或选择的数据.下面的示例中,将分享通过Java编程在PDF中添加 ...

  9. 若依JAVA开源框架自动生成代码步骤记录-创建子module以及导入子module相关问题

    目录 创建大分类 创建功能表 生成代码 创建module并导入生成的代码 导入子模块 修改自己module的pom.xml和ruoyi-admin下的pom.xml 运行效果 创建大分类 进入系统管理 ...

最新文章

  1. .NET Reflector反编译的方法
  2. [密码学] Shannon保密系统的信息理论 熵与完美保密性
  3. 单片机编程遇到'DATA' SEGMENT TOO LARGE怎么解决?
  4. 共享上网 路由器设置图解
  5. 多线程——实现Runnable接口实现一个多线程
  6. 2017.8.16 喵星球上的点名 思考记录
  7. 台式临床化学分析仪行业调研报告 - 市场现状分析与发展前景预测
  8. div设置背景半透明
  9. Linux常用命令的缩写含义
  10. 解决VS2019配置QT6.1.1出现大量错误信息
  11. 利用哈希表设计快速电话号码查询系统
  12. 题解 【中学高级本-网络流24题】餐巾计划
  13. MySQL数据导入导出方法与工具介绍
  14. 计算机组成原理字发生器,计算机组成原理实验2.7时序发生器赖晓铮剖析.ppt
  15. 打包docker镜像,推送远程服务器,部署到k8s步骤
  16. EMC 设计经验总结
  17. 强化学习理论基础(MDP、值函数与贝尔曼公式以及表格式Agent)
  18. c语言里输入12MmAA后回车,Word怎么用语言输入
  19. 《我是一只IT小小鸟》目录II
  20. [CodeForces877 E. Danil and a Part-time Job]dfs序+线段树

热门文章

  1. python小波分析法检测火焰_一种基于小波分析的网络流量异常检测方法
  2. vant toast loading 倒计时_日期倒计时软件哪个好 苹果日期倒计时软件推荐
  3. 插件translator_Zotero Jasminum 插件的更新记录
  4. 眼图 非差分线_LVDS低电压差分信号简介
  5. gitlab ci mysql_php-Gitlab CI:在阶段之间保留MySQL数据
  6. [转载] Java ArrayList toArray(T[] a) 解惑
  7. LTNS的完整形式是什么?
  8. 一串字符串转换为ascii_将ASCII字符串(char [])转换为C中的BYTE数组
  9. iis php mysql 集成_如何在IIS上集成php(iis+mysql+php+zend)
  10. computed set 自定义参数_深入理解vmodel之自定义组件用法