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);
}
}