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层:

         

 

posted @ 2019-01-18 09:02  (时光)光阴飞逝  阅读(234)  评论(0编辑  收藏  举报