记录一下今天的
首先创建java工程
选择maven,
命名看自己
选择maven,这个我图方便直接选择了idea自带的
然后next,然后直接finish
然后maven就会直接去下载所需要的文件,还有依赖,等待它下载好
这是自动生成的文件目录
我们需要手动创建几个包,最终的目录结构我先贴上来
几个主要的包,po用来放你table对应的JavaBean,mapper用来放mapper接口和mapper.xml
配置文件的路径我是直接放在src下面的
下面贴上log4j的配置文件代码,很简单网上随便找的
log4j.rootLogger=DEBUG, Console
#Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
log4j.logger.java.sql.ResultSet=DEBUG
log4j.logger.org.apache=DEBUG
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
这里贴上我的pom文件代码
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>1.0-SNAPSHOT</version>
<name>mybatis</name>
<!-- FIXME change it to the project's website -->
<url>http://www.example.com</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<!-- MyBatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.4</version>
</dependency>
<!-- MyBatis generator(逆向工程) -->
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.5</version>
</dependency>
<!-- log4j -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.5</version>
</dependency>
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.11</version>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>RELEASE</version>
<scope>compile</scope>
</dependency>
</dependencies>
<build>
<pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
<plugins>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>3.0.0</version>
</plugin>
<!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_jar_packaging -->
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.0.2</version>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.20.1</version>
</plugin>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<version>3.0.2</version>
</plugin>
<plugin>
<artifactId>maven-install-plugin</artifactId>
<version>2.5.2</version>
</plugin>
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>
然后我们打开mybatis_generator的官网,http://www.mybatis.org/generator/configreference/xmlconfig.html
我们用xml配置来生成
这个里面有一个xml的模板,我一开始就是直接拷贝过来,然后修改了一些参数,但最后运行的时候发现运行成功过后,但是并没有文件生成,后期我也对比了网上的一些配置文件,发现其并没有错的地方,所以我怀疑是我这边的编码有些问题吗,导致我xml文件的读取到的东西是不对的所以导致生成文件失败,
接下来我们来看一下这个xml配置文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
<!--
targetRuntime:指定生成代码的运行目标
可选值:
MyBatis:可以生成动态WHERE条件的SQL
MyBatis3Simple:只能生成简单的CURD
Ibatista2Java2
Ibatista2Java5
-->
<context id="Table2Bean" targetRuntime="MyBatis3">
<!-- 指定如何连接到目标数据库 -->
<jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/mydata?useSSL=false&serverTimezone=UTC" userId="root" password="admin">
</jdbcConnection>
<!-- Java类型解析器 -->
<javaTypeResolver>
<property name="forceBigDecimals" value="false"></property>
</javaTypeResolver>
<!-- 配置JavaBean的生成策略 -->
<!--
targetPackage:目标包名;
targetProject:目标工程;
-->
<javaModelGenerator targetPackage="com.echean.po" targetProject="./src/main/java">
<property name="enableSubPackages" value="true"></property>
<property name="trimStrings" value="true"></property>
</javaModelGenerator>
<!-- sql映射生成策略 -->
<sqlMapGenerator targetPackage="com.echean.mapper" targetProject="./src/main/java">
<property name="enableSubPackages" value="true"></property>
</sqlMapGenerator>
<!--mapper接口的所在位置 -->
<javaClientGenerator type="XMLMAPPER" targetPackage="com.echean.mapper" targetProject="./src/main/java">
<property name="enableSubPackages" value="true"></property>
</javaClientGenerator>
<!-- 根据表创建JavaBean-->
<!--
tableName:表名;
domainObjectName:要生成的类名;
-->
<table tableName="gs_jq_project" domainObjectName="Gs_jq_project"></table>
</context>
</generatorConfiguration>
注释都有大概鞥能看懂,主要要注意的就是targetProject目标项目的路径,写法linux/Mac和windows不一样
接下来我们选择用运行java程序的方式来生成到官网去看,他也提供了好几种方式我们选择java
看下面的图
我这边直接在刚才自动生成的App.java文件里面写
public class App {
public void TestGenerator() throws Exception {
List<String> warnings = new ArrayList<String>();
boolean overwrite = true;
File configFile = new File("./src/mbg.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 {
App mbg = new App();
mbg.TestGenerator();
}
}
最后运行,就能看到文件生成啦