首先,下面的代码都是基于 孙琛斌这位大兄弟的‘Mybatis自动创建表/更新表结构/动态建表’这篇文章进化而来的,这里非常感谢该博主,受该博主的启发,使我的技术提升了不少,非常感谢!
下面进入正题:
一,说说能做什么
二、先来说说不同的地方(好多啊,被我改的面目全非了(/ω╲))
三、使用方法
1.在 resources 文件夹下建立 model2table.properties
# mybatis.table.auto=create | update | none
mybatis.table.auto=update
# mybatis.table.initData=none | insert
mybatis.table.initData=insert
# 支持通配符,不过只支持 ** 两个星号
mybatis.model.pack=com.wb.**.model
# 因为类型和生成的 sql 是 MySQL 版本的,暂时只支持 MySQL
mybatis.database.type=mysql
2.在 配置文件中添加下面的
3.按照原来的做法就是自己想办法扫描到 mapper 文件了,我用的是通配符。
classpath*:**/*-mapper.xml
4.接下来就是编写一个 model 测试运行了
package com.wb.sys.model;
import java.io.Serializable;
import com.wb.plugins.model2table.annotation.Column;
import com.wb.plugins.model2table.annotation.Table;
import com.wb.plugins.model2table.constants.MySqlTypeConstant;
/**
* @author 艾小天
* @email :[email protected]
* @date :2017年12月25日 下午7:33:29
*/
@Table(name = "sys_dict2", comment = "字典表")
public class SysDict implements Serializable {
private static final long serialVersionUID = 1L;
@Column(name = "id", isUnsigned = true, type = MySqlTypeConstant.BIGINT, length = 64, isKey = true, isNull = false, comment = "字典表ID")
private Long id;
@Column(name = "parentId", isUnsigned = true, type = MySqlTypeConstant.BIGINT, length = 64, isNull = true, comment = "父级ID")
private Long parentId;
@Column(name = "path", type = MySqlTypeConstant.VARCHAR, length = 100, isUnique = true, comment = "树路径")
private String path;
@Column(name = "dictName", type = MySqlTypeConstant.VARCHAR, length = 100, comment = "字典名称")
private String dictName;
@Column(name = "code", type = MySqlTypeConstant.VARCHAR, length = 20, comment = "字典编码")
private String code;
@Column(name = "orderNo", type = MySqlTypeConstant.INT, length = 5, comment = "排序号")
private Integer orderNo;
@Column(name = "hasChildren", type = MySqlTypeConstant.TINYINT, length = 1, comment = "有子节点,0否,1是")
private boolean hasChildren;
//省略 getter 和 setter 方法了。。。。
}
5.编写初始化数据的类,后面的就应该可以自己写了,去吧,皮卡丘
package com.wb.sys.model;
import com.wb.plugins.model2table.annotation.InitData;
/**
* @author 艾小天
* @email :[email protected]
* @date :2017年12月26日 下午6:34:41
*/
public class TestOne {
@InitData
public void initData() {
System.out.println("\n\n\n===================TestOne");
}
}
附上github:源码地址model2table
最后说两句吧:修改的原因是为了配合现在的开发,原来的和现在的系统不太兼容所以就修改了,同时也为了迎合业务需求吧,方便项目的部署与初始化