Spring Boot与Mybatis-Plus整合,以及整合代码生成器

在parent模块中确定依赖的版本

确定依赖的版本

<!--确定依赖的版本-->
<properties><mybatis-plus.version>3.0.5</mybatis-plus.version><velocity.version>2.0</velocity.version><fastjson.version>1.2.28</fastjson.version>
</properties>

锁定依赖的版本

<!--mybatis-plus 持久层-->
<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>${mybatis-plus.version}</version>
</dependency><!-- velocity 模板引擎, Mybatis Plus 代码生成器需要 -->
<dependency><groupId>org.apache.velocity</groupId><artifactId>velocity-engine-core</artifactId><version>${velocity.version}</version>
</dependency><!--fastjson-->
<dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>${fastjson.version}</version>
</dependency>

在service模块引入父级依赖包,提供给他的子模块service_user使用

<!--mybatis-plus-->
<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId>
</dependency><!-- velocity 模板引擎, Mybatis Plus 代码生成器需要 -->
<dependency><groupId>org.apache.velocity</groupId><artifactId>velocity-engine-core</artifactId>
</dependency><!--fastjson-->
<dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId>
</dependency>

配置application.properties

加入Mybatis-Plus配置

#配置mapper xml文件的路径
mybatis-plus.mapper-locations=classpath:com/itydf/eduservice/mapper/xml/*.xml
# mybatis日志
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

完整application.properties

# 服务端口
server.port=9901# 环境设置:dev、test、prod
spring.profiles.active=dev# mysql数据库连接
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/db_itcloud?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8
spring.datasource.username=root
spring.datasource.password=123456#返回json的全局时间格式
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
spring.jackson.time-zone=GMT+8#配置mapper xml文件的路径
mybatis-plus.mapper-locations=classpath:com/itydf/eduservice/mapper/xml/*.xml# mybatis日志
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

在CrmUserApplication启动类中加入mapper扫描

@MapperScan("com.itydf.eduservice.mapper")

使用Mybatis-Plus代码生成器创建controller、service、mapper、entity等基本代码

在test模块测试中创建一个代码生成器类,如下:

/*** @author yandongfa* @since 2020/5/12*/
public class CodeGenerator {@Testpublic void run() {// 1、创建代码生成器AutoGenerator mpg = new AutoGenerator();// 2、全局配置GlobalConfig gc = new GlobalConfig();String projectPath = System.getProperty("user.dir");//本地项目的绝对路径gc.setOutputDir("F:\\SpringBoot_Project\\itydf_parent\\service\\service_user" + "/src/main/java");//添加注释gc.setAuthor("yandongfa");gc.setOpen(false);                  //生成后是否打开资源管理器gc.setFileOverride(false);          //重新生成时文件是否覆盖//比如默认IUserService去掉Igc.setServiceName("%sService");       //去掉Service接口的首字母Igc.setIdType(IdType.ID_WORKER);      //主键策略gc.setDateType(DateType.ONLY_DATE);  //定义生成的实体类中日期类型gc.setSwagger2(false);                //不开启Swagger2模式mpg.setGlobalConfig(gc);// 3、数据源配置DataSourceConfig dsc = new DataSourceConfig();dsc.setUrl("jdbc:mysql://localhost:3306/db_itcloud?serverTimezone=GMT%2B8");dsc.setDriverName("com.mysql.cj.jdbc.Driver");dsc.setUsername("root");dsc.setPassword("123456");dsc.setDbType(DbType.MYSQL);mpg.setDataSource(dsc);// 4、包配置PackageConfig pc = new PackageConfig();pc.setModuleName("eduservice"); //模块名//会创建如:com.itydf.eduservice.controller包pc.setParent("com.itydf");pc.setController("controller");pc.setEntity("entity");pc.setService("service");pc.setMapper("mapper");mpg.setPackageInfo(pc);// 5、策略配置StrategyConfig strategy = new StrategyConfig();//表名称修改strategy.setInclude("crm_user");strategy.setNaming(NamingStrategy.underline_to_camel);//数据库表映射到实体的命名策略strategy.setTablePrefix(pc.getModuleName() + "_"); //生成实体时去掉表前缀strategy.setColumnNaming(NamingStrategy.underline_to_camel);//数据库表字段映射到实体的命名策略strategy.setEntityLombokModel(true); // lombok 模型 @Accessors(chain = true) setter链式操作strategy.setRestControllerStyle(true); //restful api风格控制器strategy.setControllerMappingHyphenStyle(true); //url中驼峰转连字符mpg.setStrategy(strategy);// 6、执行mpg.execute();}
}

先在本地创建一个数据库,新建一张表为crm_user,根据需求,再运行该代码。

创建数据库,创建crm_user表

DROP TABLE IF EXISTS `crm_user`;
CREATE TABLE `crm_user` (`id` int(11) NOT NULL AUTO_INCREMENT,`userName` varchar(255) DEFAULT NULL,`password` varchar(255) DEFAULT NULL,`createTime` datetime DEFAULT NULL,`updateTime` datetime DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;INSERT INTO `crm_user` VALUES ('1', 'admin', '123456', '2020-05-12 23:35:27', '2020-05-12 23:35:30');

结果

如下可看到自动生成的结构:

编写CrmUserController.java,测试MySQL连接

Mybatis-Plus代码生成器根据我们配置的规则整合了Mybatis-Plus,直接注入service接口即可使用

@RestController
@RequestMapping("/eduservice/crm-user")
public class CrmUserController {//直接注入CrmUserService@Autowiredprivate CrmUserService crmUserService;/**** 查询用户所有信息* @return*/@GetMapping(value = "list")public List<CrmUser> findAll(){return crmUserService.list(null);   //无条件,查询所有}}

访问接口测试效果

http://localhost:9901/eduservice/crm-user/list

Spring Cloud微服务之Mybatis-Plus代码生成器整合(四)相关推荐

  1. Servlet+MyBatis项目转Spring Cloud微服务,多数据源配置修改建议

    一.项目需求 在开发过程中,由于技术的不断迭代,为了提高开发效率,需要对原有项目的架构做出相应的调整. 二.存在的问题 为了不影响项目进度,架构调整初期只是把项目做了简单的maven管理,引入spri ...

  2. (二)spring cloud微服务分布式云架构 - 整合企业架构的技术点

    spring cloud本身提供的组件就很多,但我们需要按照企业的业务模式来定制企业所需要的通用架构,那我们现在需要考虑使用哪些技术呢? 下面我针对于spring cloud微服务分布式云架构做了以下 ...

  3. spring cloud微服务分布式云架构 - 整合企业架构的技术点

    spring cloud本身提供的组件就很多,但我们需要按照企业的业务模式来定制企业所需要的通用架构,那我们现在需要考虑使用哪些技术呢? 下面我针对于spring cloud微服务分布式云架构做了以下 ...

  4. (二)spring cloud微服务分布式云架构-整合企业架构的技术点

    spring cloud本身提供的组件就很多,但我们需要按照企业的业务模式来定制企业所需要的通用架构,那我们现在需要考虑使用哪些技术呢?Spring Cloud大型企业分布式微服务云架构源码请加一七九 ...

  5. spring cloud微服务分布式云架构-整合企业架构的技术点

    spring cloud本身提供的组件就很多,但我们需要按照企业的业务模式来定制企业所需要的通用架构,那我们现在需要考虑使用哪些技术呢?完整项目的源码来源 技术支持一七九一七四三三八零 下面我针对于s ...

  6. Spring Cloud 微服务项目操作实战流程(完结)

    Spring Cloud入门项目操作实战流程 Day01~02 〇.Service - 业务服务结构 商品服务 item service,端口 8001 用户服务 user service,端口 81 ...

  7. 视频教程-Spring Cloud微服务--入门到精通-Java

    Spring Cloud微服务--入门到精通 本系列课程由多位老师共同录制而成,旨在为想要学习Java的用户提供一套系统的成长方案. Java从入门到进阶 ¥59.00 立即订阅 扫码下载「CSDN程 ...

  8. 企业开发必备的6个Spring Cloud微服务开源项目

    前言 今天介绍六款比较热门的SpringCloud微服务项目,感兴趣的可以clone下来研究一下,相信对你学习微服务架构很有帮助.一键获取源码地址 一.Cloud-Platform 介绍 Cloud- ...

  9. Spring Cloud 微服务讲义

    Spring Cloud 微服务讲义 第一部分 微服务架构 第 1 节 互联网应用架构演进 第 2 节 微服务架构体现的思想及优缺点 第 3 节 微服务架构中的核心概念 第二部分 Spring Clo ...

  10. spring cloud微服务分布式云架构 - 整合企业架构的技术点(二)

    点击上面 免费订阅本账号! 本文作者:it菲菲 原文:https://yq.aliyun.com/articles/672231 点击阅读全文前往 spring cloud本身提供的组件就很多,但我们 ...

最新文章

  1. 服务器安装使用rstudio-server
  2. python免费入门教程-python入门免费教程看这些就够了
  3. 初学laravel migrate常见错误解决
  4. 浅谈 iOS 版本号
  5. python在线编辑器最新_Editor.md 二次开发-markdown在线编辑器
  6. python安装模块时读取超时_Windows在pip install tensorflow遇到的问题 一些python安装包的时候,超时问题以及权限问题...
  7. php判断服务器操作系统的类型
  8. Redis4.0.13 安装踩雷记录
  9. Web前端——JavaScript(基本语法)
  10. [转] Android实时抓包分析 : 善用adb调试桥
  11. 我的所有邮箱 My all E-mail
  12. python 项目发布会_发布会直播技术及业务实践
  13. 通过Discuz!搭建一个主题社区
  14. 软件如何上传虚拟服务器,本地软件传到虚拟机上
  15. GoLang的安装和使用
  16. oracle限制条数
  17. Android 截屏实现、屏幕截图、MediaProjection、ImageReader
  18. 深入理解计算机系统arch lab
  19. 7-9 龟兔赛跑 (20分)
  20. yt-dlp教程如何下载高清视频

热门文章

  1. OpenJudge NOI 1.8 15:细菌的繁殖与扩散
  2. 信息学奥赛一本通(1214:八皇后)
  3. Fence Repair(POJ-3253)
  4. 信息学奥赛C++语言:火柴盒
  5. JAVA班级年龄平均值代码_java用list集合存储学生信息并算出成绩平均值操作
  6. 我的世界进入离开服务器消息,我的世界暂时离开状态修改 人性化设定AFK
  7. 为什么openstack要用rabbitmq这类消息中间件来进行RPC这类的操作呢,直接rpc不行吗?
  8. transform中的token理解(单词或词语的标记)
  9. 给图像添加噪声,高斯噪声、椒盐噪声
  10. npm run dev (明明有.vue文件),却报错 cannot GET