springboot学习(一)

springboot学习(一)_第1张图片

整合JUnit

 名称:@SpringBootTest
 类型:测试类注解
 位置:测试类定义上方
 作用:设置JUnit加载的SpringBoot启动类
 范例:
@SpringBootTest
class Springboot05JUnitApplicationTests {}
springboot学习(一)_第2张图片

SpringBoot整合MyBatis-Plus

①:手动添加SpringBoot整合MyBatis-Plus的坐标,可以通过mvnrepository获取

<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.3</version>
</dependency>

由于SpringBoot中未收录MyBatis-Plus的坐标版本,需要指定对应的Version

②:定义数据层接口与映射配置,继承BaseMapper

@Mapper
public interface UserDao extends BaseMapper<User> {
}

 配置数据源与MyBatisPlus对应的基础配置(id生成策略使用数据库自增策略)

spring:
datasource:
druid:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/ssm_db?servierTimezone=UTC
username: root
password: root
mybatis-plus:
global-config:
db-config:
table-prefix: tbl_
id-type: auto

 为方便调试可以开启MyBatisPlus的日志

mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

数据层开发————分页功能

 分页操作需要设定分页对象IPage

@Test
void testGetPage(){
IPage page = new Page(1,5);
bookDao.selectPage(page,null);
}

 IPage对象中封装了分页操作中的所有数据
 数据
 当前页码值
 每页数据总量
 最大页码值
 数据总量

分页操作是在MyBatisPlus的常规操作基础上增强得到,内部是动态的拼写SQL语句,因此需要增强对应的功能,

使用MyBatisPlus拦截器实现

@Configuration
public class MpConfig {
@Bean
public MybatisPlusInterceptor mpInterceptor() {
//1.定义Mp拦截器
MybatisPlusInterceptor mpInterceptor = new MybatisPlusInterceptor();
//2.添加具体的拦截器
mpInterceptor.addInnerInterceptor(new PaginationInnerInterceptor());
return mpInterceptor;
}
}

 使用QueryWrapper对象封装查询条件,推荐使用LambdaQueryWrapper对象,所有查询操作封装成方法调用

@Test
void testGetByCondition(){
IPage page = new Page(1,10);
LambdaQueryWrapper<Book> lqw = new LambdaQueryWrapper<Book>();
lqw.like(Book::getName,"Spring");
bookDao.selectPage(page,lqw);
}
@Test
void testGetByCondition(){
QueryWrapper<Book> qw = new QueryWrapper<Book>();
qw.like("name","Spring");
bookDao.selectList(qw);
}

支持动态拼写查询条件

springboot学习(一)_第3张图片
springboot学习(一)_第4张图片
springboot学习(一)_第5张图片
springboot学习(一)_第6张图片
springboot学习(一)_第7张图片
springboot学习(一)_第8张图片
在这里插入图片描述
springboot学习(一)_第9张图片
对异常进行统一处理,出现异常后,返回指定信息
springboot学习(一)_第10张图片
springboot学习(一)_第11张图片

日志

springboot学习(一)_第12张图片

日志级别

 TRACE:运行堆栈信息,使用率低
 DEBUG:程序员调试代码使用
 INFO:记录运维过程数据
 WARN:记录运维过程报警数据
 ERROR:记录错误堆栈信息
 FATAL:灾难信息,合并计入ERROR
springboot学习(一)_第13张图片
springboot学习(一)_第14张图片
springboot学习(一)_第15张图片
 使用lombok提供的注解@Slf4j简化开发,减少日志对象的声明操作

@Slf4j
@RestController
@RequestMapping("/books")
public class BookController {
    @GetMapping
 	  public String getById(){
 	   System.out.println("springboot is running...");
  	 	 log.debug("debug info...");
   		 log.info("info info...");
		log.warn("warn info...");
		log.error("error info...");
		return "springboot is running...";
	}
}

springboot学习(一)_第16张图片

数据校验

开启数据校验有助于系统安全性,J2EE规范中JSR303规范定义了一组有关数据校验相关的API

<dependency>    
<groupId>javax.validation</groupId>   
 <artifactId>validation-api</artifactId></dependency><dependency>    <groupId>org.hibernate.validator</groupId>    <artifactId>hibernate-validator</artifactId></dependency>

springboot学习(一)_第17张图片
springboot学习(一)_第18张图片

业务层测试事务回滚

springboot学习(一)_第19张图片
springboot学习(一)_第20张图片
springboot学习(一)_第21张图片
springboot学习(一)_第22张图片
springboot学习(一)_第23张图片

你可能感兴趣的:(spring全家桶,spring,boot,学习,mybatis)