码迷,mamicode.com
首页 > 编程语言 > 详细

Spring Boot中使用Spring Data JPA示例

时间:2019-06-22 14:33:56      阅读:122      评论:0      收藏:0      [点我收藏+]

标签:autowire   maven工程   模块   简单   信息   sql   jdb   nat   repo   

JPA是Java Persistence API的简称,是sun公司早期推出的Java持久层规范,目前实现JPA规范的主流框架有Hibernate、OpenJPA等。Hibernate框架是当前较为流行的JPA实现之一,在Spring Data JPA中,默认底层实现也是使用的Hibernate。

Spring Data JPA示例搭建

Spring Boot 提供了一个"spring-boot-starter-data-jpa"模块,在项目中使用这个模块,就可以简单的整合Spring Data JPA、Hibernate及其他依赖所需模块。

新建一个名为spring-jpa的Maven工程,修改其pom.xml文件。

    <!-- Spring Boot父工程 -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.3.RELEASE</version>
    </parent>

    <dependencies>
        <!-- Web -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!-- Spring Data JPA -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <!-- MySQL 驱动 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
    </dependencies>

在src/main/resource目录下新建一个名为application.yml的配置文件:

spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://192.168.170.129:3306/spring-jpa
    username: root
    password: root

在application.yml配置文件中简单配置了数据库连接必要的参数。从中可以看出,我们项目使用的数据库名:spring-jpa

接下来我们就可以编写项目的数据访问层和业务层了。

实体类Book:

package com.hrvy.entity;

@Entity
public class Book {

    /** 主键ID */
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;

    /** 图书名称 */
    @Column
    private String bookName;

    /** 图书封面 */
    @Column
    private String bookCover;

    /** 图书作者 */
    @Column
    private String bookAuthor;

    /** 图书价格 */
    @Column
    private BigDecimal bookPrice;

    /** 图书状态:0=false(未删除状态)1=true(已删除状态) */
    @Column
    private Boolean isDelete;

    /** getter/setter 方法。。。 */
}

 

数据访问接口BookRepository:

package com.hrvy.dao;

public interface BookRepository extends JpaRepository<Book, Integer> {

}

该接口继承JpaRepository接口,且无任何接口方法和实现类。JpaRepository接口中定义有很多数据访问方法,Spring会默认使用JDK代理来生成BookRepository接口的代理类,从而就拥有了JpaRepository的功能实现,进行数据CRUD操作。

服务层BookService:

package com.hrvy.service;

public interface BookService {
    /**
     * 获取所有图书信息
     * 
     * @return
     */
    List<Book> getBooks();

    /**
     * 保存图书
     * 
     * @param book 图书实体
     */
    void saveBook(Book book);
}
package com.hrvy.service.impl;

@Service
public class BookServiceImpl implements BookService {

    @Autowired
    private BookRepository bookRepository;

    @Override
    public List<Book> getBooks() {
        return bookRepository.findAll();
    }

    @Override
    public void saveBook(Book book) {
        bookRepository.save(book);
    }
}

控制层BookController:

package com.hrvy.controller;

@RestController
public class BookController {

    @Autowired
    private BookService bookService;

    /**
     * 获取全部图书
     * 
     * @return
     */
    @RequestMapping("/getbooks")
    public List<Book> getBooks() {
        return bookService.getBooks();
    }

    /**
     * 添加图书
     * 
     * @return
     */
    @RequestMapping("/addbook")
    public String AddBook() {
        Book book = new Book();
        book.setBookName("Spring Data JPA");
        book.setBookAuthor("Hrvy");
        bookService.saveBook(book);
        return "添加成功";
    }
}

运行App.java,浏览器输入http://localhost:8080/addbook进行图书添加测试,输入http://localhost:8080/getbooks进行图书查询测试。

 

Spring Boot中使用Spring Data JPA示例

标签:autowire   maven工程   模块   简单   信息   sql   jdb   nat   repo   

原文地址:https://www.cnblogs.com/hrvyzou/p/11068724.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!