一篇超详细的SpringBoot整合MybatisPlus的文章
程序员文章站
2022-03-10 20:52:14
目录创建个springboot项目勾选生所需的依赖:我把application的后缀改为.yml了,方便些。 pom.xml:
创建个springboot项目
勾选生所需的依赖:
我把application的后缀改为.yml了,方便些。
pom.xml:
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelversion>4.0.0</modelversion> <parent> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-parent</artifactid> <version>2.4.4</version> <relativepath/> <!-- lookup parent from repository --> </parent> <groupid>com.keafmd</groupid> <artifactid>springboot-mybatisplus</artifactid> <version>0.0.1-snapshot</version> <name>springboot-mybatisplus</name> <description>demo project for spring boot</description> <properties> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-jdbc</artifactid> </dependency> <dependency> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-web</artifactid> </dependency> <dependency> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-devtools</artifactid> <scope>runtime</scope> <optional>true</optional> </dependency> <dependency> <groupid>mysql</groupid> <artifactid>mysql-connector-java</artifactid> <scope>runtime</scope> </dependency> <dependency> <groupid>org.projectlombok</groupid> <artifactid>lombok</artifactid> <optional>true</optional> </dependency> <dependency> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-test</artifactid> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-maven-plugin</artifactid> <configuration> <excludes> <exclude> <groupid>org.projectlombok</groupid> <artifactid>lombok</artifactid> </exclude> </excludes> </configuration> </plugin> </plugins> </build> </project>
因为我们配置了数据源,所以需要在application.yml中配置下数据源,不然会起不来,我顺便也改了下端口。
application.yml:
server: port: 80 spring: datasource: url: jdbc:mysql://127.0.0.1:3306/ssm-java1?usessl=false&&characterencoding=utf-8 driver-class-name: com.mysql.cj.jdbc.driver username: root password: 18044229
写个hellocontroller测试下
hellocontroller:
package com.keafmd.controller; import org.springframework.web.bind.annotation.requestmapping; import org.springframework.web.bind.annotation.restcontroller; /** * keafmd * * @classname: hellocontroller * @description: * @author: 牛哄哄的柯南 * @date: 2021-04-09 11:11 * @blog: https://keafmd.blog.csdn.net/ */ @restcontroller public class hellocontroller { @requestmapping("/hello") public string hello(){ return "keafmd"; } }
运行启动类,访问:http://127.0.0.1/hello
到此证明springboot没有问题。
使用代码生成器生成代码
添加所需的依赖
pom.xml中添加以下依赖:
<dependency> <groupid>com.baomidou</groupid> <artifactid>mybatis-plus-generator</artifactid> <scope>test</scope> <version>3.4.0</version> </dependency> <dependency> <groupid>org.freemarker</groupid> <artifactid>freemarker</artifactid> <scope>test</scope> <version>2.3.31</version> </dependency>
由于代码生成器并不会在生产环境使用,只是在开发环境中使用了下。所以我们把代码生成器写在test包中即可,依赖的使用场景也定义成test即可。
codegenerator
codegenerator:
package com.keafmd.mp; import com.baomidou.mybatisplus.core.exceptions.mybatisplusexception; import com.baomidou.mybatisplus.core.toolkit.stringpool; import com.baomidou.mybatisplus.core.toolkit.stringutils; import com.baomidou.mybatisplus.generator.autogenerator; import com.baomidou.mybatisplus.generator.injectionconfig; import com.baomidou.mybatisplus.generator.config.*; import com.baomidou.mybatisplus.generator.config.po.tableinfo; import com.baomidou.mybatisplus.generator.config.rules.namingstrategy; import com.baomidou.mybatisplus.generator.engine.freemarkertemplateengine; import java.util.arraylist; import java.util.list; import java.util.scanner; /** * keafmd * * @classname: codegenerator * @description: * @author: 牛哄哄的柯南 * @date: 2021-03-23 21:47 */ // 演示例子,执行 main 方法控制台输入模块表名回车自动生成对应项目目录中 public class codegenerator { /** * <p> * 读取控制台内容 * </p> */ public static string scanner(string tip) { scanner scanner = new scanner(system.in); stringbuilder help = new stringbuilder(); help.append("请输入" + tip + ":"); system.out.println(help.tostring()); if (scanner.hasnext()) { string ipt = scanner.next(); if (stringutils.isnotblank(ipt)) { return ipt; } } throw new mybatisplusexception("请输入正确的" + tip + "!"); } public static void main(string[] args) { // 代码生成器 autogenerator mpg = new autogenerator(); // 全局配置 globalconfig gc = new globalconfig(); string projectpath = system.getproperty("user.dir"); // system.out.println("projectpath = " + projectpath); gc.setoutputdir(projectpath + "/src/main/java"); // gc.setoutputdir("d:\\test"); gc.setauthor("关注公众号:牛哄哄的柯南"); gc.setopen(false); // gc.setswagger2(true); 实体属性 swagger2 注解 gc.setservicename("%sservice"); mpg.setglobalconfig(gc); // 数据源配置 datasourceconfig dsc = new datasourceconfig(); dsc.seturl("jdbc:mysql://localhost:3306/ssm-java1?useunicode=true&usessl=false&characterencoding=utf8&servertimezone=utc"); // dsc.setschemaname("public"); dsc.setdrivername("com.mysql.cj.jdbc.driver"); dsc.setusername("root"); dsc.setpassword("18044229"); mpg.setdatasource(dsc); // 包配置 packageconfig pc = new packageconfig(); pc.setmodulename(null); pc.setparent("com.keafmd"); mpg.setpackageinfo(pc); // 自定义配置 injectionconfig cfg = new injectionconfig() { @override public void initmap() { // to do nothing } }; // 如果模板引擎是 freemarker string templatepath = "/templates/mapper.xml.ftl"; // 如果模板引擎是 velocity // string templatepath = "/templates/mapper.xml.vm"; // 自定义输出配置 list<fileoutconfig> foclist = new arraylist<>(); // 自定义配置会被优先输出 foclist.add(new fileoutconfig(templatepath) { @override public string outputfile(tableinfo tableinfo) { // 自定义输出文件名 , 如果你 entity 设置了前后缀、此处注意 xml 的名称会跟着发生变化!! return projectpath + "/src/main/resources/mapper/" + "/" + tableinfo.getentityname() + "mapper" + stringpool.dot_xml; } }); cfg.setfileoutconfiglist(foclist); mpg.setcfg(cfg); // 配置模板 templateconfig templateconfig = new templateconfig(); templateconfig.setxml(null); mpg.settemplate(templateconfig); // 策略配置 strategyconfig strategy = new strategyconfig(); strategy.setnaming(namingstrategy.underline_to_camel); strategy.setcolumnnaming(namingstrategy.underline_to_camel); strategy.setentitylombokmodel(true); strategy.setrestcontrollerstyle(true); strategy.setinclude(scanner("表名,多个英文逗号分割").split(",")); strategy.setcontrollermappinghyphenstyle(true); strategy.settableprefix("m_"); mpg.setstrategy(strategy); mpg.settemplateengine(new freemarkertemplateengine()); mpg.execute(); } }
运行代码生成器,在控制台输入想要生成的表
这样就会生成一些包及相应的代码,注意codegenerator中的相关代码(如数据库的,包名的)需要该成你们需要的。
总结
本篇文章就到这里了,希望能给你带来帮助,也希望您能够多多关注的更多内容!
推荐阅读
-
权重低的网站更新一篇好文章 如何点击超万次
-
一篇超详细的Vue-Router手把手教程
-
SpringBoot整合Spring Security的详细教程
-
Springboot整合Freemarker的实现详细过程
-
SpringBoot2.x整合MybatisPlus3.x,实现数据的简单CRUD操作+****代码生成
-
接之前的文章,VS2017中使用Spring.NET配置以及使用方法(framework4.6.1超详细)
-
springboot植入pagerHelper的超详细教程
-
SpringBoot 整合 Docker的详细过程
-
idea整合docker快速部署springboot应用的详细过程
-
从零搭建SpringBoot2.X整合Redis框架的详细教程