Springboot整合四之Springboot整合JPA

素颜马尾好姑娘i 2022-05-23 06:16 570阅读 0赞

JPA是什么

首先,我们说说JPA是什么?

JPA(java persistence api),它并不是一个框架,而是一组规范。我觉得对于任何一个开发人员来说,理解“规范”这个词应该不在话下。其中,Hibernate就实现了这个规范,而且呢是相当成功的(其实TopLink和OpenJPA也都实现了JPA规范,不过它们被Hinernate的光环笼罩了委屈委屈委屈)。所以呢,当我们说到JPA的时候,好多人首先想到的就是Hibernate。

今天呢,我们就来说说Springboot整合JPA

1、创建工程并添加依赖

70

2、在yml文件中进行配置

  1. spring:
  2. devtools:
  3. restart:
  4. enabled: false
  5. datasource:
  6. driver-class-name: com.mysql.jdbc.Driver
  7. url: jdbc:mysql://localhost:3306/test
  8. hikari: # springboot 2.0 整合了hikari ,据说这是目前性能最好的java数据库连接池
  9. username: root
  10. password: 123
  11. jpa:
  12. hibernate:
  13. ddl-auto: update # 第一次建表create 后面用update,要不然每次重启都会新建表
  14. show-sql: true

3、创建一个entity

  1. package com.space.jpa.bean;
  2. import lombok.Data;
  3. import javax.persistence.Entity;
  4. import javax.persistence.GeneratedValue;
  5. import javax.persistence.Id;
  6. /**
  7. * @author zhuzhe
  8. * @date 2018/6/3 23:27
  9. * @email 1529949535@qq.com
  10. */
  11. @Data
  12. @Entity // 该注解声明一个实体类,与数据库中的表对应
  13. public class User {
  14. @Id // 表明id
  15. @GeneratedValue // 自动生成
  16. private Long id ;
  17. private String name ;
  18. }

4、创建DAO

  1. package com.space.jpa.dao;
  2. import com.space.jpa.bean.User;
  3. import org.springframework.data.jpa.repository.JpaRepository;
  4. /**
  5. * @author zhuzhe
  6. * @date 2018/6/3 23:32
  7. * @email 1529949535@qq.com
  8. */
  9. @Component
  10. public interface UserDAO extends JpaRepository<User,Long> {
  11. /*
  12. * 我们在这里直接继承 JpaRepository
  13. * 这里面已经有很多现场的方法了
  14. * 这也是JPA的一大优点
  15. *
  16. * */
  17. }

在这里我直接截图,我们可以看看JpaRepository中的一些方法

70 1

我们可以直接使用这些方法,包括其父类的好多方法。是不是很方便啊。大笑

5、Service

  1. package com.space.jpa.service;
  2. import com.space.jpa.bean.User;
  3. import java.util.List;
  4. /**
  5. * @author zhuzhe
  6. * @date 2018/6/3 23:38
  7. * @email 1529949535@qq.com
  8. */
  9. public interface UserService {
  10. List<User> findAll();
  11. }
  12. package com.space.jpa.service.impl;
  13. import com.space.jpa.bean.User;
  14. import com.space.jpa.dao.UserDAO;
  15. import com.space.jpa.service.UserService;
  16. import org.springframework.beans.factory.annotation.Autowired;
  17. import org.springframework.stereotype.Service;
  18. import java.util.List;
  19. /**
  20. * @author zhuzhe
  21. * @date 2018/6/3 23:38
  22. * @email 1529949535@qq.com
  23. */
  24. @Service
  25. public class UserServiceImpl implements UserService {
  26. @Autowired
  27. private UserDAO userDAO;
  28. @Override
  29. public List<User> findAll() {
  30. // 这里我们就可以直接使用 findAll 方法
  31. return userDAO.findAll();
  32. }
  33. }

6、Controller

  1. package com.space.jpa.controller;
  2. import com.space.jpa.bean.User;
  3. import com.space.jpa.service.UserService;
  4. import org.springframework.beans.factory.annotation.Autowired;
  5. import org.springframework.web.bind.annotation.GetMapping;
  6. import org.springframework.web.bind.annotation.RestController;
  7. import java.util.List;
  8. /**
  9. * @author zhuzhe
  10. * @date 2018/6/3 23:43
  11. * @email 1529949535@qq.com
  12. */
  13. @RestController
  14. public class UserController {
  15. @Autowired
  16. private UserService userService;
  17. @GetMapping("/list")
  18. public List<User> findAll() {
  19. return userService.findAll();
  20. }
  21. }

7、进行测试

我们启动项目,可以看到日志打印

70 2

数据表会自动创建,此时我们查看数据库

70 3

确实已经自动创建了数据表。

我们给表里添加两条数据,然后通过浏览器访问findAll接口:

70 4

得到结果如下:

70 5

这样,我们就整合完成了。是不是 So Easy!!!

源码:https://github.com/zhuzhegithub/springboot-jpa

转载请务必保留此出处(原作者):https://blog.csdn.net/zhuzhezhuzhe1

版权声明:本文为原创文章,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。

https://blog.csdn.net/zhuzhezhuzhe1

发表评论

表情:
评论列表 (有 0 条评论,570人围观)

还没有评论,来说两句吧...

相关阅读

    相关 springboot整合jpa

    JPA是什么 JPA(java persistence api),它并不是一个框架,而是一组规范。我觉得对于任何一个开发人员来说,理解“规范”这个词应该不在话下。其中,H