一、准备工作
1.pom文件中添加web依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
2.集成mybatis(mybatis不是官方的启动器)
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.4</version>
</dependency>
3.数据库依赖以及lombok
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.27</version>
</dependency>
二、配置编写
1.在properties或者yml中添加数据源配置
server:
port: 8080
spring:
datasource:
username: root
password: 123456
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/www?useSSL=false&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&allowPublicKeyRetrieval=true
mybatis:
mapper-locations: classpath*:mapper/*.xml
type-aliases-package: com.sjy.code.pojo
configuration:
map-underscore-to-camel-case: true
2.为了更好的生成代码,可以引入一个类
内容为
package org.mybatis.generator.plugins; import lombok.extern.slf4j.Slf4j; import org.mybatis.generator.api.IntrospectedColumn; import org.mybatis.generator.api.IntrospectedTable; import org.mybatis.generator.api.Plugin; import org.mybatis.generator.api.PluginAdapter; import org.mybatis.generator.api.dom.java.*; import java.time.LocalDateTime; import java.util.List; /** * @author hgh */ @Slf4j public class MyBatisPlugin extends PluginAdapter { @Override public boolean validate(List<String> list) { return true; } @Override public boolean modelBaseRecordClassGenerated(TopLevelClass topLevelClass, IntrospectedTable introspectedTable) { boolean hasLombok = Boolean.parseBoolean(getProperties().getProperty("hasLombok", "false")); log.warn("hasLombok:\t" + hasLombok); if (hasLombok) { topLevelClass.addImportedType("lombok.Data"); topLevelClass.addImportedType("lombok.NoArgsConstructor"); topLevelClass.addImportedType("lombok.AllArgsConstructor"); topLevelClass.addImportedType("lombok.experimental.Accessors"); topLevelClass.addAnnotation("@Data"); topLevelClass.addAnnotation("@NoArgsConstructor"); topLevelClass.addAnnotation("@AllArgsConstructor"); topLevelClass.addAnnotation("@Accessors(chain = true)"); } topLevelClass.addJavaDocLine("/**"); String remarks = introspectedTable.getRemarks(); log.error("@table\t" + remarks); StringBuilder sb = new StringBuilder(); topLevelClass.addJavaDocLine(" * "+remarks + "\t" + introspectedTable.getFullyQualifiedTable()); topLevelClass.addJavaDocLine(" * @author My"); topLevelClass.addJavaDocLine(" * @date " + LocalDateTime.now()); topLevelClass.addJavaDocLine(" */"); return true; } @Override public boolean modelFieldGenerated(Field field, Top