美文网首页ssmit学习文章
spring-data-jpa简介和springboot整合sp

spring-data-jpa简介和springboot整合sp

作者: HitC | 来源:发表于2018-08-17 11:19 被阅读203次
    bingo

    spring-data-jpa简介和springboot整合spring-data-jpa

    在我们的项目开发中,数据库的访问及存储都是最为核心的部分,SpringBoot为我们提供了多种数据库来做数据的存储及读取。目前企业开发中应用最为广泛的数据库有,关系型数据库MySQL,oracle,sqlserver,非关系型数据库redis,mongodb等。
    本章将通过使用SpringBoot访问MySQL结合SpringDataJPA完成CRUD(Create,Read,Update,Delete)简单操作。

    一:什么是JPA

    JPA(Java Persistence API)是一种Java持久化解决方案,负责把数据保存到数据库中,实际上它是一种Java提供的一种标准、规范。而不是一种实现技术。JPA属于重量级的,因为它需要运行在JAVA EE容器中,而Spring-Data-Jpa 提供了轻量级的实现,在任何Servlet容器中都能运行。
    Spring-Data-Jpa底层使用的是Hibernate的JPA技术实现。——Hibernate和Mybatis在ORM实现上的区别

    二:什么是spring-data-jpa

    Spring-Data是Spring家
    族一个用于简化数据库访问,并且支持云服务的开源框架,主要目标是使访问数据库更便捷,Spring-Data包含多个子项目,Srping-Data-Jpa是其中之一,还包括Spring-Data-Redis,Spring-Data-MongoDb等

    三:springboot整合spring-data-jpa

    1. 添加mysql支持
    <!--引入MySQL的依赖关系-->
    <dependency>
     <groupId>mysql</groupId>
     <artifactId>mysql-connector-java</artifactId>
     <scope>runtime</scope>
    </dependency>
    
    1. 添加JPA依赖支持
    <!--引入JPA的依赖关系-->
    <dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    
    1. 新建数据库和application配置
    -新建数据库
    create database is not exists data_jpa default charset utf8 collate utf8_general_ci;
    grant all privileges on data_jpa.* to database-user@'localhost';
    flush privileges;
    -配置spring-boot application.yml
    
    spring:
      datasource:
        url: jdbc:mysql://localhost:3306/data_jpa?characterEncoding=utf-8
        username: database-name
        password: your password
        driver-class-name: com.mysql.jdbc.Driver
      freemarker:
        cache: false
      #jpa配置
      jpa:
        database: mysql
        show-sql: true  
    
    1. 生成数据表实体类
    Intellij IDEA可以通过添加JPA插件来生成数据库表对象。
    
    -添加Project-Structure Modules中JPA的支持。 
    
    Modules添加JPA支持
    找到窗口中Persistence视图
    数据库映射和生成实体对象

    生成的实体类

    @Entity
    @Table(name = "t_user", schema = "data_jpa", catalog = "")
    public class TUserEntity {
        private int tId;
        private String tName;
        private byte tAge;
        private String tAddress;
    
        @Id
        @Column(name = "t_id")
        public int gettId() {
            return tId;
        }
    
        public void settId(int tId) {
            this.tId = tId;
        }
        ...
    }
    
    1. 创建Model的JPA接口
    package cn.orcish.springdatajpademo.jpa;
    import cn.orcish.springdatajpademo.model.TUserEntity;
    import org.springframework.data.jpa.repository.JpaRepository;
    import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
    import java.io.Serializable;
    
    public interface UserJPA extends JpaRepository<TUserEntity,Long>,JpaSpecificationExecutor<TUserEntity>,Serializable {
    }
    

    6)创建Controller

    @RestController
    @RequestMapping(value = "/user")
    public class JPAController {
    
        @Autowired
        private UserJPA userJPA;
    
        @RequestMapping(value="/save",method= RequestMethod.POST)
        public TUserEntity save(TUserEntity user){
            return userJPA.save(user);
        }
    
        @RequestMapping(value = "/findAll",method = RequestMethod.GET)
        public List<TUserEntity> list(){
            return userJPA.findAll();
        }
    
        @RequestMapping("/delete")
        public List<TUserEntity> delete(Long id){
            userJPA.deleteById(id);
            return userJPA.findAll();
        }
    }
    
    1. 请求测试
    Intellij IDEA 提供了一个Rest Client工具对接口进行测试,当然也可以使用PostMan,这里介绍下Rest Client的安装和使用。
    
    • file->Settings->Plugins搜索Rest Client,


      安装Rest Client
      使用
      成功返回

    相关文章

      网友评论

        本文标题:spring-data-jpa简介和springboot整合sp

        本文链接:https://www.haomeiwen.com/subject/xxezbftx.html