zoukankan      html  css  js  c++  java
  • Spring Boot 2.X 如何快速整合jpa?

    本文目录

    一、JPA介绍二、Spring Data JPA类结构图1、类的结构关系图三、代码实现1、添加对应的Starter2、添加连接数据库的配置3、主要代码

    一、JPA介绍

    JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。
    SpringData是Spring的一个子项目。用于简化数据库访问,支持NoSQL和关系数据存储,其主要目标是使数据库的访问变得方便快捷。
    Spring Data JPA致力于减少数据访问层(DAO)的开发量,开发者唯一要做的就只是声明持久层的接口,其他都交给Spring Data JPA 来帮你完成!

    二、Spring Data JPA类结构图

    1、类的结构关系图


     

    三、代码实现

    1、添加对应的Starter

    pom.xml中添加下面依赖

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

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>

    2、添加连接数据库的配置

    #修改tomcat默认端口号
    server.port=8090

    #配置数据源信息
    spring.datasource.driver-class-name=com.mysql.jdbc.Driver
    spring.datasource.url=jdbc:mysql://192.168.0.1:3306/test
    spring.datasource.username=root
    spring.datasource.password=123456
    #配置jpa
    spring.jpa.hibernate.ddl-auto=update
    spring.jpa.show-sql=true
    spring.jackson.serialization.indent_output=true

    3、主要代码

    UserRepository.java

    /**
     * 注意:
     * 1.这里这里是interface,不是class
     * 2.CrudRepository里面的泛型,第一个是实体类,第二个是主键的类型
     */

    public interface UserRepository extends CrudRepository<UserInteger{
        @Query("from User where id =:id ")
        public User getUser(@Param("id") Integer id);
    }

    User.java

    @Entity
    @Table(name = "user")
    public class User {

        @Id
        @GeneratedValue(strategy = GenerationType.AUTO)
        private Integer id;
        private String name;
        private String password;

        public Integer getId() {
            return id;
        }

        public void setId(Integer id) {
            this.id = id;
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public String getPassword() {
            return password;
        }

        public void setPassword(String password) {
            this.password = password;
        }

    }

    UserController.java

    @RestController
    public class UserController {
        @Autowired
        UserService service;

        /**
         * 根据id 查询
         */

        @RequestMapping("/getUser/{id}")
        public User getUser(@PathVariable("id") Integer id) {
            return service.getUser(id);
        }

        /**
         * 根据id 删除
         */

        @RequestMapping("/deleteUser/{id}")
        public String deleteUser(@PathVariable("id") Integer id) {
            service.deleteUser(id);
            return "删除成功!";
        }

    }

    user表数据截图如下:

    项目启动成功后访问http://localhost:8090/getUser/2和http://localhost:8090/deleteUser/2后截图如下:

    到此发送Spring Boot整合JPA全部实现,有问题欢迎留言沟通哦!
    完整源码地址: https://github.com/suisui2019/springboot-study

    推荐阅读

    1.Spring Boot 2.X 整合Redis
    2.Spring Boot 2.X 如何优雅的解决跨域问题?
    3.Spring Boot 2.X 集成spring session实现session共享
    4.Spring条件注解@Conditional
    5.SpringBoot 2.X从0到1实现邮件发送功能
    6.Redis批量删除key的小技巧,你知道吗?


    限时领取免费Java相关资料,涵盖了Java、Redis、MongoDB、MySQL、Zookeeper、Spring Cloud、Dubbo/Kafka、Hadoop、Hbase、Flink等高并发分布式、大数据、机器学习等技术。
    关注下方公众号即可免费领取:

    Java碎碎念公众号

     

  • 相关阅读:
    基于摸板匹配的目標跟蹤算法
    spoj 2713 Can you answer these queries IV
    zoj 3633 Alice's present
    hdu 3642 Get The Treasury
    poj 1195 Mobile phones
    poj 2760 End of Windless Days
    zoj 3540 Adding New Machine
    spoj 1716 Can you answer these queries III
    spoj 1043 Can you answer these queries I
    spoj 2916 Can you answer these queries V
  • 原文地址:https://www.cnblogs.com/haha12/p/11343168.html
Copyright © 2011-2022 走看看