本章讲解SpringBoot整合SpringData JPA的相关知识
1.概念
相信大家对SpringData JPA并不陌生,我们之前学过了它的一些相关的操作。
SpringData JPA板块传送门——SpringData JPA
之前做的是Spring+SpringData JPA,配置文件编写的异常麻烦。但是我们使用了SpringBoot之后,一切就变的轻松加愉快!
2.SpringBoot整合SpringData JPA步骤
1)新建相关项目
2)修改pom文件,引入必要的依赖
4.0.0
org.springframework.boot
spring-boot-starter-parent
2.1.7.RELEASE
cn.edu.ccut
springboot-jpa
0.0.1-SNAPSHOT
1.8
3.1.0
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-thymeleaf
org.springframework.boot
spring-boot-starter-data-jpa
mysql
mysql-connector-java
5.1.47
com.alibaba
druid
1.1.20
org.springframework.boot
spring-boot-devtools
org.springframework.boot
spring-boot-starter-test
org.springframework.boot
spring-boot-maven-plugin
cn.edu.ccut.App
以上呢就是整合SpringData JPA所需要的一些相关的依赖。
3)修改application.properties
#Mysql JDBC
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/jwang
spring.datasource.username=root
spring.datasource.password=root
#Druid Pool
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
#SpringData JPA
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
你会发现,引入了SpringBoot之后,整合SpringData JPA 无需配置多少东西的!!!
4)创建实体类
package cn.edu.ccut.bo;
import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Entity
public class Users implements Serializable {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)//自增长
private Integer id;
private String username;
private String password;
public Users() {
}
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;
}
@Override
public String toString() {
return "User{" +
"id='" + id + '\'' +
", username='" + username + '\'' +
", password='" + password + '\'' +
'}';
}
}
5)创建Dao层接口
package cn.edu.ccut.dao;
import org.springframework.data.jpa.repository.JpaRepository;
import cn.edu.ccut.bo.Users;
/**
* 继承JpaRepository接口
* T传入当前操作的实体类,ID传入该类的主键类型
* @author jwang
*
*/
public interface UserDAO extends JpaRepository{
}
你没有看错,本次示例就是空的接口哦。
6)services相关实现
package cn.edu.ccut.service.impl;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import cn.edu.ccut.bo.Users;
import cn.edu.ccut.dao.UserDAO;
import cn.edu.ccut.service.UserService;
@Service
@Transactional
public class UserServiceImpl implements UserService{
@Autowired
private UserDAO userDao;
@Override
public List getAllUser() {
return userDao.findAll();
}
}
本次的业务方法为查找全部用户信息。
7)controller层实现
package cn.edu.ccut.controller;
import java.util.List;
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 cn.edu.ccut.bo.Users;
import cn.edu.ccut.service.UserService;
@Controller
public class UserController {
@Autowired
private UserService userService;
@RequestMapping("/show")
public String showUser(Model model){
List allUser = userService.getAllUser();
model.addAttribute("users", allUser);
return "show";
}
}
8)页面展示相关
SpringBoot+SpringData JPA
编号
姓名
密码
9)测试用例方法
package cn.edu.ccut.test;
import java.util.List;
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.SpringJUnit4ClassRunner;
import cn.edu.ccut.App;
import cn.edu.ccut.bo.Users;
import cn.edu.ccut.service.UserService;
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes={App.class})
public class UserTest {
@Autowired
private UserService userService;
@Test
public void testFindAllUser() {
List users = userService.getAllUser();
for (Users user : users) {
System.out.println(user);
}
}
}
测试用例执行结果:
10)启动项目,访问http://localhost:8080/show,观察效果