手把手教学基于Maven构建方式使用Mybatis generator自动生成
Posted 来老铁干了这碗代码
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了手把手教学基于Maven构建方式使用Mybatis generator自动生成相关的知识,希望对你有一定的参考价值。
简介
Mybatis generator是一种代码生成器, 可以基于数据库表的字段与类型,自动生成Java代码中对应的entity类、dao类、mapper映射文件。
实现Mybatis generator功能有多种方式,如插件方式、配置文件方式等。 这里采用经过我个人实践并成功的方式来操作。
方式:基于Maven项目构建,XML文件配置的方式。
一. 添加依赖
第一个依赖是mybatis-generator代码生成器的核心依赖
第二个依赖是mysql通过JDBC连接数据库的依赖
<!-- https://mvnrepository.com/artifact/org.mybatis.generator/mybatis-generator-core -->
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.6</version>
</dependency>
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.38</version>
</dependency>
添加完依赖后, 记得刷新一下maven项目。 让maven自动下载这两个依赖对应的jar包。
二. 配置generatorConfig.xml
generatorConfig.xml文件主要作用是配置生成文件的路径、位置、以及表名等基本信息。 当然也可以配置如注释定制等信息,这里只做最基础的功能实现。
下面讲解几个重要参数:
- javaModelGenerator:生成entity类存放位置(也就是POJO类存放位置)
- targetPackage:类的包名
- targetProject:项目在计算机中的地址
- sqlMapGenerator:生成映射文件存放位置(也就是sql语句存放位置)
- 同上
- javaClientGenerator:生成Dao类存放位置(也就是dao文件存放位置)
- 同上
<?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>
<context id="DB2Tables" targetRuntime="MyBatis3">
<jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://数据库地址"
userId="username"
password="password">
</jdbcConnection>
<!--生成entity类存放位置-->
<javaModelGenerator targetPackage="包名(com.generator.test.entity)" targetProject="项目地址到\\java (D:\\workspace\\src\\main\\java)">
<property name="enableSubPackages" value="true"/>
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<!--生成映射文件存放位置-->
<sqlMapGenerator targetPackage="包名(com.generator.test.mapper)" targetProject="项目地址到\\java (D:\\workspace\\src\\main\\java)">
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<!--生成Dao类存放位置-->
<javaClientGenerator type="XMLMAPPER" targetPackage="包名(com.generator.test.dao)"
targetProject="项目地址到\\java (D:\\workspace\\src\\main\\java)">
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
<table tableName="表名" domainObjectName="生成实体的类名">
</table>
</context>
</generatorConfiguration>
下面贴一段实例(代码的项目地址是Mac系统中的项目地址,与Windows有所不同,Windows重点项目地址形如D:\\workspace\\src\\main\\java):
<?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>
<context id="DB2Tables" targetRuntime="MyBatis3">
<jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/myDataBase"
userId="lab_1941747"
password="4546091bded4">
</jdbcConnection>
<!--生成entity类存放位置-->
<javaModelGenerator targetPackage="org.example.beans" targetProject="/Users/zhanglong/IdeaProjects/test1/src/main/java">
<property name="enableSubPackages" value="true"/>
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<!--生成映射文件存放位置-->
<sqlMapGenerator targetPackage="mybatis" targetProject="/Users/zhanglong/IdeaProjects/test1/src/main/resources">
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<!--生成Dao类存放位置-->
<javaClientGenerator type="XMLMAPPER" targetPackage="org.example.dao" targetProject="/Users/zhanglong/IdeaProjects/test1/src/main/java">
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
<table tableName="students" domainObjectName="Students">
</table>
</context>
</generatorConfiguration>
三. 运行
这段代码的大致意思是启动MyBatisGenerator,根据配置文件的方案自动生成代码
package org.example;
import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.exception.XMLParserException;
import org.mybatis.generator.internal.DefaultShellCallback;
import java.io.File;
import java.io.IOException;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
/**
* 运行前提:添加mysql-connector-java依赖
*/
public class test
public static void main(String[] args) throws Exception
List<String> warnings = new ArrayList<String>();
boolean overwrite = true;
File configFile = new File("src/main/java/org/example/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);
四. 运行结果(忽略报错哈,画横线的三个就是生成结果的三个包)
以上是关于手把手教学基于Maven构建方式使用Mybatis generator自动生成的主要内容,如果未能解决你的问题,请参考以下文章
手把手教学基于Maven构建方式使用Mybatis generator自动生成
手把手教学基于Maven构建方式使用Mybatis generator自动生成