zoukankan      html  css  js  c++  java
  • SpringBoot学习(三)IDEA

    一、什么是JPA

      JPA(Java Persistence API)定义了一系列对象持久化的标准,目前实现这一规范的产品有Hibernate、TopLink等。

    二、Mysql数据库示例

      1、在application.yml文件中增加数据库访问的配置

    spring:
      profiles:
        active: dev
    datasource: 
      driver-class-name: com.mysql.jdbc.Driver
      url:  jdbc:mysql://localhost:3306/test
      username:
      password:
    jpa:
      hibernate:
        ddl-auto: update
      show-sql: true
    

      ddl-auto:可选属性有以下几种。

           create   每次创建一个新表,那么之前表中的数据都会丢掉

      update  表不存在的时候才会建立新表,如果存在则不会新建,所以原有数据不会丢

      create-drop  每次新建一个表,而且服务停掉,那么所建立的表会随之删除

      none   见名知意,就是什么都不做,不会给帮你建表,只能使用现有的表

      validate  会将实体类和表进行一个验证,如果不一致会报错

    2、新建实体类

    package com.demo.demoweb.entity;
    
    import javax.persistence.Entity;
    import javax.persistence.GeneratedValue;
    import javax.persistence.Id;
    
    @Entity
    public class Dog {
        public Integer getAge() {
            return age;
        }
    
        public void setAge(Integer age) {
            this.age = age;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        //    如果这些注解所在的包,javax.persistence不能导入。可能是缺少依赖
        //    可以在pom中加入Javax Persistence API 的依赖
        @Id
        @GeneratedValue
        private Integer id;//编号
        private Integer age;//年龄
        private String name;//名字
    
        public Dog() {
    
        }
    
        public Dog(Integer id, Integer age, String name) {
            this.id = id;
            this.age = age;
            this.name = name;
        }
    }
    

      

    3、编写Repository接口类

        这里需要继承JpaRepository这个类,这样我们就可以使用底层帮我们实现好的一些代码

        相当于我们之前了解到的持久层(数据访问层),用于获取数据库中的数据。

        

                   基础的 Repository 提供了最基本的数据访问功能,其几个子接口则扩展了一些功能。它们的继承关系如下: 
                   Repository: 仅仅是一个标识,表明任何继承它的均为仓库接口类 
                   (1) CrudRepository: 继承 Repository,实现了一组 CRUD 相关的方法 
                  (2)PagingAndSortingRepository: 继承 CrudRepository,实现了一组分页排序相关的方法 
                  (3)JpaRepository: 继承 PagingAndSortingRepository,实现一组 JPA 规范相关的方法

                     自定义的 XxxxRepository 需要继承 JpaRepository,这样的 XxxxRepository 接口就具备了通用的数据访问控制层的能力。

          JpaSpecificationExecutor: 不属于Repository体系,实现一组 JPA Criteria 查询相关的方法 。

                 首先需要导入JpaRepository 的maven文件:

          

    <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-jpa -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-data-jpa</artifactId>
                <version>2.1.1.RELEASE</version>
            </dependency>
    

      

                     

    4、编写Serivce层

        按照策略模式,我们应当一个接口,然后对应实现类。由于这里业务比较简单,我们就不那么费事了。可能这层我在下面都不写。

    5、编写Controller层

        根据访问信息,进行相应的业务处理,页面展示。

    三、RestFul API

      1、查询所有,findAll()方法的使用。GET请求

        Repository接口类

    package com.demo.demoweb.repository;
    
    import com.demo.demoweb.entity.Dog;
    import org.springframework.data.jpa.repository.JpaRepository;
    
    /**
     * 这个接口需要继承一个接口JpaRepository
     * 这样就可以使用底层为我们编写好的一些通用方法
     */
    public interface DogRepository extends JpaRepository<Dog,Integer> {
    }
    

      Controller层:

             

  • 相关阅读:
    670. Maximum Swap
    653. Two Sum IV
    639. Decode Ways II
    636. Exclusive Time of Functions
    621. Task Scheduler
    572. Subtree of Another Tree
    554. Brick Wall
    543. Diameter of Binary Tree
    535. Encode and Decode TinyURL
    博客园自定义背景图片
  • 原文地址:https://www.cnblogs.com/dangkai/p/10246739.html
Copyright © 2011-2022 走看看