7.springboot+mybatis+redis整合
选择生成的依赖
选择保存的工程路径
查询已经生成的依赖,并修改mysql的版本
- <dependencies>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-data-redis</artifactId>
- </dependency>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-jdbc</artifactId>
- </dependency>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-web</artifactId>
- </dependency>
- <dependency>
- <groupId>org.mybatis.spring.boot</groupId>
- <artifactId>mybatis-spring-boot-starter</artifactId>
- <version>2.1.0</version>
- </dependency>
- <!--修改mysql的驱动版本-->
- <dependency>
- <groupId>mysql</groupId>
- <artifactId>mysql-connector-java</artifactId>
- <version>5.1.38</version>
- </dependency>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-test</artifactId>
- <scope>test</scope>
- </dependency>
- </dependencies>
pom.xml
项目结构如下:
编辑属性文件application.properties
- server.port=8080
- #spring.application.name=springboot-redis
- spring.datasource.driver-class-name=com.mysql.jdbc.Driver
- spring.datasource.url=jdbc:mysql://localhost:3306/kgc
- spring.datasource.username=root
- spring.datasource.password=ok
- #redis
- #redis的服务所在的ip地址
- spring.redis.host=192.168.117.143
- #redis的端口号
- spring.redis.port=6379
- # redis数据库索引(默认为0) 密码默认是没有的,可以不写
- spring.redis.database=0
- #打印sql语句,改为自己的mapper包路径
- logging.level.cn.kgc.mapper=debug
application.properties
创建持久化类Student.java
- package cn.kgc.vo;
- import java.io.Serializable;
- /**
- * Created by Administrator on 2019/7/22.
- */
- public class Student implements Serializable{
- private Integer sid;
- private String sname;
- private String password;
- private String subject;
- private String result;
- private Integer cid;
- public Student() {
- }
- public Student(Integer sid, String sname, String password, String subject, String result, Integer cid) {
- this.sid = sid;
- this.sname = sname;
- this.password = password;
- this.subject = subject;
- this.result = result;
- this.cid = cid;
- }
- public Integer getSid() {
- return sid;
- }
- public void setSid(Integer sid) {
- this.sid = sid;
- }
- public String getSname() {
- return sname;
- }
- public void setSname(String sname) {
- this.sname = sname;
- }
- public String getPassword() {
- return password;
- }
- public void setPassword(String password) {
- this.password = password;
- }
- public String getSubject() {
- return subject;
- }
- public void setSubject(String subject) {
- this.subject = subject;
- }
- public String getResult() {
- return result;
- }
- public void setResult(String result) {
- this.result = result;
- }
- public Integer getCid() {
- return cid;
- }
- public void setCid(Integer cid) {
- this.cid = cid;
- }
- @Override
- public String toString() {
- return "Student{" +
- "sid=" + sid +
- ", sname='" + sname + '\'' +
- ", password='" + password + '\'' +
- ", subject='" + subject + '\'' +
- ", result='" + result + '\'' +
- ", cid=" + cid +
- '}';
- }
- }
Student.java
创建数据访问层接口StudentMapper.java
- package cn.kgc.mapper;
- import cn.kgc.vo.Student;
- import org.apache.ibatis.annotations.Delete;
- import org.apache.ibatis.annotations.Insert;
- import org.apache.ibatis.annotations.Select;
- import org.apache.ibatis.annotations.Update;
- import java.util.List;
- /**
- * Created by Administrator on 2019/7/22.
- */
- public interface StudentMapper {
- @Select("select * from student")
- List<Student> findAll();
- @Select("select * from student where sid=#{sid}")
- Student findBySid(Integer sid);
- @Delete("delete from student where sid=#{sid}")
- int del(Integer sid);
- @Update("update student set sname=#{sname},password=#{password},subject=#{subject},result=#{result},cid=#{cid} where sid=#{sid}")
- int modify(Student student);
- @Insert("insert into student(sname,password,subject,result,cid) values(#{sname},#{password},#{subject},#{result},#{cid})")
- int add(Student student);
- }
StudentMapper.java
创建业务层接口StudentService.java
- package cn.kgc.service;
- import cn.kgc.vo.Student;
- import java.util.List;
- /**
- * Created by Administrator on 2019/7/22.
- */
- public interface StudentService {
- List<Student> findAll();
- Student findBySid(Integer sid);
- int del(Integer sid);
- int modify(Student student);
- int add(Student student);
- }
StudentService.java
创建业务层接口实现类StudentServiceImpl.java
- package cn.kgc.service;
- import cn.kgc.mapper.StudentMapper;
- import cn.kgc.vo.Student;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.data.redis.core.ListOperations;
- import org.springframework.data.redis.core.RedisTemplate;
- import org.springframework.data.redis.core.ValueOperations;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import java.util.List;
- @Service
- @Transactional
- public class StudentServiceImpl implements StudentService{
- @Autowired
- StudentMapper studentMapper;
- @Autowired
- RedisTemplate redisTemplate;
- @Override
- public List<Student> findAll() {
- String key="student";
- ListOperations<String,Student> operations= redisTemplate.opsForList();
- //缓存存在
- if (redisTemplate.hasKey(key)){
- return operations.range(key,0,-1);
- }else{
- //得到学生集合
- List<Student> list=studentMapper.findAll();
- operations.leftPushAll(key,list);
- return list;
- }
- }
- @Override
- public Student findBySid(Integer sid) {
- String key = "student_" + sid;
- ValueOperations<String, Student> operations = redisTemplate.opsForValue();
- //缓存存在
- if (redisTemplate.hasKey(key)) {
- System.out.println("redis-siddata");
- return operations.get(key);
- } else {
- //得到学生对象
- Student student = studentMapper.findBySid(sid);
- //添加到缓存
- operations.set(key, student);
- System.out.println("student-siddata");
- return student;
- }
- }
- @Override
- public int del(Integer sid) {
- //删除数据库中的数据
- int count = studentMapper.del(sid);
- //缓存存在
- String key = "student_" + sid;
- if (redisTemplate.hasKey(key)) {
- //删除对应缓存
- redisTemplate.delete(key);
- }
- return count;
- }
- @Override
- public int modify(Student student) {
- //修改数据库中的数据
- int count = studentMapper.modify(student);
- ValueOperations operations = redisTemplate.opsForValue();
- //缓存存在
- String key = "student_" + student.getSid();
- if (redisTemplate.hasKey(key)) {
- //更新缓存
- Student stu = studentMapper.findBySid(student.getSid());
- operations.set(key, stu);
- }
- return count;
- }
- @Override
- public int add(Student student) {
- //添加数据
- int count = studentMapper.add(student);
- return count;
- }
- }
StudentServiceImpl.java
创建控制层StudentController.java
- package cn.kgc.controller;
- import cn.kgc.service.StudentService;
- import cn.kgc.vo.Student;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.web.bind.annotation.*;
- import java.util.List;
- @RestController
- public class StudentController {
- @Autowired
- StudentService studentService;
- @GetMapping("/student")
- public List<Student> findAll() {
- return studentService.findAll();
- }
- /* @GetMapping("/student/{sid}")
- public Student findById(@PathVariable("sid") Integer sid) {
- return studentService.findBySid(sid);
- }
- */
- @GetMapping("/findById")
- public Student findById(Integer sid) {
- return studentService.findBySid(sid);
- }
- @PostMapping("/student/{sid}")
- public int del(@PathVariable("sid") Integer sid) {
- return studentService.del(sid);
- }
- @PutMapping("/student")
- public int modify(Student student) {
- return studentService.modify(student);
- }
- }
StudentController.java
启动类
- package cn.kgc;
- import org.mybatis.spring.annotation.MapperScan;
- import org.springframework.boot.SpringApplication;
- import org.springframework.boot.autoconfigure.SpringBootApplication;
- //指定要扫描的mapper包
- @MapperScan("cn.kgc.mapper")
- @SpringBootApplication
- public class SpringbootMybatisRedisApplication {
- public static void main(String[] args) {
- SpringApplication.run(SpringbootMybatisRedisApplication.class, args);
- }
- }
启动类
测试如下:
第一次访问
查看redis
第二次访问
7.springboot+mybatis+redis整合的更多相关文章
- SpringBoot + Mybatis + Redis 整合入门项目
这篇文章我决定一改以往的风格,以幽默风趣的故事博文来介绍如何整合 SpringBoot.Mybatis.Redis. 很久很久以前,森林里有一只可爱的小青蛙,他迈着沉重的步伐走向了找工作的道路,结果发 ...
- SpringCloud+MyBatis+Redis整合—— 超详细实例(二)
2.SpringCloud+MyBatis+Redis redis①是一种nosql数据库,以键值对<key,value>的形式存储数据,其速度相比于MySQL之类的数据库,相当于内存读写 ...
- springboot + mybatis + mycat整合
1.mycat服务 搭建mycat服务并启动,windows安装参照. 系列文章: [Mycat 简介] [Mycat 配置文件server.xml] [Mycat 配置文件schema.xml] [ ...
- SpringBoot+Mybatis+MybatisPlus整合实现基本的CRUD操作
SpringBoot+Mybatis+MybatisPlus整合实现基本的CRUD操作 1> 数据准备 -- 创建测试表 CREATE TABLE `tb_user` ( `id` ) NOT ...
- redis(七)---- SpringBoot和redis整合
SpringBoot和Redis整合非常简单 添加pom依赖 <dependency> <groupId>org.springframework.boot</groupI ...
- springboot+mybatis+redis实现分布式缓存
大家都知道springboot项目都是微服务部署,A服务和B服务分开部署,那么它们如何更新或者获取共有模块的缓存数据,或者给A服务做分布式集群负载,如何确保A服务的所有集群都能同步公共模块的缓存数据, ...
- SpringBoot日记——Redis整合
上一篇文章,简单记录了一下缓存的使用方法,这篇文章将把我们熟悉的redis整合进来. 那么如何去整合呢?首先需要下载和安装,为了使用方便,也可以做环境变量的配置. 下载和安装的方法,之前有介绍,在do ...
- springboot和Redis整合
springboot简化了许多的配置,大大提高了使用效率.下面介绍一下和Redis整合的一些注意事项. 首先介绍单机版的redis整合. 1.第一步当然是导入依赖 <dependency> ...
- Springboot Mybatis Redis 实现二级缓存
前言 什么是mybatis二级缓存? 二级缓存是多个sqlsession共享的,其作用域是mapper的同一个namespace. 即,在不同的sqlsession中,相同的namespace下,相同 ...
随机推荐
- thinkphp 表单令牌
表单令牌 ThinkPHP支持表单令牌验证功能,可以有效防止表单的重复提交等安全防护.要启用表单令牌功能,需要配置行为绑定, 在应用或者模块的配置目录下面的行为定义文件tags.php中 就是在你的 ...
- Hadoop部署项目总结&&解析缓存文件
打包hadoop项目需要用fatjar插件进行打包,可以将第三方依赖一起编译进去,否则会找不到mapper类,或者找不到主类main方法. 解析缓存文件代码: @Override protected ...
- C++——指针与数组
1.数组名不是指针,神似指针(可以将数组名直接赋值给指针) (1)数组名的内涵在于其指代实体是一种数据结构,这种数据结构就是数组:(2)数组名的外延在于其可以转换为指向其指代实体的指针,而且是一个指针 ...
- HDU 6665 Calabash and Landlord (分类讨论)
2019 杭电多校 8 1009 题目链接:HDU 6665 比赛链接:2019 Multi-University Training Contest 8 Problem Description Cal ...
- PAT_A1095#Cars on Campus
Source: PAT A1095 Cars on Campus (30 分) Description: Zhejiang University has 8 campuses and a lot of ...
- \t \r \n转义字符
t \r \n都是转义字符,空格就是单纯的空格,输入时可以输入空格 \t 的意思是 横向跳到下一制表符位置 \r 的意思是 回车 \n 的意思是回车换行 所有的转义字符和所对应的意义: 转义字符 意义 ...
- Centos 7 技巧
查看系统版本详细信息 lsb_release -a 更改邮件MTA alternatives --config mta
- Pregel Combiner
- 使用kubeadm 搭建高可用集群 多master
很快很简单 只要三分钟就能看完 三台服务器 k8s-vip 负载均衡器 k8s-master1 主节点一 k8s-master2 主节点一 官方文档 首先搭建负载均衡器 用的Haproxy yum ...
- Centos Apache 80 代理Tomcat 8080端口
运行环境:Centos 6.5 Apache: 2.2.5 开启apache proxy的相应模块 编辑 /etc/httpd/conf/httpd.conf文件 sudo vim /etc/http ...