MyBatis導入
- GitHub:https://github.com/mybatis
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.4</version>
</dependency>
MyBatis的自動配置
1. 綁定配置文件 prefix = "mybatis"
2. SqlSessionFactory
3. SqlSession
- 自動配置了 SqlSessionTemplate 組合了SqlSession
4. AutoConfiguredMapperScannerRegistrar
- @Import(AutoConfiguredMapperScannerRegistrar.class)
- Mapper: 只要操作MyBatis的接口使用了 @Mapper就會被自動掃描進來
MyBatis配置文件
- config-location的所有全局配置文件 和 configuration配置 只可選其一
# 配置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 #開啓駝峯命名法
註解模式
1. 只需要寫mapper接口,不要寫mapper.xml,使用註解寫SQL語句
- 省略@Mapper註解,啓動類上標註@MapperScan("mapper包路徑")
@Mapper
public interface CityMapper {
@Select("select * from city where id=#{id}")
public City getById(Long id);
public void insert(City city);
}
2. 自增主鍵例子
- xml寫法
<!--
useGeneratedKeys: 是否使用自增主鍵,
keyProperty:插入後自增主鍵返回時綁定的實體類屬性名
-->
<insert id="addUser" useGeneratedKeys="true" keyProperty="id">
insert into `user`(...)values(...)
</insert>
- 註解寫法
@Insert(" insert ...")
@Options(useGeneratedKeys = true, keyProperty = "id")
int addUser();
MyBatis-Plus自動配置
1. 導入依賴
- 官網地址:https://baomidou.com
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.1</version>
</dependency>
2. MybatisPlusAutoConfiguration 自動配置類
- 配置文件綁定:mybatis-plus: xxx
3. SqlSessionFactory 自動配置好。底層是容器中默認的數據源
4. mapperLocations 自動配置好的
- 默認值:classpath*:/mapper/**/*.xml
- 類路徑的mapper文件夾下,任意路徑的所有xml都是sql映射文件
- 建議以後sql映射文件,放在此路徑下
5. SqlSessionTemplate 自動配置好了
6. @Mapper 標註的接口也會被自動掃描
- 建議直接 @MapperScan("mapper包路徑") 批量掃描就行
Redis自動配置
1. 導入依賴
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
2. RedisAutoConfiguration 自動配置類
- 配置文件配置 spring.redis.xxx
- 默認連接工廠是LettuceConnectionConfiguration,也可以切換JedisConnectionConfiguration
3. template操作redis
- 自動注入了RedisTemplate<Object, Object>:k:v都是Object
- 自動注入了StringRedisTemplate:k:v都是String
4. 測試連接
- 配置文件
spring:
redis:
host: 主機名
port: 6379
password: user:password
- 測試代碼
@Test
void testRedis(){
ValueOperations<String, String> operations = redisTemplate.opsForValue();
operations.set("hello","world");
String hello = operations.get("hello");
System.out.println(hello);
}
5. 切換至jedis連接
- 導入jedis
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
</dependency>
- 配置文件 client-type
spring:
redis:
host:
port: 6379
password:
client-type: jedis