iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >MybatisPlus怎么自动生成映射文件
  • 184
分享到

MybatisPlus怎么自动生成映射文件

2023-06-28 06:06:21 184人浏览 泡泡鱼
摘要

这篇文章主要为大家展示了“mybatisPlus怎么自动生成映射文件”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“MybatisPlus怎么自动生成映射文件”这篇文章吧。如何自动生成映射文件一、

这篇文章主要为大家展示了“mybatisPlus怎么自动生成映射文件”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“MybatisPlus怎么自动生成映射文件”这篇文章吧。

如何自动生成映射文件

一、pom.xml

pom.xml添加以下依赖:

<dependency>            <groupId>org.mybatis.spring.boot</groupId>            <artifactId>mybatis-spring-boot-starter</artifactId>            <version>2.0.1</version>        </dependency><dependency>            <groupId>com.baomidou</groupId>            <artifactId>mybatis-plus-boot-starter</artifactId>            <version>3.0.3</version>        </dependency>        <dependency>            <groupId>com.baomidou</groupId>            <artifactId>mybatis-plus</artifactId>            <version>3.0.3</version>        </dependency>        <dependency>            <groupId>org.mybatis</groupId>            <artifactId>mybatis-spring</artifactId>            <version>1.3.2</version>        </dependency>        <dependency>            <groupId>org.freemarker</groupId>            <artifactId>freemarker</artifactId>            <version>2.3.23</version>        </dependency>        <!-- 高版本mybatis plus将这个包摘出来了,所以需要添加此依赖,低版本不需要 -->        <dependency>            <groupId>com.baomidou</groupId>            <artifactId>mybatis-plus-generator</artifactId>        </dependency>

二、MybatisPlusUtil工具

package com.yss.datamiddle.common;import com.baomidou.mybatisplus.annotation.DbType;import com.baomidou.mybatisplus.annotation.IdType;import com.baomidou.mybatisplus.generator.AutoGenerator;import com.baomidou.mybatisplus.generator.config.*;import com.baomidou.mybatisplus.generator.config.querys.DB2Query;import com.baomidou.mybatisplus.generator.config.rules.DateType;import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;import java.sql.*;import java.util.ArrayList;import java.util.List;public class MybatisPlusUtils {        public static void generateMysql(String[] includeTables, String[] excludeTables, Boolean db1) {        AutoGenerator autoGenerator = new AutoGenerator();                buildmysqlDb(autoGenerator);        StrategyConfig strategyConfig = new StrategyConfig();        // 驼峰命名        strategyConfig.setColumnNaming(NamingStrategy.underline_to_camel);        strategyConfig.setNaming(NamingStrategy.underline_to_camel);        strategyConfig.setInclude(includeTables);        strategyConfig.setExclude(excludeTables);        strategyConfig.setTablePrefix("");        autoGenerator.setStrategy(strategyConfig);                GlobalConfig globalConfig = new GlobalConfig();        globalConfig.setAuthor("Han LiDong");        globalConfig.setDateType(DateType.ONLY_DATE);        globalConfig.setActiveRecord(true);        globalConfig.setIdType(IdType.INPUT);        globalConfig.setOutputDir("C:/D/ORM");  //文件生成路径        globalConfig.setMapperName("%sMapper");        globalConfig.setServiceName("%sService");        globalConfig.setServiceImplName("%sServiceImpl");        globalConfig.setXmlName("%sMapper");        globalConfig.setswagger2(true);        globalConfig.setFileOverride(true);        globalConfig.setBaseColumnList(false);        globalConfig.setBaseResultMap(false);        globalConfig.setEnableCache(false);        autoGenerator.setGlobalConfig(globalConfig);                PackageConfig packageConfig = new PackageConfig();        packageConfig.setParent("");        packageConfig.setEntity("com.yss.datamiddle.entity");        packageConfig.setMapper("com.yss.datamiddle.dao");        packageConfig.setXml("mapper");        packageConfig.setService("com.yss.datamiddle.service");        packageConfig.setServiceImpl("com.yss.datamiddle.impl");        packageConfig.setController("com.yss.datamiddle.controller");        autoGenerator.setPackageInfo(packageConfig);        // 采用默认模板,自定义模板参考@see com.baomidou.mybatisplus.generator.config.TemplateConfig//        TemplateConfig templateConfig = new TemplateConfig();        autoGenerator.setTemplateEngine(new FreemarkerTemplateEngine());        autoGenerator.execute();    }        public static void generateoracle(String[] includeTables, String[] excludeTables, Boolean db1) {        AutoGenerator autoGenerator = new AutoGenerator();        buildOracleDb(autoGenerator);        StrategyConfig strategyConfig = new StrategyConfig();        // 驼峰命名        strategyConfig.setColumnNaming(NamingStrategy.underline_to_camel);        strategyConfig.setNaming(NamingStrategy.underline_to_camel);        strategyConfig.setInclude(includeTables);        strategyConfig.setExclude(excludeTables);        strategyConfig.setTablePrefix("");        autoGenerator.setStrategy(strategyConfig);                GlobalConfig globalConfig = new GlobalConfig();        globalConfig.setAuthor("Han LiDong");        globalConfig.setDateType(DateType.ONLY_DATE);        globalConfig.setActiveRecord(true);        globalConfig.setIdType(IdType.AUTO);    //这里用oracle的序列和触发器实现主键自增        globalConfig.setOutputDir("C:/ORM");  //文件生成路径        globalConfig.setMapperName("%sMapper");        globalConfig.setServiceName("%sService");        globalConfig.setServiceImplName("%sServiceImpl");        globalConfig.setXmlName("%sMapper");        globalConfig.setSwagger2(true);        globalConfig.setFileOverride(true);        globalConfig.setBaseColumnList(false);        globalConfig.setBaseResultMap(false);        globalConfig.setEnableCache(false);        autoGenerator.setGlobalConfig(globalConfig);                PackageConfig packageConfig = new PackageConfig();        packageConfig.setParent("");        packageConfig.setEntity("com.yss.datamiddle.entity");        packageConfig.setMapper("com.yss.datamiddle.dao");        packageConfig.setXml("mapper");        packageConfig.setService("com.yss.datamiddle.service");        packageConfig.setServiceImpl("com.yss.datamiddle.impl");        packageConfig.setController("com.yss.datamiddle.controller");        autoGenerator.setPackageInfo(packageConfig);        // 采用默认模板,自定义模板参考@see com.baomidou.mybatisplus.generator.config.TemplateConfig//        TemplateConfig templateConfig = new TemplateConfig();        autoGenerator.setTemplateEngine(new FreemarkerTemplateEngine());        autoGenerator.execute();    }    private static void buildOracleDb(AutoGenerator autoGenerator) {        DataSourceConfig dataSourceConfig = new DataSourceConfig();        dataSourceConfig.setDbQuery(new MyDbQuery());   //自定义dbquery不然querydb.dbtype找不到        dataSourceConfig.setDbType(DbType.ORACLE);        dataSourceConfig.setDriverName("oracle.jdbc.driver.OracleDriver");        dataSourceConfig.setUsername("xxxxx");        dataSourceConfig.setPassword("xxxxx");        dataSourceConfig.setUrl("jdbc:oracle:thin:@192.168.xxx.xxx/orcl");        //dataSourceConfig.setUrl("jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false");        autoGenerator.setDataSource(dataSourceConfig);    }    private static void buildMysqlDb(AutoGenerator autoGenerator) {        DataSourceConfig dataSourceConfig = new DataSourceConfig();        dataSourceConfig.setDbType(DbType.MYSQL);        dataSourceConfig.setDriverName("com.mysql.jdbc.Driver");        dataSourceConfig.setUsername("root");        dataSourceConfig.setPassword("123456");        dataSourceConfig.setUrl("jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false");        autoGenerator.setDataSource(dataSourceConfig);    }    public static void main(String[] args) {        //String[] includeTables = {"hr_kpi_dept_person","sys_user"};        String[] includeTables = {"ETL_MIDDLE_STATE"};        //generateMysql(includeTables,null,false);  //mysql映射文件生成        generateOracle(includeTables,null,false);      //oracle映射文件生成    }}

右键 Run 运行之后就会生成一堆映射文件,将之copy到自己的项目中就可以了

MybatisPlus怎么自动生成映射文件

注意: 生成的dao层文件需要自己添加@Mapper注解

自动映射autoMappingBehavior与mapUnderscoreToCamelCase

autoMappingBehavior

在Mybatis的配置文件中添加settings属性的autoMappingBehavior

<settings> <setting name="autoMappingBehavior" value="NONE"/> </settings>

MybatisPlus怎么自动生成映射文件

autoMappingBehavior有三个属性(默认是PARTIAL)

  • NONE:取消自动映射

  • PARTIAL:只会自动映射,没有定义嵌套结果集映射的结果集

  • FULL:会自动映射任意复杂的结果集(无论是否嵌套)

自动映射的时候sql语句的结果集字段是不区分大小写的,所以映射的pojo成员变量也不需要区分大小写,都可以映射到。

mapUnderscoreToCamelCase

如果数据库符合命名规范,即每个单词之间用下划线连接,pojo类符合驼峰式命名,就可以设置mapUnderscoreToCamelCase为true,这样就可以自动映射。

不用再给select语句的结果集字段起别名来对应pojo类的成员

一个配置完整的 settings 元素的示例如下:

<settings>  <setting name="cacheEnabled" value="true"/>  <setting name="lazyLoadingEnabled" value="true"/>  <setting name="multipleResultSetsEnabled" value="true"/>  <setting name="useColumnLabel" value="true"/>  <setting name="useGeneratedKeys" value="false"/>  <setting name="autoMappingBehavior" value="PARTIAL"/>  <setting name="autoMappingUnknownColumnBehavior" value="WARNING"/>  <setting name="defaultExecutorType" value="SIMPLE"/>  <setting name="defaultStatementTimeout" value="25"/>  <setting name="defaultFetchSize" value="100"/>  <setting name="safeRowBoundsEnabled" value="false"/>  <setting name="mapUnderscoreToCamelCase" value="false"/>  <setting name="localCacheScope" value="SESSION"/>  <setting name="jdbcTypeForNull" value="OTHER"/>  <setting name="lazyLoadTriggerMethods" value="equals,clone,hashCode,toString"/></settings>

以上是“MybatisPlus怎么自动生成映射文件”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网精选频道!

--结束END--

本文标题: MybatisPlus怎么自动生成映射文件

本文链接: https://www.lsjlt.com/news/317070.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MybatisPlus怎么自动生成映射文件
    这篇文章主要为大家展示了“MybatisPlus怎么自动生成映射文件”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“MybatisPlus怎么自动生成映射文件”这篇文章吧。如何自动生成映射文件一、...
    99+
    2023-06-28
  • MybatisPlus如何自动生成映射文件
    目录如何自动生成映射文件一、pom.xml二、MybatisPlusUtil工具类自动映射autoMappingBehavior与mapUnderscoreToCamelCaseau...
    99+
    2024-04-02
  • 使用MyBatis-Generator如何自动生成映射文件
    目录MyBatis-Generator自动生成映射文件1、使用cmd命令方式生成2、使用maven方式生成3、如果开发工具为eclipse自动生成MyBatis映射文件工具问题MyB...
    99+
    2024-04-02
  • mybatisplus之自动映射字段怎么使用
    这篇“mybatisplus之自动映射字段怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“mybatisplus之自动...
    99+
    2023-07-05
  • 怎么利用反射生成MyBatisPlus中QueryWrapper动态条件
    这篇文章主要介绍了怎么利用反射生成MyBatisPlus中QueryWrapper动态条件的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么利用反射生成MyBatisPlus中QueryWrapper动态条件文...
    99+
    2023-06-29
  • Mybatis通过数据库表自动生成实体类和xml映射文件
    环境:maven+idea。 1. 需要的jar包 基本的spring和mybatis依赖包就不说了,在pom文件的build->plugins节点下需要添加(两个依赖包也可以...
    99+
    2024-04-02
  • 如何利用反射生成 MyBatisPlus中QueryWrapper动态条件
    目录1.问题2.优化方案1.问题 在MyBatisPlus中经常会用到如下所示的代码来构造查询条件: QueryWrapper<User> queryWrapper = ...
    99+
    2024-04-02
  • Mybatis如何通过数据库表自动生成实体类和xml映射文件
    本篇内容主要讲解“Mybatis如何通过数据库表自动生成实体类和xml映射文件”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Mybatis如何通过数据库表自动生成实体类和xml映射文件”吧!环境...
    99+
    2023-06-20
  • AbstractProcessor扩展MapStruct自动生成实体映射工具类
    目录1 背景2 现有技术3 扩展设计3.1 mapstruct 介绍3.2 改进方案4 实现4.1 技术依赖4.2 实现步骤5 实践5.1 引入依赖5.2 对象定义5.3 生成结果5...
    99+
    2023-01-28
    AbstractProcessor MapStruct MapStruct实体映射工具类
  • MybatisPlus怎么自定义TypeHandler映射JSON类型为List
    这篇文章将为大家详细讲解有关MybatisPlus怎么自定义TypeHandler映射JSON类型为List,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。自定义TypeHandler映射JSON类型为Li...
    99+
    2023-06-28
  • AbstractProcessor扩展MapStruct如何自动生成实体映射工具类
    今天小编给大家分享一下AbstractProcessor扩展MapStruct如何自动生成实体映射工具类的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,...
    99+
    2023-07-05
  • linux怎么自动生成网卡配置文件
    在Linux系统中,可以通过以下步骤自动生成网卡配置文件:1. 打开终端窗口,并使用超级用户权限登录系统(或者使用sudo命令)。2...
    99+
    2024-02-29
    linux
  • docker怎么映射配置文件
    在Docker中映射配置文件的方法有两种: 使用Docker命令行选项 `-v` 或 `--volume` 来进行映射。该选项用...
    99+
    2023-10-27
    docker
  • mybatisplus自动生成器解析(及遇到的坑)
    目录mybatisplus自动生成器解析1.加入依赖2.写一个类,作为自动生成器的入口3.修改代码3.运行讲解一下mybatisplus代码生成器使用及注意事项1.添加maven依赖...
    99+
    2024-04-02
  • idea怎么创建mapper映射文件
    创建一个Mapper映射文件,可以按照以下步骤进行:1. 在`src/main/resources`目录下创建一个新的文件夹,例如`...
    99+
    2023-09-16
    idea mapper
  • django怎么自动生成接口文档
    Django没有内置的功能来自动生成接口文档,但是可以使用第三方工具来实现自动生成接口文档。 以下是一些常用的自动生成接口文档的工具...
    99+
    2023-10-23
    django
  • MyBatis中怎么使用自动映射功能
    在 MyBatis 中使用自动映射功能,需要在映射文件中配置 resultMap 元素,并设置 autoMapping 属性为 tr...
    99+
    2024-03-07
    MyBatis
  • shell脚本怎么自动生成文件开头注释
    今天给大家介绍一下shell脚本怎么自动生成文件开头注释。文章的内容小编觉得不错,现在给大家分享一下,觉得有需要的朋友可以了解一下,希望对大家有所帮助,下面跟着小编的思路一起来阅读吧。在工作时我们编写bash脚本需要在shell中写注释,每...
    99+
    2023-06-28
  • MybatisPlus代码生成器含XML文件详解
    目录MybatisPlus代码生成器含XML所需依赖代码如下MybatisPlus代码生成器,自用版本不带xmlMybatisPlus代码生成器含XML 所需依赖         &...
    99+
    2024-04-02
  • IDEA好用插件:MybatisX快速生成接口实体类mapper.xml映射文件
    目录  1、在Idea中找到下载插件,Install,重启Idea  2、一个测试java文件,里面有com包  3、在Idea中添加数据库 --------以Oracle数据库为例  4、快速生成entity-service-mapper...
    99+
    2023-08-31
    intellij-idea java mybatis
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作