SpringBoot-数据访问之MyBatis与Redis

MyBatis导入

XML 复制代码
<dependency>
	<groupId>org.mybatis.spring.boot</groupId>
	<artifactId>mybatis-spring-boot-starter</artifactId>
	<version>2.1.4</version>
</dependency>

MyBatis的自动配置

  1. 绑定配置文件 prefix = "mybatis"
  1. SqlSessionFactory
  1. SqlSession
  • 自动配置了 SqlSessionTemplate 组合了SqlSession
  1. 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    #开启驼峰命名法

注解模式

  1. 只需要写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);

}
  1. 自增主键例子
  • 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自动配置

  1. 导入依赖
XML 复制代码
<dependency>
	<groupId>com.baomidou</groupId>
	<artifactId>mybatis-plus-boot-starter</artifactId>
	<version>3.4.1</version>
</dependency>
  1. MybatisPlusAutoConfiguration 自动配置类
  • 配置文件绑定:mybatis-plus: xxx
  1. SqlSessionFactory 自动配置好。底层是容器中默认的数据源
  1. mapperLocations 自动配置好的
  • 默认值:classpath*:/mapper/**/*.xml
  • 类路径的mapper文件夹下,任意路径的所有xml都是sql映射文件
  • 建议以后sql映射文件,放在此路径下
  1. SqlSessionTemplate 自动配置好了
  1. @Mapper 标注的接口也会被自动扫描
  • 建议直接 @MapperScan("mapper包路径") 批量扫描就行

Redis自动配置

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

    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);
}
  1. 切换至jedis连接
  • 导入jedis
XML 复制代码
<dependency>
	<groupId>redis.clients</groupId>
	<artifactId>jedis</artifactId>
</dependency>
  • 配置文件 client-type

    spring:
    redis:
    host:
    port: 6379
    password:
    client-type: jedis

相关推荐
西西学代码2 小时前
Flutter---Stream
java·服务器·flutter
Blossom.1184 小时前
移动端部署噩梦终结者:动态稀疏视觉Transformer的量化实战
java·人工智能·python·深度学习·算法·机器学习·transformer
静若繁花_jingjing5 小时前
IDEA下载
java·ide·intellij-idea
代码丰5 小时前
函数式接口+default接口+springAi 中的ducumentReader去理解为什么存在default接口的形式
java
果汁华6 小时前
java学习连续打卡30天(1)
java
q***92517 小时前
Spring Cloud Data Flow 简介
后端·spring·spring cloud
武子康7 小时前
Java-171 Neo4j 备份与恢复 + 预热与执行计划实战
java·开发语言·数据库·性能优化·系统架构·nosql·neo4j
m0_639817157 小时前
基于springboot火锅店管理系统【带源码和文档】
java·spring boot·后端
会编程的林俊杰8 小时前
SpringBoot项目启动时的依赖处理
java·spring boot·后端
李慕婉学姐8 小时前
【开题答辩过程】以《Javaweb的火花流浪动物救助系统设计与实现》为例,不会开题答辩的可以进来看看
vue.js·spring boot·mysql