github项目地址
使用很简单,只需要配置四点:
1.需要生成的表
2.作者名字
3.数据库连接
4.定义自己的包结构 (图中已经标注了对应关系,直接生成也行,生成后改一下package)
配置好后直接执行main方法即可。
pom.xml和工具类(MpGeneratorUtil.java)代码都在下面,只要有这两个文件就可以运行了,里面的注释也写的很清楚,喜欢的可以拿到自己的其他项目去用,别忘了点个赞,谢谢~
<dependencies>
<!--加上这个生成的类就不会报错-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.3.5.RELEASE</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.22</version>
<!--只在运行时生效,其他情况不可引用-->
<!--<scope>runtime</scope>-->
</dependency>
<!-- mybatis-plus逆向工程插件-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.4.1</version>
</dependency>
<!--模板引擎,依赖此引擎生成各种文件-->
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.3</version>
</dependency>
<!--日志文件功能-->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.25</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.21</version>
</dependency>
</dependencies>
package com.shixin;
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.GlobalConfig;
import com.baomidou.mybatisplus.generator.config.PackageConfig;
import com.baomidou.mybatisplus.generator.config.StrategyConfig;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import java.io.File;
import java.io.IOException;
/**
* @Description mybatis-plus配置类
* @Author shixin
* @Date: 2021/6/20 3:06
*/
public class MpGeneratorUtil {
//对哪些表进行自动生成 , TABLENAME = {} 会对所有的表都进行生成
private static String[] TABLENAME = {"test1","test2"};
//作者信息,会自动添加到文件内
private static String AUTHOR = "shixin";
//数据库连接
private static String DRIVENAME = "com.mysql.cj.jdbc.Driver"; //驱动,如果版本低于8.0,首先需要更换jar包,此处使用com.mysql.jdbc.Driver
private static String DATABASE = "jdbc:mysql://localhost:3306/tablename"; //数据库连接url
private static String USERNAME = "root"; //账号
private static String PASSWORD = "root"; //密码
//对应的包名,第一个为父级包名,其余为子级包名,可以根据需求更改。
//如下配置会生成 com.shixin.mapper com.shixin.service com.shixin.controller ...
//子包也可以为 xx.xx 格式来代表生成多层文件夹
private static String PARENT_PACKAGE = "com.shixin"; //基础包
private static String CONTROLLER_FOLERNAME = "controller"; //controller
private static String MAPPER_FOLERNAME = "mapper"; //Mapper类Java文件 ,也可以叫做dao层文件
private static String XML_FOLERNAME = "mapperxml"; //XML文件
private static String ENTITY_FOLERNAME = "pojo"; //pojo类文件
private static String SERVICE_FOLERNAME = "service"; //service
public static void main(String[] args) throws IOException {
File directory = new File("");//参数为空
String courseFile = directory.getCanonicalPath();
//1. 全局配置
GlobalConfig config = new GlobalConfig();
config.setActiveRecord(true) // 是否支持AR模式
.setAuthor(AUTHOR) // 作者
.setOutputDir(courseFile+"\\src\\main\\java") // 生成路径
.setFileOverride(true) // 文件覆盖
.setIdType(IdType.AUTO) // 主键策略
.setServiceName("%sService") // 设置生成的service接口的名字的首字母是否为I
// IEmployeeService
.setBaseResultMap(true)//生成基本的resultMap
.setBaseColumnList(true);//生成基本的SQL片段
//2. 数据源配置
DataSourceConfig dsConfig = new DataSourceConfig();
dsConfig.setDbType(DbType.MYSQL) // 设置数据库类型
.setDriverName(DRIVENAME)
.setUrl(DATABASE)
.setUsername(USERNAME)
.setPassword(PASSWORD);
//3. 策略配置globalConfiguration中
StrategyConfig stConfig = new StrategyConfig();
stConfig.setCapitalMode(true) //全局大写命名
.setNaming(NamingStrategy.underline_to_camel) // 数据库表映射到实体的命名策略:这里使用的是驼峰转换
.setInclude(TABLENAME); // 生成的表
//4. 包名策略配置
PackageConfig pkConfig = new PackageConfig();
pkConfig.setParent(PARENT_PACKAGE)
.setMapper(MAPPER_FOLERNAME)//dao
.setService(SERVICE_FOLERNAME)//servcie
.setController(CONTROLLER_FOLERNAME)//controller
.setEntity(ENTITY_FOLERNAME)
.setXml(XML_FOLERNAME);//mapper.xml
//5. 整合配置
AutoGenerator ag = new AutoGenerator();
ag.setGlobalConfig(config)
.setDataSource(dsConfig)
.setStrategy(stConfig)
.setPackageInfo(pkConfig);
//6. 执行
ag.execute();
}
}
第二步,集成,做个笔记,以防忘记:
①添加依赖:
<!-- Mybatis plus 相关注解在里面-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.2</version>
</dependency>
<!-- 利用此jar包生成的文件 当然需要用此jar包来读取解析 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.4.1</version>
</dependency>
②随后将相关文件复制粘贴进项目
③修改配置文件:
mybatis-plus:
type-aliases-package: com.shixin.pojo #对应的pojo包
mapper-locations: classpath:mapper/*.xml #xml文件一般都放在resources/mapper下的,根据自己需求修改
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #日志打印
④启动类添加注解:
@SpringBootApplication
@MapperScan(basePackages = {"com.shixin.mapper"})
public class ApiApplication {
public static void main(String[] args) {
SpringApplication.run(ApiApplication.class,args);
}
}
扫描的是 @MapperScan注解扫描的是com.shixin.mapper下的所有XxxMapper.java文件
⑤启动~
----------------------------
分页插件的配置:
1.添加pom依赖:
<!--Mybatis分页插件-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.3.1</version>
</dependency>
2.修改配置文件application.yml
#分页插件配置
pagehelper:
helper-dialect: mysql
support-methods-arguments: true
3.使用
PageHelper.startPage(page, pageSize);
List<myVO> list = myMapper.queryList();
return list ;
需要返回什么可以根据需求自己构造,如由Mybatis提供的
PageInfo<?> pageList = new PageInfo<>(list);