mybatis反向生成实体类、mapper映射
mybatis自动生成实体类、mapper映射文件
1.引入jar包
<!-- mybatis-generator-core 反向生成java代码-->
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.5</version>
</dependency>
2.编写generator-fonfig.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>
<context id="SqlServerContext" targetRuntime="MyBatis3Simple"
defaultModelType="flat">
<property name="beginningDelimiter" value="`" />
<property name="endingDelimiter" value="`" />
<!-- 清除mybatis-generator的注释 -->
<commentGenerator>
<property name="suppressAllComments" value="true" />
</commentGenerator>
<!-- jdbcConnection -->
<jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
connectionURL="jdbc:mysql://127.0.0.1:3306/yjmysql?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC"
userId="yjhd"
password="yjhd">
</jdbcConnection>
<!--指定生成的类型为java类型,避免数据库中number等类型字段 -->
<javaTypeResolver>
<property name="forceBigDecimals " value="false" />
</javaTypeResolver>
<!--自动生成的实体的存放包路径 -->
<javaModelGenerator targetPackage="com.yj.hd.ioc.entity" targetProject="src/main/java">
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!--自动生成的*Mapper.xml文件存放路径 -->
<sqlMapGenerator targetPackage="main.resources.mybatis.mapper" targetProject="src" />
<!--自动生成的*Mapper.java存放路径 type: XMLMAPPER 采用的是xml方式, -->
<javaClientGenerator type="XMLMAPPER" targetPackage="com.yj.hd.ioc.dao" targetProject="src/main/java" />
<!-- 需要生成代码的表名,每个表一个table节点如下 -->
<table tableName="yj_user" domainObjectName="YjUser"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false">
</table>
</context>
</generatorConfiguration>
1) jdbcConnection:jdbc链接配置
(1)由于&符号无法直接在参数中使用,所以使用&
符号代替
mysql的链接中对中文字符不识别:使用characterEncoding=UTF-8
标注
告诉数据库此次连接传输UTF8数据,项目为UTF8 数据库为其他编码,在持久化时会把项目UTF8的数据 转换为数据库存储的格式;从数据库取数据同理。
项目和数据库都为UTF8的话,可以不写
(2)serverTimezone=UTC调整服务时间为世界时间
1)javaModelGenerator
(1)javaModelGenerator:用于定义Java模型生成器的属性。Java模型生成器将构建与自省表匹配的主键类,记录类和“按示例查询”类。该元素是元素的必需子元素。
(2)targetPackage:这是将生成的类放在其中的包。在默认生成器中,属性“ enableSubPackages”控制如何计算实际包。如果为true,则计算的包将是targetPackage以及表的目录和架构的子包(如果存在)。如果为false(默认值),则计算出的包将与targetPackage属性中指定的包完全相同。Ibator将根据所生成软件包的需要创建文件夹。
(3)targetProject:这用于为生成的对象指定目标项目。在Eclipse环境中运行时,它指定将在其中保存对象的项目和源文件夹。在其他环境中,该值应该是本地文件系统上的现有目录。如果该目录不存在,则Ibator不会创建该目录。
(4)property:指定的默认Java模型生成器的属性
trimStrings:此属性用于选择Ibator是否添加代码以修剪数据库返回的字符字段中的空白。如果您的数据库将数据存储在CHAR字段而不是VARCHAR字段中,则这将很有用。如果为true,则Ibator将插入代码以修剪字符字段。
默认值为false
3.编写main启动方法
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.internal.DefaultShellCallback;
public class Gen {
public static void main(String[] args) {
try {
List<String> warnings = new ArrayList<String>();
boolean overwrite = true;
String genCfg = "generator-fonfig.xml";
File configFile = new File(Gen.class.getResource(genCfg).getFile());
ConfigurationParser cp = new ConfigurationParser(warnings);
Configuration config = null;
config = cp.parseConfiguration(configFile);
DefaultShellCallback callback = new DefaultShellCallback(overwrite);
MyBatisGenerator myBatisGenerator = null;
myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
myBatisGenerator.generate(null);
} catch (Exception e) {
e.printStackTrace();
}
}
}
4.运行
运行main方法后将在配置文件指定路径下生成dao、实体类。mapper
推荐阅读
-
SQL映射器Mapper接口(MyBatis)
-
一个用于MyBatis的辅助页面,自动生成实体,mapper,impl,dao,注册spring,mybatis的小玩意
-
mybatis-generator 自动生成mapper以及实体类
-
mybatis generato 生成的mapper映射xml出现重复代码
-
工具 使用mybatis插件工具生成数据库表的映射简单版idea下 mysql
-
使用IDEA插件EasyCode实现数据库表反向生成实体类
-
MybatisPlus 代码生成器——生成到指定功能模块下(Mybatis一键生成entity,mapper,mapper.xml,service,serviceImpl,controller)
-
Maven 插件生成MyBatis的mapper, xml和Entity类
-
Mybatis 源码学习(二) Mapper 接口和sql的映射
-
mybatis插件generatorConfiguration.xml配置,可直接生成实体类、dao、mapper.xml文件