1. 程式人生 > >SpringBoot(二)整合Redis-整合Mybatis

SpringBoot(二)整合Redis-整合Mybatis

整合Redis

一:新增依賴


		<!-- Redis依賴 -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-data-redis</artifactId>
		</dependency>

二:配置Redis引數

spring:
    redis:
        host: localhost
        port: 6379
        database: 0
        jedis:
          pool:
            max-idle: 8
            min-idle: 1
            max-active: 8
            max-wait: -1

三:注入StringRedisTemplate

@RestController
public class RedisController {
	@Autowired
	private  StringRedisTemplate redis;
	
	@GetMapping(value="/test")
	public Object test() {
		
		return null;
	}
}

三:獲取操作單元


	@GetMapping(value="/test")
	public String test() {
		//String
		ValueOperations<String, String> value = redis.opsForValue();
		//hash
		HashOperations<String, Object, Object> hash = redis.opsForHash();
		//set
		SetOperations<String, String> set = redis.opsForSet();
		//list
		ListOperations<String, String> list = redis.opsForList();
		
		value.set("string", "今天天氣不錯");
		String str = value.get("string");
		System.out.println(str);
		return str;
	}

結果:訪問結果

redis資料庫:

這裡有問題一:我想儲存物件怎麼辦??

方法一:將物件序列化後,存入

方法二:將物件轉化為json格式字串存入。

這裡推薦第二種,物件轉json格式字串

一:先導個包

習慣使用fastjson

                <!-- fastjson支援 -->
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>fastjson</artifactId>
			<version>1.2.51</version>
		</dependency>

二:使用

        @GetMapping(value="/test")
	public Object test() {
		//String
		ValueOperations<String, String> value = redis.opsForValue();
		//hash
		HashOperations<String, Object, Object> hash = redis.opsForHash();
		//set
		SetOperations<String, String> set = redis.opsForSet();
		//list
		ListOperations<String, String> list = redis.opsForList();
		
		//存取字串
		value.set("string", "今天天氣不錯");
		String str = value.get("string");
		
		//存取物件
		user u = new user(1, "大黃", 2);
		String jsonStr = JSON.toJSONString(u);
		value.set("user", jsonStr);
		
		jsonStr = value.get("user");
		u = JSON.parseObject(jsonStr, user.class);
		
		return u;
	}

三:結果

訪問結果:

Redis資料庫:

整合mybatis

一:新增依賴

                <!-- mybatis依賴 -->
		<dependency>
			<groupId>org.mybatis.spring.boot</groupId>
			<artifactId>mybatis-spring-boot-starter</artifactId>
			<version>1.3.2</version>
		</dependency>
                <!-- mysql依賴 -->
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
		</dependency>

二:配置資料庫

spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/springboot
    username: root
    password: xxxx
mybatis:
  mapper-locations: classpath:mapper/*mapper.xml   
  type-aliases-package: com.example.demo.bean

 type-aliases-package:這個指向bean所在的包

 mapper-locations:這個執行配置檔案在的位置

三:bean

@Entity
@JsonIgnoreProperties(value = {"hibernateLazyInitializer", "handler"})
public class user {
	@Id
	@GeneratedValue(strategy= GenerationType.IDENTITY)
	private int id;
	private String name;
	private int age;
        ...
}

@JsonIgnoreProperties(value = {"hibernateLazyInitializer", "handler"})   轉換json格式的時候忽略hibernateLazyInitializer

@GeneratedValue(strategy= GenerationType.IDENTITY)       自增長

四:書寫Mapper

這裡有個岔路,傳統的xml和註解兩種方法

一:xml

userMapper

@Mapper
public interface userMapper {
	// 查詢全部
	public List<user> findAll();

	// 根據id查詢
	public user findById(int id);
}

@Mapper   介面會在編譯時生成相對應的實現類

userMapper.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.example.demo.mapper.userMapper">
	<select id="findAll" resultType="user">
		select * from user
	</select>
	
	<select id="findById"  resultType="user" >
	select * from user where id=#{id}
	</select>
	
</mapper>

ok!!

二:註解方式

@Mapper
public interface userMapper {

	// 刪除id
	@Delete("delete from user where id=#{id}")
	public void delete(int id);

	// 新增
	@Insert("insert into user(age,name) values(#{age},#{name})")
	public void add(user user);

	// 修改
	@Update("update user set name=#{name},age=#{age} where id=#{id}")
	public void update(user user);
}

OK!!

五:使用

使用的時候注入userMapper

@RestController
@RequestMapping(value = "/mybatis")
public class mybatisUserController {
	@Autowired
	private userMapper userMapper;

	@GetMapping(value = "/user")
	public List<user> findAll() {
		return userMapper.findAll();
	}
	
	@GetMapping(value="/user/{id}")
	public user findById(@PathVariable("id")int id) {
		return userMapper.findById(id);
	}
	@PostMapping(value="/add")
	public user add(user user) {
	    userMapper.add(user);
	    return user;
	}
	
	@PostMapping(value="/update")
	public void update(user user) {
		userMapper.update(user);
	}
	@GetMapping(value="/del/{id}")
	public void del(@PathVariable("id")int id) {
		userMapper.delete(id);
	}
}