Java中的使用及连接Redis数据库(附源码)

 更新时间:2020年09月20日 10:48:43   作者:Willing 卡卡  
这篇文章主要介绍了Java中的使用及连接Redis数据库(附源码),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

引言:

本文主要分享了Redis如何在IDEA中部署,运行;模拟加入Redis的操作;

目录结构

在这里插入图片描述

1. 在IDEA中搭建Redis

1.1 创建项目

新建含有web的SpringBoot项目;

搭建项目参考:SpringBoot超详细笔记:https://blog.csdn.net/weixin_42601136/article/details/108396511

在这里插入图片描述

1.2 添加依赖(不够手动添加)

<dependencies>
  <!--  1、 Jedis-->
  <dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
    <version>2.9.0</version>
  </dependency>
  <!--  2、 Junit测试-->
  <dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.12</version>
  </dependency>

  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jdbc</artifactId>
  </dependency>
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</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.2</version>
  </dependency>

  <dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <scope>runtime</scope>
  </dependency>
  <dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <optional>true</optional>
  </dependency>
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
  </dependency>
</dependencies>

1.3 测试环境是否搭建成功

@Test
  public void test0() {
    //连接Redis
    Jedis jedis = new Jedis("127.0.0.1", 6379);
    //获取kak
    String kaka = jedis.get("kak");
    log.info(kaka);
    //创建datex
    String datex = jedis.set("datex", new Date().toString());
    //获取datex
    String datex1 = jedis.get("datex");
    log.info(datex1);
    //关闭资源
    jedis.close();
  }

在这里插入图片描述

1.4 利用json存储数据

@Test
  public void test1() {
    JedisPool pool = new JedisPool("127.0.0.1", 6379);
    Jedis jedis = pool.getResource();
    Student student = new Student(1001, "kak", "man", "20");
    String key = "student";
    String field = "1001";
    String s = JsonUtils.objectToJson(student);
    String value = s;
    jedis.hset(key, field, value);
    String hget = jedis.hget(key, field);
    log.info(hget);
    jedis.close();
  }

在这里插入图片描述

1.5 以byte的形式存储对象

@Test
  public void test02() {
    //连接redis
    Jedis jedis = new Jedis("127.0.0.1", 6379);
    String key = "Student";
    Student value = new Student(1002, "taotao", "woman", "20");
    //将key和value转换为byte[]
    byte[] byteKey = SerializationUtils.serialize(key);
    byte[] byteValue = SerializationUtils.serialize(value);
    //将key和value存储到redis中
    jedis.set(byteKey, byteValue);
    //获取value值
    byte[] bytes = jedis.get(byteKey);
    //bytes反序列化为Student对象
    Student stu = (Student) SerializationUtils.deserialize(bytes);
    System.out.println(stu);
    jedis.close();

  }

在这里插入图片描述

1.6 加入连接池的操作

使用连接池操作,可以避免频繁的创建和销毁连接对象的消耗资源

@Test
  public void test3(){
    //创建连接池
    GenericObjectPoolConfig poolConfig = new GenericObjectPoolConfig();
    poolConfig.setMaxTotal(100);//连接池中的最大活跃数
    poolConfig.setMaxIdle(10);//最大空闲数
    poolConfig.setMinIdle(5);//最小空闲数
    poolConfig.setMaxWaitMillis(3000);//连接池空了,3000毫秒后没有获取Jedis对象,超时
    //创建连接池
    JedisPool pool = new JedisPool(poolConfig,"127.0.0.1",6379);
    //通过连接池获取Jedis对象
    Jedis resource = pool.getResource();
    //获取上面添加的datex
    String value = resource.get("datex");
    log.info(value);

    resource.close();
  }

在这里插入图片描述

1.7 管道操作

Redis的管道操作,执行一个命令需要先发送请求到Redis,需要经历网络延迟,Redis还需给客户端一个响应;如果需要一次操作多个命令,可以通过管道,将命令放到客户端的一个Pipeline中,之后一次将命令发送到服务端,服务端一次性返回到客户端;

@Test
  public void test3(){
    //创建连接池
    GenericObjectPoolConfig poolConfig = new GenericObjectPoolConfig();
    poolConfig.setMaxTotal(100);//连接池中的最大活跃数
    poolConfig.setMaxIdle(10);//最大空闲数
    poolConfig.setMinIdle(5);//最小空闲数
    poolConfig.setMaxWaitMillis(3000);//连接池空了,3000毫秒后没有获取Jedis对象,超时
    //创建连接池
    JedisPool pool = new JedisPool(poolConfig,"127.0.0.1",6379);
    //通过连接池获取Jedis对象
    Jedis resource = pool.getResource();
    //获取上面添加的datex
    String value = resource.get("datex");
    log.info(value);

    resource.close();
  }

在这里插入图片描述

2. 从数据中查询数据

场景:

将数据存入Redis中,避免访问量过大,造成数据库奔溃;

2.1 生成实体类

@Test
  public void test3(){
    //创建连接池
    GenericObjectPoolConfig poolConfig = new GenericObjectPoolConfig();
    poolConfig.setMaxTotal(100);//连接池中的最大活跃数
    poolConfig.setMaxIdle(10);//最大空闲数
    poolConfig.setMinIdle(5);//最小空闲数
    poolConfig.setMaxWaitMillis(3000);//连接池空了,3000毫秒后没有获取Jedis对象,超时
    //创建连接池
    JedisPool pool = new JedisPool(poolConfig,"127.0.0.1",6379);
    //通过连接池获取Jedis对象
    Jedis resource = pool.getResource();
    //获取上面添加的datex
    String value = resource.get("datex");
    log.info(value);

    resource.close();
  }

2.2 生成实体模板类

package com.sx.kak.po;

import java.util.ArrayList;
import java.util.List;

public class StudentExample {
  protected String orderByClause;

  protected boolean distinct;

  protected List<Criteria> oredCriteria;

  public StudentExample() {
    oredCriteria = new ArrayList<Criteria>();
  }

  public void setOrderByClause(String orderByClause) {
    this.orderByClause = orderByClause;
  }

  public String getOrderByClause() {
    return orderByClause;
  }

  public void setDistinct(boolean distinct) {
    this.distinct = distinct;
  }

  public boolean isDistinct() {
    return distinct;
  }

  public List<Criteria> getOredCriteria() {
    return oredCriteria;
  }

  public void or(Criteria criteria) {
    oredCriteria.add(criteria);
  }

  public Criteria or() {
    Criteria criteria = createCriteriaInternal();
    oredCriteria.add(criteria);
    return criteria;
  }

  public Criteria createCriteria() {
    Criteria criteria = createCriteriaInternal();
    if (oredCriteria.size() == 0) {
      oredCriteria.add(criteria);
    }
    return criteria;
  }

  protected Criteria createCriteriaInternal() {
    Criteria criteria = new Criteria();
    return criteria;
  }

  public void clear() {
    oredCriteria.clear();
    orderByClause = null;
    distinct = false;
  }

  protected abstract static class GeneratedCriteria {
    protected List<Criterion> criteria;

    protected GeneratedCriteria() {
      super();
      criteria = new ArrayList<Criterion>();
    }

    public boolean isValid() {
      return criteria.size() > 0;
    }

    public List<Criterion> getAllCriteria() {
      return criteria;
    }

    public List<Criterion> getCriteria() {
      return criteria;
    }

    protected void addCriterion(String condition) {
      if (condition == null) {
        throw new RuntimeException("Value for condition cannot be null");
      }
      criteria.add(new Criterion(condition));
    }

    protected void addCriterion(String condition, Object value, String property) {
      if (value == null) {
        throw new RuntimeException("Value for " + property + " cannot be null");
      }
      criteria.add(new Criterion(condition, value));
    }

    protected void addCriterion(String condition, Object value1, Object value2, String property) {
      if (value1 == null || value2 == null) {
        throw new RuntimeException("Between values for " + property + " cannot be null");
      }
      criteria.add(new Criterion(condition, value1, value2));
    }

    public Criteria andIdIsNull() {
      addCriterion("id is null");
      return (Criteria) this;
    }

    public Criteria andIdIsNotNull() {
      addCriterion("id is not null");
      return (Criteria) this;
    }

    public Criteria andIdEqualTo(Integer value) {
      addCriterion("id =", value, "id");
      return (Criteria) this;
    }

    public Criteria andIdNotEqualTo(Integer value) {
      addCriterion("id <>", value, "id");
      return (Criteria) this;
    }

    public Criteria andIdGreaterThan(Integer value) {
      addCriterion("id >", value, "id");
      return (Criteria) this;
    }

    public Criteria andIdGreaterThanOrEqualTo(Integer value) {
      addCriterion("id >=", value, "id");
      return (Criteria) this;
    }

    public Criteria andIdLessThan(Integer value) {
      addCriterion("id <", value, "id");
      return (Criteria) this;
    }

    public Criteria andIdLessThanOrEqualTo(Integer value) {
      addCriterion("id <=", value, "id");
      return (Criteria) this;
    }

    public Criteria andIdIn(List<Integer> values) {
      addCriterion("id in", values, "id");
      return (Criteria) this;
    }

    public Criteria andIdNotIn(List<Integer> values) {
      addCriterion("id not in", values, "id");
      return (Criteria) this;
    }

    public Criteria andIdBetween(Integer value1, Integer value2) {
      addCriterion("id between", value1, value2, "id");
      return (Criteria) this;
    }

    public Criteria andIdNotBetween(Integer value1, Integer value2) {
      addCriterion("id not between", value1, value2, "id");
      return (Criteria) this;
    }

    public Criteria andNameIsNull() {
      addCriterion("NAME is null");
      return (Criteria) this;
    }

    public Criteria andNameIsNotNull() {
      addCriterion("NAME is not null");
      return (Criteria) this;
    }

    public Criteria andNameEqualTo(String value) {
      addCriterion("NAME =", value, "name");
      return (Criteria) this;
    }

    public Criteria andNameNotEqualTo(String value) {
      addCriterion("NAME <>", value, "name");
      return (Criteria) this;
    }

    public Criteria andNameGreaterThan(String value) {
      addCriterion("NAME >", value, "name");
      return (Criteria) this;
    }

    public Criteria andNameGreaterThanOrEqualTo(String value) {
      addCriterion("NAME >=", value, "name");
      return (Criteria) this;
    }

    public Criteria andNameLessThan(String value) {
      addCriterion("NAME <", value, "name");
      return (Criteria) this;
    }

    public Criteria andNameLessThanOrEqualTo(String value) {
      addCriterion("NAME <=", value, "name");
      return (Criteria) this;
    }

    public Criteria andNameLike(String value) {
      addCriterion("NAME like", value, "name");
      return (Criteria) this;
    }

    public Criteria andNameNotLike(String value) {
      addCriterion("NAME not like", value, "name");
      return (Criteria) this;
    }

    public Criteria andNameIn(List<String> values) {
      addCriterion("NAME in", values, "name");
      return (Criteria) this;
    }

    public Criteria andNameNotIn(List<String> values) {
      addCriterion("NAME not in", values, "name");
      return (Criteria) this;
    }

    public Criteria andNameBetween(String value1, String value2) {
      addCriterion("NAME between", value1, value2, "name");
      return (Criteria) this;
    }

    public Criteria andNameNotBetween(String value1, String value2) {
      addCriterion("NAME not between", value1, value2, "name");
      return (Criteria) this;
    }

    public Criteria andSexIsNull() {
      addCriterion("sex is null");
      return (Criteria) this;
    }

    public Criteria andSexIsNotNull() {
      addCriterion("sex is not null");
      return (Criteria) this;
    }

    public Criteria andSexEqualTo(String value) {
      addCriterion("sex =", value, "sex");
      return (Criteria) this;
    }

    public Criteria andSexNotEqualTo(String value) {
      addCriterion("sex <>", value, "sex");
      return (Criteria) this;
    }

    public Criteria andSexGreaterThan(String value) {
      addCriterion("sex >", value, "sex");
      return (Criteria) this;
    }

    public Criteria andSexGreaterThanOrEqualTo(String value) {
      addCriterion("sex >=", value, "sex");
      return (Criteria) this;
    }

    public Criteria andSexLessThan(String value) {
      addCriterion("sex <", value, "sex");
      return (Criteria) this;
    }

    public Criteria andSexLessThanOrEqualTo(String value) {
      addCriterion("sex <=", value, "sex");
      return (Criteria) this;
    }

    public Criteria andSexLike(String value) {
      addCriterion("sex like", value, "sex");
      return (Criteria) this;
    }

    public Criteria andSexNotLike(String value) {
      addCriterion("sex not like", value, "sex");
      return (Criteria) this;
    }

    public Criteria andSexIn(List<String> values) {
      addCriterion("sex in", values, "sex");
      return (Criteria) this;
    }

    public Criteria andSexNotIn(List<String> values) {
      addCriterion("sex not in", values, "sex");
      return (Criteria) this;
    }

    public Criteria andSexBetween(String value1, String value2) {
      addCriterion("sex between", value1, value2, "sex");
      return (Criteria) this;
    }

    public Criteria andSexNotBetween(String value1, String value2) {
      addCriterion("sex not between", value1, value2, "sex");
      return (Criteria) this;
    }

    public Criteria andAgeIsNull() {
      addCriterion("age is null");
      return (Criteria) this;
    }

    public Criteria andAgeIsNotNull() {
      addCriterion("age is not null");
      return (Criteria) this;
    }

    public Criteria andAgeEqualTo(String value) {
      addCriterion("age =", value, "age");
      return (Criteria) this;
    }

    public Criteria andAgeNotEqualTo(String value) {
      addCriterion("age <>", value, "age");
      return (Criteria) this;
    }

    public Criteria andAgeGreaterThan(String value) {
      addCriterion("age >", value, "age");
      return (Criteria) this;
    }

    public Criteria andAgeGreaterThanOrEqualTo(String value) {
      addCriterion("age >=", value, "age");
      return (Criteria) this;
    }

    public Criteria andAgeLessThan(String value) {
      addCriterion("age <", value, "age");
      return (Criteria) this;
    }

    public Criteria andAgeLessThanOrEqualTo(String value) {
      addCriterion("age <=", value, "age");
      return (Criteria) this;
    }

    public Criteria andAgeLike(String value) {
      addCriterion("age like", value, "age");
      return (Criteria) this;
    }

    public Criteria andAgeNotLike(String value) {
      addCriterion("age not like", value, "age");
      return (Criteria) this;
    }

    public Criteria andAgeIn(List<String> values) {
      addCriterion("age in", values, "age");
      return (Criteria) this;
    }

    public Criteria andAgeNotIn(List<String> values) {
      addCriterion("age not in", values, "age");
      return (Criteria) this;
    }

    public Criteria andAgeBetween(String value1, String value2) {
      addCriterion("age between", value1, value2, "age");
      return (Criteria) this;
    }

    public Criteria andAgeNotBetween(String value1, String value2) {
      addCriterion("age not between", value1, value2, "age");
      return (Criteria) this;
    }
  }

  public static class Criteria extends GeneratedCriteria {

    protected Criteria() {
      super();
    }
  }

  public static class Criterion {
    private String condition;

    private Object value;

    private Object secondValue;

    private boolean noValue;

    private boolean singleValue;

    private boolean betweenValue;

    private boolean listValue;

    private String typeHandler;

    public String getCondition() {
      return condition;
    }

    public Object getValue() {
      return value;
    }

    public Object getSecondValue() {
      return secondValue;
    }

    public boolean isNoValue() {
      return noValue;
    }

    public boolean isSingleValue() {
      return singleValue;
    }

    public boolean isBetweenValue() {
      return betweenValue;
    }

    public boolean isListValue() {
      return listValue;
    }

    public String getTypeHandler() {
      return typeHandler;
    }

    protected Criterion(String condition) {
      super();
      this.condition = condition;
      this.typeHandler = null;
      this.noValue = true;
    }

    protected Criterion(String condition, Object value, String typeHandler) {
      super();
      this.condition = condition;
      this.value = value;
      this.typeHandler = typeHandler;
      if (value instanceof List<?>) {
        this.listValue = true;
      } else {
        this.singleValue = true;
      }
    }

    protected Criterion(String condition, Object value) {
      this(condition, value, null);
    }

    protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
      super();
      this.condition = condition;
      this.value = value;
      this.secondValue = secondValue;
      this.typeHandler = typeHandler;
      this.betweenValue = true;
    }

    protected Criterion(String condition, Object value, Object secondValue) {
      this(condition, value, secondValue, null);
    }
  }
}

2.3 生成studentMapper.java

package com.sx.kak.po;

import java.util.ArrayList;
import java.util.List;

public class StudentExample {
  protected String orderByClause;

  protected boolean distinct;

  protected List<Criteria> oredCriteria;

  public StudentExample() {
    oredCriteria = new ArrayList<Criteria>();
  }

  public void setOrderByClause(String orderByClause) {
    this.orderByClause = orderByClause;
  }

  public String getOrderByClause() {
    return orderByClause;
  }

  public void setDistinct(boolean distinct) {
    this.distinct = distinct;
  }

  public boolean isDistinct() {
    return distinct;
  }

  public List<Criteria> getOredCriteria() {
    return oredCriteria;
  }

  public void or(Criteria criteria) {
    oredCriteria.add(criteria);
  }

  public Criteria or() {
    Criteria criteria = createCriteriaInternal();
    oredCriteria.add(criteria);
    return criteria;
  }

  public Criteria createCriteria() {
    Criteria criteria = createCriteriaInternal();
    if (oredCriteria.size() == 0) {
      oredCriteria.add(criteria);
    }
    return criteria;
  }

  protected Criteria createCriteriaInternal() {
    Criteria criteria = new Criteria();
    return criteria;
  }

  public void clear() {
    oredCriteria.clear();
    orderByClause = null;
    distinct = false;
  }

  protected abstract static class GeneratedCriteria {
    protected List<Criterion> criteria;

    protected GeneratedCriteria() {
      super();
      criteria = new ArrayList<Criterion>();
    }

    public boolean isValid() {
      return criteria.size() > 0;
    }

    public List<Criterion> getAllCriteria() {
      return criteria;
    }

    public List<Criterion> getCriteria() {
      return criteria;
    }

    protected void addCriterion(String condition) {
      if (condition == null) {
        throw new RuntimeException("Value for condition cannot be null");
      }
      criteria.add(new Criterion(condition));
    }

    protected void addCriterion(String condition, Object value, String property) {
      if (value == null) {
        throw new RuntimeException("Value for " + property + " cannot be null");
      }
      criteria.add(new Criterion(condition, value));
    }

    protected void addCriterion(String condition, Object value1, Object value2, String property) {
      if (value1 == null || value2 == null) {
        throw new RuntimeException("Between values for " + property + " cannot be null");
      }
      criteria.add(new Criterion(condition, value1, value2));
    }

    public Criteria andIdIsNull() {
      addCriterion("id is null");
      return (Criteria) this;
    }

    public Criteria andIdIsNotNull() {
      addCriterion("id is not null");
      return (Criteria) this;
    }

    public Criteria andIdEqualTo(Integer value) {
      addCriterion("id =", value, "id");
      return (Criteria) this;
    }

    public Criteria andIdNotEqualTo(Integer value) {
      addCriterion("id <>", value, "id");
      return (Criteria) this;
    }

    public Criteria andIdGreaterThan(Integer value) {
      addCriterion("id >", value, "id");
      return (Criteria) this;
    }

    public Criteria andIdGreaterThanOrEqualTo(Integer value) {
      addCriterion("id >=", value, "id");
      return (Criteria) this;
    }

    public Criteria andIdLessThan(Integer value) {
      addCriterion("id <", value, "id");
      return (Criteria) this;
    }

    public Criteria andIdLessThanOrEqualTo(Integer value) {
      addCriterion("id <=", value, "id");
      return (Criteria) this;
    }

    public Criteria andIdIn(List<Integer> values) {
      addCriterion("id in", values, "id");
      return (Criteria) this;
    }

    public Criteria andIdNotIn(List<Integer> values) {
      addCriterion("id not in", values, "id");
      return (Criteria) this;
    }

    public Criteria andIdBetween(Integer value1, Integer value2) {
      addCriterion("id between", value1, value2, "id");
      return (Criteria) this;
    }

    public Criteria andIdNotBetween(Integer value1, Integer value2) {
      addCriterion("id not between", value1, value2, "id");
      return (Criteria) this;
    }

    public Criteria andNameIsNull() {
      addCriterion("NAME is null");
      return (Criteria) this;
    }

    public Criteria andNameIsNotNull() {
      addCriterion("NAME is not null");
      return (Criteria) this;
    }

    public Criteria andNameEqualTo(String value) {
      addCriterion("NAME =", value, "name");
      return (Criteria) this;
    }

    public Criteria andNameNotEqualTo(String value) {
      addCriterion("NAME <>", value, "name");
      return (Criteria) this;
    }

    public Criteria andNameGreaterThan(String value) {
      addCriterion("NAME >", value, "name");
      return (Criteria) this;
    }

    public Criteria andNameGreaterThanOrEqualTo(String value) {
      addCriterion("NAME >=", value, "name");
      return (Criteria) this;
    }

    public Criteria andNameLessThan(String value) {
      addCriterion("NAME <", value, "name");
      return (Criteria) this;
    }

    public Criteria andNameLessThanOrEqualTo(String value) {
      addCriterion("NAME <=", value, "name");
      return (Criteria) this;
    }

    public Criteria andNameLike(String value) {
      addCriterion("NAME like", value, "name");
      return (Criteria) this;
    }

    public Criteria andNameNotLike(String value) {
      addCriterion("NAME not like", value, "name");
      return (Criteria) this;
    }

    public Criteria andNameIn(List<String> values) {
      addCriterion("NAME in", values, "name");
      return (Criteria) this;
    }

    public Criteria andNameNotIn(List<String> values) {
      addCriterion("NAME not in", values, "name");
      return (Criteria) this;
    }

    public Criteria andNameBetween(String value1, String value2) {
      addCriterion("NAME between", value1, value2, "name");
      return (Criteria) this;
    }

    public Criteria andNameNotBetween(String value1, String value2) {
      addCriterion("NAME not between", value1, value2, "name");
      return (Criteria) this;
    }

    public Criteria andSexIsNull() {
      addCriterion("sex is null");
      return (Criteria) this;
    }

    public Criteria andSexIsNotNull() {
      addCriterion("sex is not null");
      return (Criteria) this;
    }

    public Criteria andSexEqualTo(String value) {
      addCriterion("sex =", value, "sex");
      return (Criteria) this;
    }

    public Criteria andSexNotEqualTo(String value) {
      addCriterion("sex <>", value, "sex");
      return (Criteria) this;
    }

    public Criteria andSexGreaterThan(String value) {
      addCriterion("sex >", value, "sex");
      return (Criteria) this;
    }

    public Criteria andSexGreaterThanOrEqualTo(String value) {
      addCriterion("sex >=", value, "sex");
      return (Criteria) this;
    }

    public Criteria andSexLessThan(String value) {
      addCriterion("sex <", value, "sex");
      return (Criteria) this;
    }

    public Criteria andSexLessThanOrEqualTo(String value) {
      addCriterion("sex <=", value, "sex");
      return (Criteria) this;
    }

    public Criteria andSexLike(String value) {
      addCriterion("sex like", value, "sex");
      return (Criteria) this;
    }

    public Criteria andSexNotLike(String value) {
      addCriterion("sex not like", value, "sex");
      return (Criteria) this;
    }

    public Criteria andSexIn(List<String> values) {
      addCriterion("sex in", values, "sex");
      return (Criteria) this;
    }

    public Criteria andSexNotIn(List<String> values) {
      addCriterion("sex not in", values, "sex");
      return (Criteria) this;
    }

    public Criteria andSexBetween(String value1, String value2) {
      addCriterion("sex between", value1, value2, "sex");
      return (Criteria) this;
    }

    public Criteria andSexNotBetween(String value1, String value2) {
      addCriterion("sex not between", value1, value2, "sex");
      return (Criteria) this;
    }

    public Criteria andAgeIsNull() {
      addCriterion("age is null");
      return (Criteria) this;
    }

    public Criteria andAgeIsNotNull() {
      addCriterion("age is not null");
      return (Criteria) this;
    }

    public Criteria andAgeEqualTo(String value) {
      addCriterion("age =", value, "age");
      return (Criteria) this;
    }

    public Criteria andAgeNotEqualTo(String value) {
      addCriterion("age <>", value, "age");
      return (Criteria) this;
    }

    public Criteria andAgeGreaterThan(String value) {
      addCriterion("age >", value, "age");
      return (Criteria) this;
    }

    public Criteria andAgeGreaterThanOrEqualTo(String value) {
      addCriterion("age >=", value, "age");
      return (Criteria) this;
    }

    public Criteria andAgeLessThan(String value) {
      addCriterion("age <", value, "age");
      return (Criteria) this;
    }

    public Criteria andAgeLessThanOrEqualTo(String value) {
      addCriterion("age <=", value, "age");
      return (Criteria) this;
    }

    public Criteria andAgeLike(String value) {
      addCriterion("age like", value, "age");
      return (Criteria) this;
    }

    public Criteria andAgeNotLike(String value) {
      addCriterion("age not like", value, "age");
      return (Criteria) this;
    }

    public Criteria andAgeIn(List<String> values) {
      addCriterion("age in", values, "age");
      return (Criteria) this;
    }

    public Criteria andAgeNotIn(List<String> values) {
      addCriterion("age not in", values, "age");
      return (Criteria) this;
    }

    public Criteria andAgeBetween(String value1, String value2) {
      addCriterion("age between", value1, value2, "age");
      return (Criteria) this;
    }

    public Criteria andAgeNotBetween(String value1, String value2) {
      addCriterion("age not between", value1, value2, "age");
      return (Criteria) this;
    }
  }

  public static class Criteria extends GeneratedCriteria {

    protected Criteria() {
      super();
    }
  }

  public static class Criterion {
    private String condition;

    private Object value;

    private Object secondValue;

    private boolean noValue;

    private boolean singleValue;

    private boolean betweenValue;

    private boolean listValue;

    private String typeHandler;

    public String getCondition() {
      return condition;
    }

    public Object getValue() {
      return value;
    }

    public Object getSecondValue() {
      return secondValue;
    }

    public boolean isNoValue() {
      return noValue;
    }

    public boolean isSingleValue() {
      return singleValue;
    }

    public boolean isBetweenValue() {
      return betweenValue;
    }

    public boolean isListValue() {
      return listValue;
    }

    public String getTypeHandler() {
      return typeHandler;
    }

    protected Criterion(String condition) {
      super();
      this.condition = condition;
      this.typeHandler = null;
      this.noValue = true;
    }

    protected Criterion(String condition, Object value, String typeHandler) {
      super();
      this.condition = condition;
      this.value = value;
      this.typeHandler = typeHandler;
      if (value instanceof List<?>) {
        this.listValue = true;
      } else {
        this.singleValue = true;
      }
    }

    protected Criterion(String condition, Object value) {
      this(condition, value, null);
    }

    protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
      super();
      this.condition = condition;
      this.value = value;
      this.secondValue = secondValue;
      this.typeHandler = typeHandler;
      this.betweenValue = true;
    }

    protected Criterion(String condition, Object value, Object secondValue) {
      this(condition, value, secondValue, null);
    }
  }
}

2.4 生成StudentMapper.xml

<?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.sx.kak.mapper.StudentMapper" >
 <resultMap id="BaseResultMap" type="com.sx.kak.po.Student" >
  <id column="id" property="id" jdbcType="INTEGER" />
  <result column="NAME" property="name" jdbcType="VARCHAR" />
  <result column="sex" property="sex" jdbcType="VARCHAR" />
  <result column="age" property="age" jdbcType="VARCHAR" />
 </resultMap>
 <sql id="Example_Where_Clause" >
  <where >
   <foreach collection="oredCriteria" item="criteria" separator="or" >
    <if test="criteria.valid" >
     <trim prefix="(" suffix=")" prefixOverrides="and" >
      <foreach collection="criteria.criteria" item="criterion" >
       <choose >
        <when test="criterion.noValue" >
         and ${criterion.condition}
        </when>
        <when test="criterion.singleValue" >
         and ${criterion.condition} #{criterion.value}
        </when>
        <when test="criterion.betweenValue" >
         and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
        </when>
        <when test="criterion.listValue" >
         and ${criterion.condition}
         <foreach collection="criterion.value" item="listItem" open="(" close=")" separator="," >
          #{listItem}
         </foreach>
        </when>
       </choose>
      </foreach>
     </trim>
    </if>
   </foreach>
  </where>
 </sql>
 <sql id="Update_By_Example_Where_Clause" >
  <where >
   <foreach collection="example.oredCriteria" item="criteria" separator="or" >
    <if test="criteria.valid" >
     <trim prefix="(" suffix=")" prefixOverrides="and" >
      <foreach collection="criteria.criteria" item="criterion" >
       <choose >
        <when test="criterion.noValue" >
         and ${criterion.condition}
        </when>
        <when test="criterion.singleValue" >
         and ${criterion.condition} #{criterion.value}
        </when>
        <when test="criterion.betweenValue" >
         and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
        </when>
        <when test="criterion.listValue" >
         and ${criterion.condition}
         <foreach collection="criterion.value" item="listItem" open="(" close=")" separator="," >
          #{listItem}
         </foreach>
        </when>
       </choose>
      </foreach>
     </trim>
    </if>
   </foreach>
  </where>
 </sql>
 <sql id="Base_Column_List" >
  id, NAME, sex, age
 </sql>
 <select id="selectByExample" resultMap="BaseResultMap" parameterType="com.sx.kak.po.StudentExample" >
  select
  <if test="distinct" >
   distinct
  </if>
  <include refid="Base_Column_List" />
  from student
  <if test="_parameter != null" >
   <include refid="Example_Where_Clause" />
  </if>
  <if test="orderByClause != null" >
   order by ${orderByClause}
  </if>
 </select>
 <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
  select 
  <include refid="Base_Column_List" />
  from student
  where id = #{id,jdbcType=INTEGER}
 </select>
 <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer" >
  delete from student
  where id = #{id,jdbcType=INTEGER}
 </delete>
 <delete id="deleteByExample" parameterType="com.sx.kak.po.StudentExample" >
  delete from student
  <if test="_parameter != null" >
   <include refid="Example_Where_Clause" />
  </if>
 </delete>
 <insert id="insert" parameterType="com.sx.kak.po.Student" >
  insert into student (id, NAME, sex, 
   age)
  values (#{id,jdbcType=INTEGER}, #{name,jdbcType=VARCHAR}, #{sex,jdbcType=VARCHAR}, 
   #{age,jdbcType=VARCHAR})
 </insert>
 <insert id="insertSelective" parameterType="com.sx.kak.po.Student" >
  insert into student
  <trim prefix="(" suffix=")" suffixOverrides="," >
   <if test="id != null" >
    id,
   </if>
   <if test="name != null" >
    NAME,
   </if>
   <if test="sex != null" >
    sex,
   </if>
   <if test="age != null" >
    age,
   </if>
  </trim>
  <trim prefix="values (" suffix=")" suffixOverrides="," >
   <if test="id != null" >
    #{id,jdbcType=INTEGER},
   </if>
   <if test="name != null" >
    #{name,jdbcType=VARCHAR},
   </if>
   <if test="sex != null" >
    #{sex,jdbcType=VARCHAR},
   </if>
   <if test="age != null" >
    #{age,jdbcType=VARCHAR},
   </if>
  </trim>
 </insert>
 <select id="countByExample" parameterType="com.sx.kak.po.StudentExample" resultType="java.lang.Integer" >
  select count(*) from student
  <if test="_parameter != null" >
   <include refid="Example_Where_Clause" />
  </if>
 </select>
 <update id="updateByExampleSelective" parameterType="map" >
  update student
  <set >
   <if test="record.id != null" >
    id = #{record.id,jdbcType=INTEGER},
   </if>
   <if test="record.name != null" >
    NAME = #{record.name,jdbcType=VARCHAR},
   </if>
   <if test="record.sex != null" >
    sex = #{record.sex,jdbcType=VARCHAR},
   </if>
   <if test="record.age != null" >
    age = #{record.age,jdbcType=VARCHAR},
   </if>
  </set>
  <if test="_parameter != null" >
   <include refid="Update_By_Example_Where_Clause" />
  </if>
 </update>
 <update id="updateByExample" parameterType="map" >
  update student
  set id = #{record.id,jdbcType=INTEGER},
   NAME = #{record.name,jdbcType=VARCHAR},
   sex = #{record.sex,jdbcType=VARCHAR},
   age = #{record.age,jdbcType=VARCHAR}
  <if test="_parameter != null" >
   <include refid="Update_By_Example_Where_Clause" />
  </if>
 </update>
 <update id="updateByPrimaryKeySelective" parameterType="com.sx.kak.po.Student" >
  update student
  <set >
   <if test="name != null" >
    NAME = #{name,jdbcType=VARCHAR},
   </if>
   <if test="sex != null" >
    sex = #{sex,jdbcType=VARCHAR},
   </if>
   <if test="age != null" >
    age = #{age,jdbcType=VARCHAR},
   </if>
  </set>
  where id = #{id,jdbcType=INTEGER}
 </update>
 <update id="updateByPrimaryKey" parameterType="com.sx.kak.po.Student" >
  update student
  set NAME = #{name,jdbcType=VARCHAR},
   sex = #{sex,jdbcType=VARCHAR},
   age = #{age,jdbcType=VARCHAR}
  where id = #{id,jdbcType=INTEGER}
 </update>
</mapper>

2.5 编写application.yml

server:
 port: 8080
spring:
 datasource:
  driver-class-name: com.mysql.cj.jdbc.Driver
  url: jdbc:mysql://localhost:3306/db0711?characterEncoding=utf8&serverTimezone=UTC
  username: root
  password: root
mybatis:
 type-aliases-package: po
 mapper-locations: classpath:mapping/*.xml

2.6 编写JsonUtils工具类

package com.sx.kak.utils;

import java.util.List;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JavaType;
import com.fasterxml.jackson.databind.ObjectMapper;


public class JsonUtils {

  // 定义jackson对象
  private static final ObjectMapper MAPPER = new ObjectMapper();

  /**
   * 将对象转换成json字符串。
   * <p>Title: pojoToJson</p>
   * <p>Description: </p>
   * @param data
   * @return
   */
  public static String objectToJson(Object data) {
  	try {
			String string = MAPPER.writeValueAsString(data);
			return string;
		} catch (JsonProcessingException e) {
			e.printStackTrace();
		}
  	return null;
  }
  
  /**
   * 将json结果集转化为对象
   * 
   * @param jsonData json数据
   * @param clazz 对象中的object类型
   * @return
   */
  public static <T> T jsonToPojo(String jsonData, Class<T> beanType) {
    try {
      T t = MAPPER.readValue(jsonData, beanType);
      return t;
    } catch (Exception e) {
    	e.printStackTrace();
    }
    return null;
  }
  
  /**
   * 将json数据转换成pojo对象list
   * <p>Title: jsonToList</p>
   * <p>Description: </p>
   * @param jsonData
   * @param beanType
   * @return
   */
  public static <T>List<T> jsonToList(String jsonData, Class<T> beanType) {
  	JavaType javaType = MAPPER.getTypeFactory().constructParametricType(List.class, beanType);
  	try {
  		List<T> list = MAPPER.readValue(jsonData, javaType);
  		return list;
		} catch (Exception e) {
			e.printStackTrace();
		}
  	return null;
  }
}

2.7 编写RedisUtils工具类

package com.sx.kak.utils;

import java.util.List;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JavaType;
import com.fasterxml.jackson.databind.ObjectMapper;


public class JsonUtils {

  // 定义jackson对象
  private static final ObjectMapper MAPPER = new ObjectMapper();

  /**
   * 将对象转换成json字符串。
   * <p>Title: pojoToJson</p>
   * <p>Description: </p>
   * @param data
   * @return
   */
  public static String objectToJson(Object data) {
  	try {
			String string = MAPPER.writeValueAsString(data);
			return string;
		} catch (JsonProcessingException e) {
			e.printStackTrace();
		}
  	return null;
  }
  
  /**
   * 将json结果集转化为对象
   * 
   * @param jsonData json数据
   * @param clazz 对象中的object类型
   * @return
   */
  public static <T> T jsonToPojo(String jsonData, Class<T> beanType) {
    try {
      T t = MAPPER.readValue(jsonData, beanType);
      return t;
    } catch (Exception e) {
    	e.printStackTrace();
    }
    return null;
  }
  
  /**
   * 将json数据转换成pojo对象list
   * <p>Title: jsonToList</p>
   * <p>Description: </p>
   * @param jsonData
   * @param beanType
   * @return
   */
  public static <T>List<T> jsonToList(String jsonData, Class<T> beanType) {
  	JavaType javaType = MAPPER.getTypeFactory().constructParametricType(List.class, beanType);
  	try {
  		List<T> list = MAPPER.readValue(jsonData, javaType);
  		return list;
		} catch (Exception e) {
			e.printStackTrace();
		}
  	return null;
  }
}

2.8 编写RedisUtils工具类的实现类

package com.sx.kak.utils;

import redis.clients.jedis.Jedis;

/**
 * Created by Kak on 2020/9/17.
 */
public class SingleTonRedisUtil implements RedisUtils{
  private Jedis jedis;
  public SingleTonRedisUtil(Jedis jedis){
    this.jedis = jedis;
  }
  @Override
  public void hset(String key, String filed, String value) {
    jedis.hset(key, filed, value);
  }

  @Override
  public String hget(String key, String field) {
    return jedis.hget(key, field);
  }
}

2.9 配置初始化文件

package com.sx.kak.config;

import com.sx.kak.utils.SingleTonRedisUtil;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import redis.clients.jedis.Jedis;

/**
 * Created by Kak on 2020/9/17.
 */
@Configuration
public class RedisConfig {
  @Bean
  public SingleTonRedisUtil singleTonRedisUtil(@Qualifier("jedis") Jedis jedis){
    SingleTonRedisUtil singleTonRedisUtil = new SingleTonRedisUtil(jedis);
    return singleTonRedisUtil;
  }

  @Bean(name = "jedis")
  public Jedis getJedis(){
    Jedis jedis = new Jedis("127.0.0.1",6379);
    return jedis;
  }
}

2.10 配置StudentService.java

package com.sx.kak.service;

import com.sx.kak.po.Student;

import java.util.List;

/**
 * Created by Kak on 2020/9/17.
 */
public interface StudentService {
  public List<Student> findAllStudent();
}

2.11 配置StudentServiceImpl.java

package com.sx.kak.service.serviceImpl;

import com.sx.kak.mapper.StudentMapper;
import com.sx.kak.po.Student;
import com.sx.kak.po.StudentExample;
import com.sx.kak.service.StudentService;
import com.sx.kak.utils.JsonUtils;
import com.sx.kak.utils.SingleTonRedisUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * Created by Kak on 2020/9/17.
 */
@Service
@Slf4j
public class StudentServiceImpl implements StudentService {
  @Autowired(required = false)
  private StudentMapper studentMapper;
  //注入自定义的redis工具
  @Autowired
  private SingleTonRedisUtil redisUtil;

  @Override
  public List<Student> findAllStudent() {
    //获取redis中存出的json字符串
    String student = redisUtil.hget("student", "0");
    if(student!=null){
      log.info("get student from redis");
      //json对象,封装的对象类型
      List<Student> students = JsonUtils.jsonToList(student, Student.class);
      return students;
    }
    //创建查询模板对象
    StudentExample studentExample = new StudentExample();
    List<Student> students = studentMapper.selectByExample(studentExample);
    log.info("get student from db");
    try{
      //将查询的集合转化为json字符串
      String s = JsonUtils.objectToJson(students);
      //放入redis中
      redisUtil.hset("student","0",s);
      log.info("set data to redis");
    }catch (Exception ex){
      log.info(ex.getMessage());
    }
    return students;
  }
}

2.12 编写全查展示页面

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
  <meta charset="UTF-8"/>
  <title>学生全查页面</title>
</head>

<body>
<div id="findAll">
  <table>
    <tr>
      <th>ID</th>
      <th>NAME</th>
      <th>SEX</th>
      <th>AGE</th>
      <th>Action</th>
    </tr>
    <tr th:each="s:${students}">
      <td th:text="${s.id}"></td>
      <td th:text="${s.name}"></td>
      <td th:text="${s.sex}"></td>
      <td th:text="${s.age}"></td>
    </tr>
  </table>
</div>
</body>
</html>

2.13 编写StudentController

package com.sx.kak.Controller;

import com.sx.kak.po.Student;
import com.sx.kak.service.StudentService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

/**
 * Created by Kak on 2020/9/17.
 */
@Controller
public class StudentController {
  @Autowired(required = false)
  private StudentService studentService;

  @RequestMapping("/findStudent")
  public String findAllStu(Model model){
    List<Student> allStudent = studentService.findAllStudent();
    model.addAttribute("students",allStudent);
    return "showAllStudent";
  }
}

在这里插入图片描述

3. 结果

从打印出的日志可以看出,第一次访问是从数据库得到数据,然后存入redis中

第二次直接从redis中获取

在这里插入图片描述

到此这篇关于Java中的使用及连接Redis数据库(附源码)的文章就介绍到这了,更多相关Java 使用及连接Redis内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • SpringBoot 使用定时任务(SpringTask)的详细步骤

    SpringBoot 使用定时任务(SpringTask)的详细步骤

    Cron 表达式非常灵活,可以满足各种定时任务的需求,但需要注意的是,Cron 表达式只能表示固定的时间点,无法处理复杂的时间逻辑,本文给大家介绍SpringBoot 使用定时任务(SpringTask)的详细步骤,感兴趣的朋友一起看看吧
    2024-02-02
  • 详解SpringCloud-Alibaba-Seata分布式事务

    详解SpringCloud-Alibaba-Seata分布式事务

    这篇文章主要介绍了SpringCloud-Alibaba-Seata分布式事务的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • 远程连接Jedis和整合SpringBoot的详细过程

    远程连接Jedis和整合SpringBoot的详细过程

    这篇文章主要介绍了远程连接Jedis和整合SpringBoot的详细过程,本文通过图文实例相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-08-08
  • 浅谈JVM内存溢出原因和解决思路

    浅谈JVM内存溢出原因和解决思路

    本文主要介绍了浅谈JVM内存溢出原因和解决思路,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12
  • 深入理解JAVA核心:揭秘反射机制的奥秘

    深入理解JAVA核心:揭秘反射机制的奥秘

    欢迎来到JAVA反射机制指南!想要了解如何在JAVA中实现灵活的编程技巧吗?本指南将带你揭开JAVA反射机制的神秘面纱,让你的编程世界更加精彩!赶紧跟我一起来探索吧!
    2024-02-02
  • Java语言实现简单FTP软件 FTP软件主界面(4)

    Java语言实现简单FTP软件 FTP软件主界面(4)

    这篇文章主要为大家详细介绍了Java语言实现简单FTP软件,FTP软件主界面编写的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-03-03
  • java jdk1.8 使用stream流进行list 分组归类操作

    java jdk1.8 使用stream流进行list 分组归类操作

    这篇文章主要介绍了java jdk1.8 使用stream流进行list 分组归类操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-10-10
  • 详解在spring boot中配置多个DispatcherServlet

    详解在spring boot中配置多个DispatcherServlet

    本篇文章主要介绍了详解在spring boot中配置多个DispatcherServlet,具有一定的参考价值,有兴趣的可以了解一下。
    2017-03-03
  • Java 关于时间复杂度和空间复杂度的深度刨析

    Java 关于时间复杂度和空间复杂度的深度刨析

    算法复杂度分为时间复杂度和空间复杂度。其作用: 时间复杂度是度量算法执行的时间长短;而空间复杂度是度量算法所需存储空间的大小
    2021-11-11
  • 使用Java如何对复杂的数据类型排序和比大小

    使用Java如何对复杂的数据类型排序和比大小

    我相信大家在第一次接触算法的时候,最先接触的肯定也是从排序算法开始的,下面这篇文章主要给大家介绍了关于使用Java如何对复杂的数据类型排序和比大小的相关资料,需要的朋友可以参考下
    2023-12-12

最新评论