zoukankan      html  css  js  c++  java
  • 从零开始学springboot笔记(五)-Spring boot之Spring Data- JPA 笔记

     什么是JPA?

    JPA全称Java Persistence API.JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。(百度百科JPA)
    在上面只是一个JPA的定义,我们看看另外一段更能看出是什么的描述:
    JPA(Java Persistence API)是Sun官方提出的Java持久化规范。它为Java开发人员提供了一种对象/关系映射工具来管理Java应用中的关系数据。
    
    持久化(Persistence),即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。持久化的主要应用是将内存中的对象存储在的数据库中,或者存储在磁盘文件中、XML数据文件中等等。
    持久化是将程序数据在持久状态和瞬时状态间转换的机制。
    JDBC就是一种持久化机制。文件IO也是一种持久化机制。

    什么是Spring Data?

    Spring Data是一个用于简化数据库访问,并支持云服务的开源框架。其主要目标是使得数据库的访问变得方便快捷,并支持map-reduce框架和云计算数据服务。此外,它还支持基于关系型数据库的数据服务,
    如Oracle RAC等。对于拥有海量数据的项目,可以用Spring Data来简化项目的开发,就如Spring Framework对JDBC、ORM的支持一样,Spring Data会让数据的访问变得更加方便。

    什么是Spring Data JPA?

    我们先看一个描述:
    Spring Data JPA能干什么
    可以极大的简化JPA的写法,可以在几乎不用写实现的情况下,实现对数据的访问和操作。除了CRUD外,还包括如分页、排序等一些常用的功能。
    
    首先我们需要清楚的是Spring Data是一个开源框架,在这个框架中Spring Data JPA只是这个框架中的一个模块,所以名称才叫Spring Data JPA。
    如果单独使用JPA开发,你会发现这个代码量和使用JDBC开发一样有点烦人,所以Spring Data JPA的出现就是为了简化JPA的写法,让你只需要编写一个接口继承一个类就能实现CRUD操作了。

    JPA/Hibernate 关系?

    JPA是一种规范,而Hibernate是它的一种实现。除了Hibernate,还有EclipseLink(曾经的toplink),OpenJPA等可供选择,所以使用Jpa的一个好处是,可以更换实现而不必改动太多代码。

    Spring Boot JPA-Hibernate操作步骤:

    Spring Boot JPA持久化 总结
    ---------------------
    1、需要添加相应的依赖包;
    2、需要在application.properties文件添加配置信息;
    3、需要创建一个实体类,比如Cat;
    4、需要创建一个接口继承CrudRepository;
    5、需要创建一个Service;
    6、需要创建一个Controller;
    7、代码测试;

    1、在pom.xml添加mysql,spring-data-jpa依赖;

    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
    </dependency>
    
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>

    2、在application.properties文件中配置mysql连接配置文件

    ########################################################
    ###datasource
    ########################################################
    spring.datasource.url = jdbc:mysql://localhost:3306/test
    spring.datasource.username = root
    spring.datasource.password = root
    spring.datasource.driverClassName = com.mysql.jdbc.Driver
    spring.datasource.max-active=20
    spring.datasource.max-idle=8
    spring.datasource.min-idle=8
    spring.datasource.initial-size=10
    
    ########################################################
    ### Java Persistence Api
    ########################################################
    # Specify the DBMS
    spring.jpa.database = MYSQL
    # Show or not log for each sql query
    spring.jpa.show-sql = true
    # Hibernate ddl auto (create, create-drop, update)
    spring.jpa.hibernate.ddl-auto = update
    # Naming strategy
    #[org.hibernate.cfg.ImprovedNamingStrategy  #org.hibernate.cfg.DefaultNamingStrategy]
    spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.ImprovedNamingStrategy
    # stripped before adding them to the entity manager)
    spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect

    3、编写测试例子

    (1)创建实体类Demo,如果已经存在,可以忽略。
    (2)创建jpa repository类操作持久化(CrudRepository)。
    (3)创建service类。
    (4)创建restful请求类。
    (5)测试;
  • 相关阅读:
    Matlab中fsolve传递系数变量
    MongoDB安装与启动
    Java Runnable与Callable区别
    Java创建线程的两种方式
    VC++记录
    spring-boot-mybatis
    spring-boot-mongodb
    SpringBoot helloworld
    mysql进行时
    java多线程对CountDownLatch的使用实例
  • 原文地址:https://www.cnblogs.com/xh_Blog/p/11005297.html
Copyright © 2011-2022 走看看