SpringBoot(二)整合Redis-整合Mybatis
阿新 • • 發佈:2018-12-17
整合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);
}
}