创建springboot项目,选择图片中所示依赖



mybatis-plus生成的依赖


<!-- mybatis_plus -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.2.0</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.2.0</version>
</dependency>
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.28</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.47</version>
</dependency>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.0</version>
</dependency>

自动生成代码


import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.*;
import com.baomidou.mybatisplus.generator.config.po.TableFill;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy; import java.util.ArrayList; /**
* 自动生成
*/
public class generate {
public static void main(String[] args) {
// 代码生成器
AutoGenerator mpg = new AutoGenerator(); // 全局配置
GlobalConfig gc = new GlobalConfig();
String projectPath = System.getProperty("user.dir");//获取当前的路径
gc.setOutputDir(projectPath + "/src/main/java");//在当前路径上加上这个路径
gc.setAuthor("name");//添加作者信息
gc.setOpen(false);//是否打开资源管理器
gc.setFileOverride(false);//是否覆盖文件
gc.setServiceName("%sService");//去除服务接口service前缀
gc.setIdType(IdType.ID_WORKER);//使用默认主键
gc.setDateType(DateType.ONLY_DATE);//设置默认的时间格式
gc.setSwagger2(false); //实体属性 Swagger2 注解
mpg.setGlobalConfig(gc);//把全局配置放入代码生成器中 // 数据源配置
DataSourceConfig dsc = new DataSourceConfig();
//在这里需要改成你自己的数据库
dsc.setUrl("jdbc:mysql://localhost:3306/test?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true");
dsc.setDriverName("com.mysql.cj.jdbc.Driver");
dsc.setUsername("root");//用户名
dsc.setPassword("root");//密码
dsc.setDbType(DbType.MYSQL);//设置默认类型
mpg.setDataSource(dsc);//将数据源配置放入代码生成器中 // 包配置
PackageConfig pc = new PackageConfig();
//这里需要设置自己的包路径名
pc.setModuleName("generate");//设置模块名
pc.setParent("com");//设置包名,这样com.zjh.mybatis
pc.setEntity("entity");//设置实体类的包名
pc.setMapper("mapper");//设置持久层的包名
pc.setService("service");//设置业务层的包名
pc.setController("controller");//设置表现层(控制层)的包名
mpg.setPackageInfo(pc);//将包的配置放入到自动代码生成器中 // 策略配置
StrategyConfig strategy = new StrategyConfig();
strategy.setInclude("leader_schedule_main");//设置要包含生成的表,生成多个表以逗号相隔,例如strategy.setInclude("表1","表2");
strategy.setNaming(NamingStrategy.underline_to_camel);//设置驼峰命名的自动映射
strategy.setColumnNaming(NamingStrategy.underline_to_camel);//设置列名的驼峰命名自动映射
strategy.setEntityLombokModel(true);//设置是否支持lombok
strategy.setRestControllerStyle(true); strategy.setLogicDeleteFieldName("deleted");//自动配置逻辑删除字段
//自动填充配置
TableFill gmtCreate = new TableFill("gmt_create", FieldFill.INSERT);
TableFill gmtModified = new TableFill("gmt_modified", FieldFill.INSERT);
//创建一个list集合,把两个自动填充策略加入到这个集合
ArrayList<TableFill> tableFill = new ArrayList<>();
tableFill.add(gmtCreate);
tableFill.add(gmtModified);
strategy.setTableFillList(tableFill);//把自动填充放入到配置策略
strategy.setVersionFieldName("version");//开启乐观锁
strategy.setRestControllerStyle(true);//配置restful的风格的驼峰命名
strategy.setControllerMappingHyphenStyle(true);//url多字段的/变成_下划线
mpg.setStrategy(strategy);//把所有策略放入自动代码生成器中
mpg.execute();//执行
}
}

配置文件

# 应用名称
spring.application.name=mybatis_plus
# 应用服务 WEB 访问端口
server.port=8080 **加不加都行,后面这些是使用生成文件对数据库操作的**
#配置数据源
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/test?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true
spring.datasource.username=root
spring.datasource.password=root
# mybatis_plus配置
# 当为true时:mybatis-plus会将Java对象的驼峰式命名的常量转成下划线的方式,再与数据库表列字段进行匹配,这样会造成错误。 此时需要利用@TableField注解指定常量在表中的列名。
# 当为false时:此时就需要数据库里每列都是下划线的命名方式。
mybatis-plus.configuration.map-underscore-to-camel-case=true
# autoMappingBehavior有三个属性(默认是PARTIAL)
# NONE:取消自动映射
# PARTIAL:只会自动映射,没有定义嵌套结果集映射的结果集
# FULL:会自动映射任意复杂的结果集(无论是否嵌套)
# 自动映射的时候sql语句的结果集字段是不区分大小写的,所以映射的pojo成员变量也不需要区分大小写,都可以映射到
mybatis-plus.configuration.auto-mapping-behavior=full
# mybatis-plus输出日志配置
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
# 配置mapper xml文件的路径(扫描mapper文件下的xml)因为导出的xml文件再 src/main/java/ 跟我们配置的扫描不匹配 所以把配置文件挪到,resources下
mybatis-plus.mapper-locations=classpath:xml/*.xml

springboot整合mybatis_plus经常遇见的错误

Invalid bound statement (not found)出现原因和解决方法
常见的错误如下:
1.mapper.xml中的namespace和实际的mapper文件位置不一致 2.mapper接口中的方法名和mapper.xml中的id标签不一致 3.可能没有构建到target中,如果不在可粘贴进去继续执行
添加以下代码到pom文件中,<build></build>中,这样就可以构建进去了 <!-- 如果不添加此节点mybatis的mapper.xml文件都会被漏掉。 -->
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>

最新文章

  1. 【热文】 为什么很多硅谷工程师偏爱 OS X,而不是 Linux 或 Windows?
  2. Snapshot Instance 操作详解 - 每天5分钟玩转 OpenStack(36)
  3. poj2109
  4. 启动hadoop报192.168.1.151: Address 192.168.1.151 maps to node1, but this does not map back to the address - POSSIBLE BREAK-IN ATTEMPT!
  5. mysql优化 mysql explain
  6. JavaScript(十一) HTML DOM - 改变CSS
  7. PL/SQL — 变长数组
  8. iOS 跳转至 指定 StoryBoard 中 指定的 Scene
  9. O-C相关-09-id 类型与应用
  10. gulp简单使用小记
  11. SQL开发中容易忽视的一些小地方(一)
  12. 字符串---分割成数组(str_split ),算出一个字符串中出现最多的字符, 学校中最多的姓名
  13. React文档(十九)不使用ES6
  14. Java实训:实训一 ——长春职业技术学院 16级网络工程
  15. 百度软件开发实习生c++方向面经(一面)
  16. Manager解决Process进程之间的数据访问
  17. 可在广域网部署运行的即时通讯系统 -- GGTalk总览(附源码下载)
  18. hibernate对查询的几个知识点
  19. php 中的信号处理
  20. CAN总线协议 学习笔记

热门文章

  1. DataRow修改某一Cell的值
  2. Oracle 服务器迁移的一些经验
  3. 前端Long类型丢失精度问题
  4. Kotlin快速上手
  5. 关于 Math.random()生成指定范围内的随机数的公式推导
  6. ping: sina.cn: Name or service not known
  7. Linux有趣命令
  8. 为什么Index Only Scan却还需要访问表
  9. 【Android 逆向】ARM switch 逆向
  10. elementUI中page(分页)的使用方法