Spring Boot入门系列九(SpringBoot 使用Spring Data JPA 连接Mysql数据库) SpringBoot 整合 Spring Data JPA 实现数据库操作的项目

最近在学习Spring Data JPA的相关知识,感觉还是很不错的,提供了很多方法,包括CRUD和分页排序,基本能够满足现实的功能需求.
它一共提供了四个接口:

  1. Repository: 仅仅是一个标识,表明任何继承它的均为仓库接口类,方便Spring自动扫描识别
  2. CrudRepository: 继承Repository,实现了一组CRUD相关的方法
  3. PagingAndSortingRepository: 继承CrudRepository,实现了一组分页排序相关的方法
  4. JpaRepository: 继承PagingAndSortingRepository,实现一组JPA规范相关的方法
  5. JpaSpecificationExecutor: 比较特殊,不属于Repository体系,实现一组JPA Criteria查询相关的方法

一、在mysql中的test库中建立user表,并插入两条数据,为后续做好准备

    Spring Boot入门系列九(SpringBoot 使用Spring Data JPA 连接Mysql数据库)
SpringBoot 整合 Spring Data JPA 实现数据库操作的项目

二、在pom.xml中添加依赖

<!-- spring data JPA -->
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

  Spring Boot入门系列九(SpringBoot 使用Spring Data JPA 连接Mysql数据库)
SpringBoot 整合 Spring Data JPA 实现数据库操作的项目

三、建立与数据库表对应的实体OyUser

/**
 * @author oyc
 * @Description:用户实体类
 * @date 2018/7/8 22:51
 */
@Entity
@Table(name = "oy_user")
public class OyUser {
    //用户id
    @Id
    private String id;
    //用户名称
    private String name;
    //户年龄
    private String age;
    //用户性别
    private String sex;
   //省略了getter和setter方法  
}

  Spring Boot入门系列九(SpringBoot 使用Spring Data JPA 连接Mysql数据库)
SpringBoot 整合 Spring Data JPA 实现数据库操作的项目

四、创建OyUserRepository接口,继承pring Data JPA 的JpaRepository,用于实现对数据库的操作

/**
 * 用户JPA接口类,继承JPA的JpaRepository,利用Spring Data JPA 的JpaRepository实现数据的操作
 *
 */
public interface OyUserRepository extends JpaRepository<OyUser,String> {
}

  Spring Boot入门系列九(SpringBoot 使用Spring Data JPA 连接Mysql数据库)
SpringBoot 整合 Spring Data JPA 实现数据库操作的项目

五、创建OyUserServer和OyUserServerImpl

用户服务接口类OyUserService.java

/**
 * @author oyc
 * @Title:
 * @Description:用户服务接口类
 * @date 2018/7/1615:06
 */
public interface OyUserService {
    List<OyUser> getUserList();
}

用户服务实现类OyUserServiceImpl.java

/**
 * @author oyc
 * @Description: 用户服务实现类
 * @date 2018/7/1 615:07
 */
@Service
public class OyUserServerImpl implements OyUserService {
    /**
     * 依赖注入,注入用户JPA接口类
     */
    @Resource
    private OyUserRepository oyUserRepository;

    @Override
    public List<OyUser> getUserList() {
        List<OyUser> list = oyUserRepository.findAll();
        return list;
    }
}

  

  Spring Boot入门系列九(SpringBoot 使用Spring Data JPA 连接Mysql数据库)
SpringBoot 整合 Spring Data JPA 实现数据库操作的项目

六、用户控制类

/**
 * @author oyc
 * @Title:
 * @Description:用户控制类
 * @date 2018/7/1615:10
 */
@Controller
@RequestMapping("/user")
public class OyUserController {
    /**
     * 依赖注入,注入用户服务类
     */
    @Resource
    private OyUserService oyUserService;

    /**
     * 查询用户列表
     * @param model
     * @return
     */
    @RequestMapping("list")
    public String list(ModelMap model){
        List<OyUser> users = oyUserService.getUserList();
        model.addAttribute("users",users);
        return "user";
    }
}

  Spring Boot入门系列九(SpringBoot 使用Spring Data JPA 连接Mysql数据库)
SpringBoot 整合 Spring Data JPA 实现数据库操作的项目

七、测试

  Spring Boot入门系列九(SpringBoot 使用Spring Data JPA 连接Mysql数据库)
SpringBoot 整合 Spring Data JPA 实现数据库操作的项目

 源码:https://github.com/oycyqr/SpringBootJPA