SpringBoot 整合MyBatis
一、基于注解
- 导入依赖
```xmlorg.mybatis.spring.boot mybatis-spring-boot-starter 2.1.0
- 配置文件 application.yml / application.properties```yaml# datasourcespring:datasource:url: jdbc:mysql://localhost:3306/ssm_db?serverTimezone=UTCusername: rootpassword: 123456driver-class-name: com.mysql.cj.jdbc.Driver
- 编写mapper
```java package com.itheima.springbootmybatis.mapper;
import com.itheima.springbootmybatis.domain.User; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Select; import org.springframework.stereotype.Repository;
@Mapper @Repository public interface UserMapper {
@Select("select * from user")public List<User> findAll();
}
<a name="88baa094"></a>### 二、基于配置文件- 导入依赖(同注解方式)- 配置文件 application.yml / application.properties- springboot- <br />```yaml# 数据库连接spring:datasource:url: jdbc:mysql://192.168.31.81:3306/mytanhua?useUnicode=true&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=true&useSSL=false#url: jdbc://192.168.31.81:3306/mytanhua?serverTimezone=UTCdriver-class-name: com.mysql.jdbc.Driverusername: rootpassword: root# MyBatis 使用注解开发就不需要mybatis的配置了mybatis:mapper-locations: classpath:mapper/*Mapper.xml #mapper的映射文件路径type-aliases-package: com.test.pojo #实体类的别名映射# config-location: 用于指定核心配置文件
- mapper映射
<?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.test.mapper.UserXmlMapper"><select id="findAllList" resultType="User">SELECT * from tb_user</select></mapper>
编写mapper
@Mapper@Repositorypublic interface UserXmlMapper {public List<User> findAll();}
SpringBoot 整合Junit
依赖
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency>
在Test目录下创建测试类
如果测试类的包名与SpringBoot启动类的包名一致,则@SpringBootTest注解不用指定启动类的字节码文件
@SpringBootTest
如果测试类的包名和SpringBoot启动类的包名不一致,则@SpringBootTest注解需要指定启动类的字节码文件
@SpringBootTest(classes = SpringbootTestApplication.class)
// 这个位置要注意,如果当前测试类所在的包,与入口文件所在的包一致,那么@SpringBootTest不需要带参,如下@SpringBootTest// 如果包不一致,则需要带参,如下// @SpringBootTest(classes = SpringbootTestApplication.class)public class UserServiceTest {@Autowiredprivate UserService userService;@Testpublic void testAdd() {userService.add();}}
SpringBoot 整合Redis
依赖
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency>
配置文件 application.yml / application.properties
spring:redis:host: 127.0.0.1 # redis的主机ipport: 6379# password: 默认不需要配置,如果redis服务器设置了密码,这里要配置
使用RedisTemplate
```java @Autowired private RedisTemplate redisTemplate;
@Test public void testSet() { //存入数据 redisTemplate.boundValueOps(“name”).set(“zhangsan”); }
@Test public void testGet() { //获取数据 Object name = redisTemplate.boundValueOps(“name”).get(); System.out.println(name); }
---<a name="0aa57b46"></a>## SpringBoot配置- 配置文件分类- application.**properties**- application.**yml** 大小写敏感- application.**yaml**- 优先级**properties** > **yml** > **yaml**- 作用<br />用于指定端口、数据库地址等- 内容- 程序自动识别内容 server.port: 8080- 自定义内容 name: 123- yml数据格式- 参数注入- <br />- 读取配置文件内容- [@Value ](/Value ) :获取单个的值比较方便```java@Value(${person.name}) // person.name必须与配置文件中的key一致private String name;//数组的引入方式@Value(${address[0]})private String address;
- Environment
```java @Autowired private Environment env;
env.getProperty(key);
- @ConfigurationProperties```java@ConfigurationProperties(prefix = "person") //prefix 用于指定配置文件中的配置的前缀@Component //注册Spring Beanpublic class Person {private String name;private int age;private String[] address;public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String[] getAddress() {return address;}public void setAddress(String[] address) {this.address = address;}}
多环境配置(prefix)
方法一:在配置文件中指定
spring.profiles.active=div/pro/test
yml多文档方式
```yml
server: port: 8080 spring:
profiles: dev
server: port: 8081 spring:
profiles: pro
server: port: 8082 spring: profiles: test
指定当前使用 application-dev.yml 文件
spring: profiles: active: dev ```
- 多环境激活方式
- 配置文件方式(如上述)
- 虚拟机参数:(IDEA ——> Edit Configuration ——> Program Arguments)
- 在VM options 指定:
-Dspring.profiles.active=dev
- 在VM options 指定:
- 命令行参数
java –jar xxx.jar --spring.profiles.active=dev(线上部署时常用)
- 外部配置文件
java -jar xx.jar --server.port=8082(上线时,临时修改端口用的,其他参数涉及不多)- 同级外部配置文件
application.yml(线上遇到问题,临时调整系统性能参数用的)
