springBoot+mybatis+redis整合,这里搭建一个简单的框架是为了记录怎么使用redis做缓存。

一、构建一个springboot的maven项目,目录结构如下:

二、在pom.xml文件中引入依赖jar包

<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--mybatis整合springboot--><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.0.0</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><!--redis缓存--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency><!--mysql JDBC驱动 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.39</version></dependency><!--这个特别记得引入--><dependency><groupId>org.apache.commons</groupId><artifactId>commons-pool2</artifactId><version>2.0</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-cache</artifactId></dependency></dependencies>

三、application.properties配置文件

server.port=8029
数据库连接
spring.datasource.url=jdbc:mysql://localhost:3306/redis_test?useUnicode=true
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=123456#mybatis配置
mybatis.type-aliases-package=com.example.springboot_redis.entity
mybatis.mapper-locations=classpath:mapper/*.xml#打印sql时的语句 ========================
logging.level.com.acong.dao = debug
logging.file=d:/logs/bsbdj.log#将themilef的默认缓存禁用,热加载生效
spring.thymeleaf.cache=false#redis配置
spring.redis.database=0
spring.redis.host=localhost
spring.redis.port=6379
spring.redis.password=
#redis最大池连接数
spring.redis.jedis.pool.max-active=8
#redis最大空闲连接
spring.redis.jedis.pool.max-idle=8
#redis最大阻塞等待时间(负值表示无限制)
spring.redis.jedis.pool.max-wait=1001
#redis最小空闲连接
spring.redis.lettuce.pool.min-idle=0
#redis 超时时间
spring.redis.timeout=12000

四、框架代码:

1、创建一个User实体,和数据库表对应。注意这里实体一定要序列化,redis存储对象的时候要序列化存储

public class User implements Serializable {private static final long serialVersionUID = 1L;private String id;private String name;private String password;private String phone;public String getId() {return id;}public void setId(String id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String getPhone() {return phone;}public void setPhone(String phone) {this.phone = phone;}
}

2、创建数据交互层UserDao接口,加上@Mapper注解

@Mapper
public interface UserDao {public User findById(String id);public int delete(String id);public int update(String id);
}

3、mapper.xml配置文件,这里SQL中id和UserDao接口的方法对应。不知道的先学习mybatis

<?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.example.springboot_redis.dao.UserDao"><select id="queryAll" resultType="com.example.springboot_redis.entity.User">select * from user</select><select id="findById" resultType="com.example.springboot_redis.entity.User" parameterType="String">select * from user where id = #{id}</select><update id="update" parameterType="String">update user set name = 'tom'where id = #{id}</update><delete id="delete" parameterType="String">delete from user where id = #{id}</delete></mapper>

4、创建UserService接口以及接口实现类

//接口

public interface UserService {public User findById(String id);public int delete(String id);public  int update (String id);
}

//实现类

@Transactional
@Service("UserService")
public class UserServiceImpl implements UserService {@Autowiredprivate UserDao userDao;@Autowiredprivate RedisTemplate redisTemplate;@Overridepublic User findById(String id) {String key = "user_"+id;//先从缓存获取用户,如果没有再从数据库获取ValueOperations<String,User> valueOperations = redisTemplate.opsForValue();boolean haskey = redisTemplate.hasKey(key);if(haskey){User user = valueOperations.get(key);System.out.println("缓存中获取数据=="+user.getName());return user;}else {User user = userDao.findById(id);System.out.println("从数据库=="+user.getName());valueOperations.set(key,user,5, TimeUnit.HOURS);  //写入缓存return user;}}@Overridepublic int delete(String id) {int result = userDao.delete(id);String key = "user_"+id;//先删除数据库数据再删除缓存数据if(result != 0){if(redisTemplate.hasKey(key)){redisTemplate.delete(key);}}return  result;}@Overridepublic int update(String id) {int result = userDao.update(id);String key = "user_" + id;if(result!=0){if(redisTemplate.hasKey(key)){redisTemplate.delete(key);}//重新写入缓存User user = userDao.findById(id);redisTemplate.opsForValue().set(key,user,5,TimeUnit.HOURS);}return result;}
}

5、创建控制层;

@RestController
@RequestMapping("/test")
public class UserController {@Autowiredprivate UserService userService;@Autowiredprivate RedisTemplate redisTemplate;@GetMapping("{id}/findById")public User test(@PathVariable("id") String id){return userService.findById(id);}@GetMapping("/find")public User hh(){String key = "user_"+"faffdasf45485fdas54f5daf4";ValueOperations<String,User> valueOperations = redisTemplate.opsForValue();return valueOperations.get(key);}@GetMapping("{id}/del")public int delele(@PathVariable("id") String id){return userService.delete(id);}@GetMapping("{id}/up")public int up(@PathVariable("id") String id){return userService.update(id);}
}

五、接口测试结果1.查看

springboot+mybatis+redis整合相关推荐

  1. Java项目:实现个人博客系统(java+springboot+mybatis+redis+vue+elementui+Mysql)

    源码获取:博客首页 "资源" 里下载! springboot+mybatis+前端vue,使用前后端分离架构实现的个人博客系统,共7个模块,首页,写博客,博客详情页,评论管理,文章 ...

  2. SpringBoot+MyBatis+Redis实现SSO单点登录系统(二)

    SpringBoot+MyBatis+Redis实现SSO单点登录系统(二) 三.代码 配置文件配置数据库,redis等相关的信息. # See http://docs.spring.io/sprin ...

  3. SpringBoot+MyBatis+Redis实现SSO单点登录系统(一)

    SpringBoot+MyBatis+Redis实现SSO单点登录系统(一) 一.SSO系统概述 SSO英文全称Single Sign On,单点登录.SSO是在多个应用系统中,用户只需要登录一次就可 ...

  4. springboot mybatis easyui 整合的一个小demo

    springboot mybatis easyui 整合的一个小demo 这是最终完成界面 话不多说 开整! 这是项目结构 数据库 表结构和数据库 (有点乱 之前本来是个正经图书表的 = =.) /* ...

  5. mybatis redis_基于人事年假管理的系统springboot+mybatis+redis+拦截器

    那么分享一个项目案例篇吧! 需求是:假设有一个部门表,一个员工表,一个年假表, 员工表里: 部门表: 休假表: 管理员表     项目原型: 效果图: 管理员登录: 登录成功回调: 进入后台首页,这里 ...

  6. springboot+mybatis+dubbo整合

    PS:搭建框架过程在网上查询了比较多的资料,最后自己再综合得到,如有侵权,请联系删除! 最近整合了springboot+mybatis+dubbo的架构,分享给大家!首先Demo目录架构如下: 首先项 ...

  7. springboot + mybatis +easyUI整合案例

    概述 springboot推荐使用的是JPA,但是因为JPA比较复杂,如果业务场景复杂,例如企业应用中的统计等需求,使用JPA不如mybatis理想,原始sql调优会比较简单方便,所以我们的项目中还是 ...

  8. SpringBoot+Mybatis+Vue整合

    创建springboot项目 添加分页依赖等 <?xml version="1.0" encoding="UTF-8"?> <project ...

  9. Intellij+Maven+SpringBoot+Mybatis+Oracle整合教程

    这几天题主自学maven和SpringBoot,一路填坑,决定写一篇教程帮大家防雷. 本此采用的环境是win10,JDK 1.8 , Intellij IDEA  2017.2.5,SpringBoo ...

最新文章

  1. Kafka入门教程与详解
  2. 记录PCLVisualizer问题
  3. 匿名对象和object的转换
  4. 仿IOS效果-带弹簧动画的ListView
  5. ip地址开头结尾不能为0
  6. 使用Dockerfile定制镜像来部署Tomcat项目
  7. Locality Sensitive Hashing
  8. js高级程序设计的笔记(一)
  9. python安装函数库pip网址_批量安装python库函数---pip
  10. linux系统it固定资产管理系统包_固定资产管理系统单机版有哪些特点?
  11. ASP.NET几种安全验证方法(一)
  12. 世界公认的第一商人——成就犹太商人的15个信条
  13. php安装redis扩展模块,[教程]为PHP安装phpRedis扩展模块
  14. 券商交易模式下的单产品多券商方案
  15. 自动驾驶-毫米波雷达系列基础篇-测速原理
  16. SAP中生产返工中单独的作业返冲处理分析测试
  17. HDU4598 Difference(差分约束)
  18. python爬虫爬取高清图片——爬虫入门
  19. NLP算法之一(朴素贝叶斯理论部分)
  20. python脚本批量更改图片大小

热门文章

  1. oracle 每个月求本年该月及之前的合计
  2. 一文带你弄懂C++中的ANSI、Unicode和UTF8三种字符编码及相互转换
  3. CKEditor的使用示例
  4. Python解压所有压缩包到同一文件夹下
  5. 通过买新电脑a时买的正版Windows 10 pro for OEM key升级电脑b操作系统Windows 10 home 到 专业版pro
  6. springboot启动突然报错Could not resolve placeholder 'spring.datasource.driver-class-name'
  7. 【基础教程】法线贴图原理与制作 粗解
  8. android虹软人脸识别代码混淆,虹软人脸识别Android Sample Code
  9. 北欧的Michael Learns To Rock的一首清澈见底的【Take Me To Your Heart】
  10. SN74LVC4245A/(74LVC245) 真是个好东西啊