MyBatis导入
- GitHub:https://github.com/mybatis
XML
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.4</version>
</dependency>
MyBatis的自动配置
- 绑定配置文件 prefix = "mybatis"

- SqlSessionFactory

- SqlSession
- 自动配置了 SqlSessionTemplate 组合了SqlSession

- AutoConfiguredMapperScannerRegistrar
- @Import(AutoConfiguredMapperScannerRegistrar.class)
- Mapper: 只要操作MyBatis的接口使用了 @Mapper 就会被自动扫描进来

MyBatis配置文件
- config-location的所有全局配置文件 和 configuration配置 只可选其一
bash
# 配置mybatis规则
mybatis:
# 配置mybatis的config.xml路径
# config-location: classpath:mybatis/mybatis-config.xml
# 配置mybatis的mapper.xml路径
mapper-locations: classpath:mybatis/mapper/*.xml
# 使用配置文件代替config.xml
configuration:
map-underscore-to-camel-case: true #开启驼峰命名法
注解模式
- 只需要写mapper接口,不要写mapper.xml,使用注解写SQL语句
- 省略@Mapper注解,启动类上标注@MapperScan("mapper包路径")
java
@Mapper
public interface CityMapper {
@Select("select * from city where id=#{id}")
public City getById(Long id);
public void insert(City city);
}
- 自增主键例子
- xml写法
XML
<!--
useGeneratedKeys: 是否使用自增主键,
keyProperty:插入后自增主键返回时绑定的实体类属性名
-->
<insert id="addUser" useGeneratedKeys="true" keyProperty="id">
insert into `user`(...)values(...)
</insert>
- 注解写法
java
@Insert(" insert ...")
@Options(useGeneratedKeys = true, keyProperty = "id")
int addUser();
MyBatis-Plus自动配置
- 导入依赖
- 官网地址:https://baomidou.com
XML
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.1</version>
</dependency>
- MybatisPlusAutoConfiguration 自动配置类
- 配置文件绑定:mybatis-plus: xxx

- SqlSessionFactory 自动配置好。底层是容器中默认的数据源

- mapperLocations 自动配置好的
- 默认值:classpath*:/mapper/**/*.xml
- 类路径的mapper文件夹下,任意路径的所有xml都是sql映射文件
- 建议以后sql映射文件,放在此路径下

- SqlSessionTemplate 自动配置好了

- @Mapper 标注的接口也会被自动扫描
- 建议直接 @MapperScan("mapper包路径") 批量扫描就行

Redis自动配置
- 导入依赖
XML
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
- RedisAutoConfiguration 自动配置类
- 配置文件配置 spring.redis.xxx
- 默认连接工厂是LettuceConnectionConfiguration,也可以切换JedisConnectionConfiguration
- template操作redis
- 自动注入了RedisTemplate<Object, Object>:k:v都是Object
- 自动注入了StringRedisTemplate:k:v都是String

- 测试连接
-
配置文件
spring:
redis:
host: 主机名
port: 6379
password: user:password -
测试代码
java
@Test
void testRedis(){
ValueOperations<String, String> operations = redisTemplate.opsForValue();
operations.set("hello","world");
String hello = operations.get("hello");
System.out.println(hello);
}
- 切换至jedis连接
- 导入jedis
XML
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
</dependency>
-
配置文件 client-type
spring:
redis:
host:
port: 6379
password:
client-type: jedis