一.pom.xml
1.代碼塊
<parent>
<!-- boot啓動器 -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.2.RELEASE</version>
</parent>
<dependencies>
<!-- springBoot JPA的起步依賴 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!-- mysql數據庫驅動 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- spring測試的啓動器 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- springBootWeb啓動器 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- 配置使用redis啓動器 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
</dependencies>
2.範例
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-JQFIODVU-1590489256561)(https://uploader.shimo.im/f/LTlba2UvA8olpRlW.png!thumbnail)]
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-RNCOxwS9-1590489256562)(https://uploader.shimo.im/f/bSAJXMqnv5Vs5gyN.png!thumbnail)]
二.配置文件
1.代碼塊
#DB Configuration:
spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/db2?useUnicode=true&characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=root
#JPA Configuration:
spring.jpa.database=MySQL
spring.jpa.show-sql=true
spring.jpa.generate-ddl=true
spring.jpa.hibernate.ddl-auto=update
spring.jpa.hibernate.naming_strategy=org.hibernate.cfg.ImprovedNamingStrategy
#Redis
spring.redis.host=127.0.0.1
spring.redis.port=6379
2.範例
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-gxYok9DK-1590489256564)(https://uploader.shimo.im/f/yNZx4NVsqSkLg6lL.png!thumbnail)]
三.啓動類
1.代碼塊
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* springBoot整合jpa
*/
@SpringBootApplication
public class BootAppliacation {
public static void main(String[] args) {
SpringApplication.run(BootAppliacation.class, args);
}
}
2.範例
四.dao層
1.代碼塊
import com.pojo.User;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import java.util.List;
public interface UserMapper extends JpaRepository<User,Integer>, JpaSpecificationExecutor<User> {
public List<User> findAll();
}
2.範例
五.pojo層
1.代碼塊
import javax.persistence.*;
import java.io.Serializable;
@Entity
@Table(name = "user")
public class User implements Serializable {
@Id
@GeneratedValue
@Column(name = "id")
private Integer id;
@Column(name = "username")
private String username;
@Column(name = "password")
private String password;
@Column(name = "name")
private String name;
@Override
public String toString() {
return "User{" +
"id=" + id +
", username='" + username + '\'' +
", password='" + password + '\'' +
", name='" + name + '\'' +
'}';
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
2.範例
六.測試類一【jpa】
1.代碼塊
import com.BootAppliacation;
import com.mapper.UserMapper;
import com.pojo.User;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import java.util.List;
@RunWith(SpringRunner.class)
@SpringBootTest(classes= com.BootAppliacation.class)
public class UserTest {
@Autowired
private UserMapper userMapper;
@Test
public void test1(){
List<User> users = userMapper.findAll();
System.out.println(users);
}
}
2.範例
七.測試類二【redis】
1.代碼塊
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.mapper.UserMapper;
import com.pojo.User;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.junit4.SpringRunner;
import java.util.List;
@RunWith(SpringRunner.class)
@SpringBootTest(classes= com.BootAppliacation.class)
public class RedisTest {
@Autowired
private RedisTemplate<String,String> redisTemplate;
@Autowired
private UserMapper userMapper;
@Test
public void test1() throws JsonProcessingException {
//1.從redis獲取數據,數據形式爲json字符串
String userListJson = redisTemplate.boundValueOps("user.findAll").get();
//2.判斷redis是否存在數據
if (null == userListJson) {
//3.1如果不存在,則從數據庫查詢
List<User> users = userMapper.findAll();
//3.2查詢的數據存儲到redis緩存
//3.2.1使用jackson進行數據類型轉換
ObjectMapper objectMapper = new ObjectMapper();
//3.2.2將list轉換爲json字符串
userListJson = objectMapper.writeValueAsString(users);
//3.3存儲到redis緩存中
redisTemplate.boundValueOps("user.findAll").set(userListJson);
System.out.println("-----------從數據庫查詢--------");
System.out.println(userListJson);
}else {
//5.打印數據驗證結果
System.out.println("-------從redis緩存獲取數據------");
System.out.println(userListJson);
}
}
}
2.範例
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-rHH1XW58-1590489256571)(https://uploader.shimo.im/f/ZRgaY3pOJeom4If3.png!thumbnail)]