pom文件
dependencyManagement:依赖版本管理(依赖冲突)
starter:依赖配置管理
springboot配置属性查询:docs.spring.io/springboot/…
配置文件中重叠配置优先级(配置不重叠都生效):properties>yml>yaml
将配置文件内容读取为对象:
测试
当测试类不在主启动类包及子包下时找不到配置类需要指定启动类:
@SpringBootTest(classes = Application.class)
SpringBoot整合Mybatis
1.添加依赖
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.2.0</version>
</dependency>
2.配置数据库连接池
datasource:
driver: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/db1?serverTimezone=UTC
username: root
password: 1234
3.mapper层
mapper接口加上@mapper;或者主启动类加上 @MapperScan("com.example.mapper")
4.xml文件
注:当xml文件和mapper目录不同时:
4.1.yml文件配置:
mybatis:
mapper-locations: classpath:mapper/StuMapper.xml
4.2.pom文件配置:
<!--资源路径-->
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
</build>
4.3配置mapper对应xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.mapper.StuMapper">
<select id="selectById" resultType="com.example.entity.Stu">
SELECT * FROM stu WHERE id = #{id}
</select>
</mapper>
springboot整合druid
1.依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.6</version>
</dependency>
2.配置
spring:
datasource:
druid:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/db1?serverTimezone=UTC
username: root
password: 1234
springboot整合mybatis_plus
1.依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.6</version>
</dependency>
2.yml配置
spring:
datasource:
druid:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/ssm_db?serverTimezone=UTC
username: root
password: root
mybatis-plus:
global-config:
db-config:
table-prefix: tbl_ # 表名前缀
id-type: auto # 主键自增
3.开启mybatis日志:
mybatis-plus:
configuration: ## 开启mybatis日志
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
4.mapper层开发
@Mapper
public interface StuMapper extends BaseMapper<Stu> {
}
5.分页
配置分页拦截器:
@Configuration
public class MPConfig {
@Bean
public MybatisPlusInterceptor getMybatisPlusInterceptor() {
MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor());
return mybatisPlusInterceptor;
}
}
分页查询:
@Test
void test05() {
IPage page = new Page(1, 5);
stuMapper.selectPage(page, null);
List stuList = page.getRecords();
System.out.println(stuList);
}
6.条件查询:
@Test
void test06() {
String nameLike = "zzz";
IPage page = new Page(1, 5);
LambdaQueryWrapper<Stu> lqw = new LambdaQueryWrapper<>();
lqw.like(Strings.isNotEmpty(nameLike), Stu::getStuName, nameLike);
stuMapper.selectPage(page, lqw);
System.out.println(page.getRecords());
}
7.service层
public interface StuService extends IService<Stu> {
Stu getById(Integer id);
}
@Service
public class StuServiceImpl extends ServiceImpl<StuMapper, Stu> implements StuService {
@Autowired
private StuMapper stuMapper;
@Override
public Stu getById(Integer id) {
return stuMapper.selectById(id);
}
}
异常统一处理
@RestControllerAdvice
public class GlobalExceptionHandler {
private static final Logger log = LoggerFactory.getLogger(GlobalExceptionHandler.class);
/**
异常统一处理
@Parm e
@return
*/
@ExceptionHandler(Exception.class)
public Rsp<?> handleException(Exception e) {
log.error(e.getMessage(),e);
return Rsp.fail(e.getMessage());
}
}