app开发者平台在数字化时代的重要性与发展趋势解析
883
2023-03-18
Mybatis Plus插件三种方式的逆向工程的使用
本文源码:github点这里 || GitEE点这里
一、逆向工程简介
在java开发中,持久层最常用的框架就是mybatis,该框架需要编写sql语句,mybatis官方提供逆向工程,可以把数据表自动生成执行所需要的基础代码,例如:mapper接口,sql映射文件,pojo实体类等,避免基础代码维护的繁杂过程。
在实际的使用中,常用的逆向工程方式如上,mybatis框架,mybatis-plus框架,插件方式。
二、Mybatis方式
1、基础描述
基于xml配置的方式,生成mybatis基础代码,包括mapper接口,Mapper映射文件,pojo实体类,PojoExample条件工具类。
2、配置文件
注意这里的targetProject需要配置自定义路径位置。
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
connectionURL="jdbc:mysql://localhost:3306/defined-log?tinyInt1isBit=false" userId="root" password="123456">
connectionURL="jdbc:mysql://localhost:3306/defined-log?tinyInt1isBit=false"
userId="root" password="123456">
targetProject="存放路径">
targetProject="存放路径">
targetProject="存放路径">
targetProject="存放路径">
targetProject="存放路径">
targetProject="存放路径">
3、启动类
读取配置文件,并执行。
public class GeneratorMybatis {
public void generator() throws Exception {
List
boolean overwrite = true;
File configFile = Resources.getResourceAsFile("generatorConfig.xml");
ConfigurationParser cp = new ConfigurationParser(warnings);
Configuration config = cp.parseConfiguration(configFile);
DefaultShellCallback callback = new DefaultShellCallback(overwrite);
MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config,callback, warnings);
myBatisGenerator.generate(null);
}
public static void main(String[] args) throws Exception {
try {
GeneratorMybatis generatorMybatis = new GeneratorMybatis();
generatorMybatis.generator();
} catch (Exception e) {
e.printStackTrace();
}
}
}
三、MybatisPlus方式
1、基础描述
MybatisPlus相比Mybatis提供更多增强的能力,单表操作基本都封装好了,所以生成的mapper映射文件简洁很多,需要注意ServiceImpl关键类和BaseMapper接口。
2、核心启动类
这里的配置可以基于很多自定义的策略,案例生成的代码已经传到仓库,可以自行-查看。
public class GeneratorMybatisPlus {
public static void main(String[] args) {
// 代码生成器
AutoGenerator autoGenerator = new AutoGenerator();
// 全局配置
GlobalConfig globalConfig = new GlobalConfig();
//生成文件的输出目录
String path="存放路径";
globalConfig.setOutputDir(path);
globalConfig.setAuthor("mybatis-plus");
// 文件覆盖
globalConfig.setFileOverride(true);
// 生成后打开文件
globalConfig.setOpen(false);
// 自定义文件名风格,%s自动填充表实体属性
globalConfig.setMapperName("%sMapper");
http://globalConfig.setXmlName("%sMapper");
globalConfig.setServiceName("%sDao");
globalConfig.setServiceImplName("%sDaoImpl");
globalConfig.setEntityName("%s");
globalConfig.setControllerName("%sController");
autoGenerator.setGlobalConfig(globalConfig);
// 数据源配置
DataSourceConfig dataSourceConfig = new DataSourceConfig();
dataSohttp://urceConfig.setDbType(DbType.MYSQL);
dataSourceConfig.setTypeConvert(new MySqlTypeConvert());
dataSourceConfig.setUrl("jdbc:mysql://localhost:3306/defined-log?tinyInt1isBit=false");
dataSourceConfig.setDriverName("com.mysql.jdbc.Driver");
dataSourceConfig.setUsername("root");
dataSourceConfig.setPassword("123456");
autoGenerator.setDataSource(dataSourceConfig);
// 包名配置
PackageConfig packageConfig = new PackageConfig();
// 父包和子包名分开处理
packageConfig.setParent("com.generator.mybatis.plus");
packageConfig.setController("web");
packageConfig.setEntity("pojoagjyFfpG");
packageConfig.setMapper("mapper");
packageConfig.setService("dao");
packageConfig.setServiceImpl("dao.impl");
autoGenerator.setPackageInfo(packageConfig);
// 生成策略配置
StrategyConfig strategy = new StrategyConfig();
//设置命名格式
strategy.setNaming(NamingStrategy.underline_to_camel);
strategy.setColumnNaming(NamingStrategy.underline_to_camel);
// 实体是否为lombok模型,默认 false
strategy.setEntityLombokModel(true);
//生成 @RestController 控制器
strategy.setRestControllerStyle(true);
// 驼峰转连字符
strategy.setControllerMappingHyphenStyle(true);
//表和前缀处理
strategy.setInclude("dt_defined_log".split(","));
String[] tablePre = new String[]{"dt_"};
strategy.setTablePrefix(tablePre);
autoGenerator.setStrategy(strategy);
// 执行,以上相关参数可以基于动态输入获取
autoGenerator.execute();
}
}
该方式是当前mybatis框架最流行的开发方式,代码会简洁很多。
四、插件工具
1、配置数据库
这里选择MySQL数据源,后续根据提示需要-驱动配置。
2、连接配置
Url地址,账号,密码,获取连接。
3、插件使用
这里选择的是安装EasyCode插件。
根据配置,生成逆向工程文件,整体思路和上述两种方式一致。
五、源代码地址
GitHub地址https://github.com/cicadasmile/data-manage-parent
GitEE地址https://gitee.com/cicadasmile/data-manage-parent
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~