springBoot_mybatis整合

文章详细介绍了如何在SpringBoot项目中添加Mybatis和PageHelper的依赖,配置MySQL数据库及C3P0连接池,设置YAML文件,编写Mapper接口和实体类,实现数据查询。此外,还提到了Swagger2用于生成接口文档,热部署,单元测试,以及Ehcache缓存的集成,最后讨论了全局异常处理和数据验证注解的使用。
摘要由CSDN通过智能技术生成

pom.xml添加核心依赖

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.2.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--
mybatis 集成
-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.1</version>
</dependency>
<!-- springboot分页插件 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.13</version>
</dependency>
<!--mysql 驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/com.mchange/c3p0 -->
<dependency>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.5.5</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>

application.yml整合配置

##配置端口号
server:
  port: 8081
## 数据源配置
spring:
  datasource:
    type: com.mchange.v2.c3p0.ComboPooledDataSource
    driver-class-name: com.mysql.cj.jdbc.Driver
                                    ##springboot_mybatis是数据库名
    url: jdbc:mysql://127.0.0.1:3306/springboot_mybatis?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8
    username: root
    password: root

## 整合 mybatis 配置!!!!
mybatis:
  ##映射mapper.xml文件的位置class/mappers/*.xml
    mapper-locations: classpath:/mappers/*.xml
    ##别名
    type-aliases-package: com.xxxx.springboot.vo
    configuration:
## 下划线转驼峰配置
      map-underscore-to-camel-case: true
## pageHelper集成分页插件
pagehelper:
  helper-dialect: mysql
#显示dao层的 执行sql语句
logging:
  level:
    com:
      xxxx:
        springboot:
          dao: debug

SQL映射文件添加

resources/mappers 目录下添加UserMapper.xml 配置查询statetment

        添加约束

<?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指定sql映射的dao下的类的路径

<mapper namespace="com.xxxx.springboot.dao.UserDao">

        接下来就是mapper文件内的增删改查命令

        定义一个实体类存放在vo包下

                实体类的属性对应数据库的指定表中的字段相同

        由dao包下dao接口定义增删改查方法CRUD方法

        servcie层注入dao,编写与dao类中的同名方法

@Service
public class UserService {

    @Resource
    private UserDao userDao;

    public User queryUserByUserName(String username){
       return userDao.queryUserByUserName(username);
    }

再在servlet层中注入service类

        @RestController= @Requestboby+@Controller

        @Resource  注入

        @GetMapping("设置访问这个方法的别名)

        @PathVariable  可以从UI中获取参数

@RestController

public class UserController {
    @Resource
    private UserService userService;

    @GetMapping("user/{userName}")
    public User queryUserByUserName(@PathVariable String userName){
       return userService.queryUserByUserName(userName);
    }

定义一个Util工具类其中的方法存放在static中

        提供判断方法

Swagger2接口文档生成工具

        给前端人员类,方法,属性以及参数都能够进行说明作用的信息

@API

@ApiResponses(@ApiResponses:用于请求的方法上,表示一组响应
@ApiResponse:用在@ApiResponses中,一般用于表达一个错误的响应信息
code:数字,例如400
message:信息,例如"请求参数没填好"
response:抛出异常的类)


@ApiModel(@ApiModel:用于响应类上,表示一个返回响应数据的信息
(这种一般用在post创建的时候,使用@RequestBody这样的场景,
请求参数无法使用@ApiImplicitParam注解进行描述的时候)
@ApiModelProperty:用在属性上,描述响应类的属性)

热部署

        概念:两个类加载器,一个加载未改变的应用程序的字节码信息,一个时刻加载更新的程序字节码信息这样每次对程序进行改变就不用重新启动服务器重新加载了Ctrl+F9快捷键更新

单元测试test(快速检测某个方法,以增强程序的健壮性)

        一个service层的单元测试

        一个controller层的单元测试

 pom文件注入相关依赖

        service层的测试          

/**@springBootTest(classes=starter.class)
 *      指定加载类Starter这个类
 * */
@RunWith(SpringRunner.class)
@SpringBootTest(classes = Starter.class)

分布式缓存Ehcache整合

       1.pom.xml添ehcache坐标和依赖

        2.src/main/resources 目录下添加 ehcache.xml 文件
        3.application.yml中整合ehcache
spring:
datasource:
type: com.mchange.v2.c3p0.ComboPooledDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/springboot_mybatis?
useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8
username: root
password: root
devtools:
restart:
enabled: true
# 设置重启的目录,添加目录的文件需要restart
additional-paths: src/main/java
# 解决项目自动重新编译后接口报404的问题
poll-interval: 3000
quiet-period: 1000
cache:
ehcache:
config: classpath:ehcahe.xml

        4.实体类序列化继承Serializable

        5.Starter启动接口启动缓存 (目的是为了更快访问)       

        @EnableCaching、


//事务管理一般有xml和注解两种方式,

一般采用注解
@Transacation (propahation =Propahation .REQUIRED)

全局异常

@ControllerAdvice
该注解组合了 @Component 注解功能 , 最常用的就是作为全局异常处理的切面类 , 同时通过该注解可
以指定包扫描的范围。 @ControllerAdvice 约定了几种可行的返回值,如果是直接返回 model 类的话,
需要使用 @ResponseBody 进行 json 转换

数据校验的注解

@AssertFalse 可以为null,如果不为null的话必须为false
@AssertTrue 可以为null,如果不为null的话必须为true
@DecimalMax 设置不能超过最大值
@DecimalMin 设置不能超过最小值
@Digits 设置必须是数字且数字整数的位数和小数的位数必须在指定范围内
@Future 日期必须在当前日期的未来
@Past 日期必须在当前日期的过去
@Max 最大不得超过此最大值
@Min 最大不得小于此最小值
@NotNull 不能为null,可以是空
@Pattern 必须满足指定的正则表达式
@Size 集合、数组、map等的size()值必须在指定范围内
@Email 必须是email格式
@Length 长度必须在指定范围内
@NotBlank 字符串不能为null,字符串trin()后也不能等于“”
@NotEmpty 不能为null,集合、数组、map等size()不能为0;字符串trin()后可以等于“”
@Range 值必须在指定范围内
@URL 必须是一个URL

        

        

        

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值