使用MyBatis Generator生成器时,有时候没办法使用xml型的配置文件,比如将Maven项目设置成pom打包方式(<packaging>pom</packaging>)!由于Maven的工作机制对于打包方式为pom的项目是不会输出jar包或war和resources内容,所以放在resources目录下或放在源码目录下的xml文件就没法读取了,就算你在pom.xml文件中明确有如下配置也没有用的:

    <build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.yml</include>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.yml</include>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
</build>

  这个时候就会用到纯Java代码的MyBatis Generator配置,直接贴配置代码:

import org.mybatis.generator.config.*;

/**
* 基础Java代码的MBG配置
* Maven打包方式为POM的项目或模块(<packaging>pom</packaging>),resources目录的内容不会输出到类路径下,所以可以选择直接使用Java代码配置!
*
* @author 707669522@qq.com
* @since 2020-06-13
*/
public class GeneratorConfig {
public static Configuration getGeneratorConfig() {
Context context = new Context(ModelType.CONDITIONAL);
context.setId("simple");
context.setTargetRuntime("MyBatis3Simple"); /*添加属性*/
context.addProperty("javaFileEncoding", "UTF-8"); /*插件配置,这个是我自己的插件,没有自定义插件的同学可以不配这一节,删除即可*/
PluginConfiguration pluginConfig = new PluginConfiguration();
pluginConfig.setConfigurationType("com.xgclassroom.generator.GeneratorPlugin");
context.addPluginConfiguration(pluginConfig); /*注释生成器配置*/
CommentGeneratorConfiguration commentGeneratorConfig = new CommentGeneratorConfiguration();
commentGeneratorConfig.addProperty("suppressAllComments", "true");
context.setCommentGeneratorConfiguration(commentGeneratorConfig); /*JDBC连接信息配置*/
JDBCConnectionConfiguration jdbcConnectionConfig = new JDBCConnectionConfiguration();
jdbcConnectionConfig.setDriverClass("com.mysql.cj.jdbc.Driver");
//注意代码配置中JDBC连接字符串中的参数分隔符不需要再像xml配置文件中那样使用转义符
jdbcConnectionConfig.setConnectionURL("jdbc:mysql://localhost:3306/permission_center?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false");
jdbcConnectionConfig.setUserId("xurm");
jdbcConnectionConfig.setPassword("1qaz@WSX");
jdbcConnectionConfig.addProperty("nullCatalogMeansCurrent", "true");//MySQL无法识别table标签中schema类的配置,所以在URL上指明目标数据库,并追加nullCatalogMeansCurrent属性为true
jdbcConnectionConfig.addProperty("remarksReporting", "true");//针对oracle数据库无法读取表和字段备注
jdbcConnectionConfig.addProperty("useInformationSchema", "true");//针对mysql数据库无法读取表和字段备注
context.setJdbcConnectionConfiguration(jdbcConnectionConfig); /*Model生成器配置*/
JavaModelGeneratorConfiguration javaModelGeneratorConfig = new JavaModelGeneratorConfiguration();
javaModelGeneratorConfig.setTargetProject("permission/src/main/java");//目标项目(源码主路径)
javaModelGeneratorConfig.setTargetPackage("com.xgclassroom.model");//目标包(Model类文件存放包)
context.setJavaModelGeneratorConfiguration(javaModelGeneratorConfig); /*SqlMapper生成器配置(*Mapper.xml类文件),要javaClient生成器类型配合*/
SqlMapGeneratorConfiguration sqlMapGeneratorConfig = new SqlMapGeneratorConfiguration();
sqlMapGeneratorConfig.setTargetProject("permission/src/main/java");//目标项目(源码主路径)
sqlMapGeneratorConfig.setTargetPackage("com.xgclassroom.mapper");//目标包(*Mapper.xml类文件存放包)
context.setSqlMapGeneratorConfiguration(sqlMapGeneratorConfig); /*JavaClient生成器配置(*Mapper.java类文件)*/
JavaClientGeneratorConfiguration javaClientGeneratorConfig = new JavaClientGeneratorConfiguration();
javaClientGeneratorConfig.setConfigurationType("XMLMAPPER");//JavaClient生成器类型(主要有ANNOTATEDMAPPER、MIXEDMAPPER、XMLMAPPER,要Context的TargetRuntime配合)
javaClientGeneratorConfig.setTargetProject("permission/src/main/java");//目标项目(源码主路径)
javaClientGeneratorConfig.setTargetPackage("com.xgclassroom.mapper");//目标包(*Mapper.java类文件存放包)
context.setJavaClientGeneratorConfiguration(javaClientGeneratorConfig); /*表生成配置*/
TableConfiguration tableConfig = new TableConfiguration(context);
tableConfig.setTableName("%");
GeneratedKey generatedKey = new GeneratedKey("id", "JDBC", true, null);//设置主键列和生成方式
tableConfig.setGeneratedKey(generatedKey);
context.addTableConfiguration(tableConfig); Configuration config = new Configuration();
config.addContext(context); return config;
}
}

  然后就是把MyBatis Generator调用过程中原本读取xml配置文件的地方换掉就可以了:

import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.internal.DefaultShellCallback; import java.util.ArrayList;
import java.util.List; /**
* MyBatisGenerator代码生成器Java调用程序
*
* @author 707669522@qq.com
* @since 2020-06-13
*/
public class GeneratorRunner {
public static void main(String[] args) {
try {
List<String> warnings = new ArrayList<String>();
Configuration config;
//使用xml配置文件的方式
/*File configFile = new File(GeneratorRunner.class.getClassLoader().getResource("generatorConfig.xml").getPath());
ConfigurationParser cp = new ConfigurationParser(warnings);
config = cp.parseConfiguration(configFile);*/
//使用纯Java代码配置的方式
config = GeneratorConfig.getGeneratorConfig();
DefaultShellCallback callback = new DefaultShellCallback(true);
MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
myBatisGenerator.generate(null);
} catch (Exception e) {
System.out.println(e.getMessage());
e.printStackTrace();
}
}
}

  Talk is cheap, show me the code! Bye.

使用Java代码配置MyBatis Generator的更多相关文章

  1. mybatis 自动生成代码(mybatis generator)

    pom.xml 文件配置 引入 mybatis generator <properties> <mysql.connector.version>5.1.44</mysql ...

  2. Java逆向工程SpringBoot + Mybatis Generator + MySQL

    Java逆向工程SpringBoot+ Mybatis Generator + MySQL Meven pop.xml文件添加引用: <dependency> <groupId> ...

  3. Java发送邮件--web.xml配置,Java代码配置

    前言:我目前总结的使用java发送邮件的方式有两种,分别是在spring框架xml配置文件使用bean标签,另一种方法是把发送功能封装成一个对象,废话不多说上代码, 边看代码边讲解,希望对需要的人能有 ...

  4. JAVA入门[7]-Mybatis generator(MBG)自动生成mybatis代码

    一.新建测试项目 新建Maven项目MybatisDemo2,修改pom.xml引入依赖.dependencies在上节基础上新增 <dependency> <groupId> ...

  5. SpringBoot(十一):springboot2.0.2下配置mybatis generator环境,并自定义字段/getter/settetr注释

    Mybatis Generator是供开发者在mybatis开发时,快速构建mapper xml,mapper类,model类的一个插件工具.它相对来说对开发者是有很大的帮助的,但是它也有不足之处,比 ...

  6. Mybatis自动生成代码,MyBatis Generator

    这还是在学校里跟老师学到的办法,然后随便在csdn下载一个并调试到可以用的状态. 基本由这几个文件组成,一个mysql连接的jar包.一个用于自动生成的配置文件,一个自动生成的jar包,运行jar包语 ...

  7. Java连接数据库 #07# MyBatis Generator简单例子

    MyBatis Generator是一个可以帮助我们免去手写实体类&接口类以及XML的代码自动生成工具. 下面,通过一个简单的例子介绍MyBatis Generator如何使用. 大体流程如下 ...

  8. 学习Spring5必知必会(4)~使用注解配置、使用java代码配置

    ● 注意:使用注解并不能完全取代xml配置,比如配置连接池DruidDataSource,我们就不能到这个类中去贴注解. 想要实现零配置(完全不使用xml进行配置):javaConfig + 注解 ● ...

  9. Spring使用java代码配置Web.xml进行访问service

    方式一:继承WebMvcConfigurerAdapter类 1.使用一个类来继承 package com.wbg.springJavaConfig.spring; import org.spring ...

随机推荐

  1. 控制层技术:Servlet+reflection、Struts2、Spring MVC三者之间的比较学习

    Servlet Struts2 Spring MVC 处理用户提交的数据 基于MVC设计模式的Web应用程序 是一个框架 是MVC框架 导入servlet包,配置web.xml文件 web.xml & ...

  2. 剑指Offer之二进制中1的个数

    题目描述 输入一个整数,输出该数二进制表示中1的个数.其中负数用补码表示.     解法1:使用Integer.toBinanryString()返回int变量的二进制表示的字符串. [在Intege ...

  3. [MSSQL] [EntityFramework(.Net Core)] 自增长id字段,无法插入数据

    IDENTITY_INSERT 为 OFF,无法插入数据, 类似的错误,解决记录: 网上查了下,都是 Code First 模式下的解决方案, 如:在 DBContext 的 OnModelCreat ...

  4. [安卓基础] 001.学习Android开发的好教程

    如果想自学android,有许多不错的android网站.这里收集了一些,列举如下: 国内 极客学院,这里有非常丰富的视频教程. http://www.jikexueyuan.com/course/a ...

  5. Mybatis执行器源码手记

    今天将Mybatis的执行器部分做一下简单手记. 一.java原生JDBC 众所周知,Mybatis是一个半自动化ORM框架.其实说白了,就是将java的rt.jar的JDBC操作进行了适度的封装.所 ...

  6. 轻松实现记录与撤销——C#中的Command模式

    Command模式属于行为模式,作为大名鼎鼎的23个设计模式之一,Command模式理解起来不如工厂模式,单例模式等那么简单直白.究其原因,行为模式着重于使用,如果没有编程实践,确实不如创造模式那么直 ...

  7. win10下安装scrapy出现错误的处理

    一.背景: 在win10的dos窗口下使用命令pip install scrapy安装scrapy时,出现“ error: Microsoft Visual C++ 14.0 is required. ...

  8. Rocket - util - ECC

    https://mp.weixin.qq.com/s/yato1PrnHe517J8twgZFOg   介绍ECC(Error Correcting Code/Error Checking and C ...

  9. UML ——区分类图中的几种关系.md

    目录 关联关系 (association): 聚合关系 (aggregation): 合成关系 (composition): 依赖关系 (dependency): 总结: 原文地址 http://ww ...

  10. Java实现 LeetCode 797 所有可能的路径 (DFS)

    797. 所有可能的路径 给一个有 n 个结点的有向无环图,找到所有从 0 到 n-1 的路径并输出(不要求按顺序) 二维数组的第 i 个数组中的单元都表示有向图中 i 号结点所能到达的下一些结点(译 ...