• SpringBoot集成JPA


    什么jpa

    Java Persistence API:用于对象持久化的 API

    Java EE 5.0 平台标准的 ORM 规范,使得应用程序以统一的方式访问持久层

    JPA和Hibernate之间的关系,可以简单的理解为JPA是标准接口,Hibernate是实现。

    集成jpa实现对图书的查询小案例

    springboot采用2.0.0版本

    1.导入相关依赖

     1 <!--web应用-->
     2         <dependency>
     3             <groupId>org.springframework.boot</groupId>
     4             <artifactId>spring-boot-starter-web</artifactId>
     5         </dependency>
     6 
     7         <!--测试-->
     8         <dependency>
     9             <groupId>org.springframework.boot</groupId>
    10             <artifactId>spring-boot-starter-test</artifactId>
    11             <scope>test</scope>
    12         </dependency>
    13 
    14         <!--freemarker支持-->
    15         <dependency>
    16             <groupId>org.springframework.boot</groupId>
    17             <artifactId>spring-boot-starter-freemarker</artifactId>
    18         </dependency>
    19 
    20         <!-- mysql驱动 -->
    21         <dependency>
    22             <groupId>mysql</groupId>
    23             <artifactId>mysql-connector-java</artifactId>
    24         </dependency>
    25 
    26         <!--整合jpa-->
    27         <dependency>
    28             <groupId>org.springframework.boot</groupId>
    29             <artifactId>spring-boot-starter-data-jpa</artifactId>
    30         </dependency>

    2.application.properties

    1 spring.datasource.url=jdbc:mysql://localhost:3306/bookshop
    2 spring.datasource.username=root
    3 spring.datasource.password=123
    4 spring.datasource.driver-class-name=com.mysql.jdbc.Driver

    3.entity层

     1 @Entity(name = "book")
     2 @JsonIgnoreProperties(value={"hibernateLazyInitializer","handler","fieldHandler"})
     3 public class Book {
     4     @Id
     5     @GeneratedValue
     6     private Integer bookid;
     7     @Column
     8     private String bookname;
     9     @Column
    10     private Integer bookprice;
    11 
    12    get  set方法省略。。
    13 }

    4.dao层 继承JpaRepository

    1 public interface IBookDAO extends JpaRepository<Book,Integer> {
    2 }

    5.controller层

     1 @Controller
     2 public class BookController {
     3     @Autowired
     4     private IBookDAO bookDAO;
     5 
     6     @RequestMapping("/getBookById")
     7     @ResponseBody
     8     public Book getJpaBookById(Integer bookid) {
     9         return bookDAO.getOne(bookid);
    10     }
    11 }

    6.启动项目

    错误解析:

    1.需在controller层的查询方法上加上@ResponseBody注解,解析成json格式  加完之后还是报错。。。

     在实体类上加入@JsonIgnoreProperties(value={"hibernateLazyInitializer","handler","fieldHandler"})     在网上查询作用是忽略一些属性转为json格式

    到此集成jpa结束。。。。

  • 相关阅读:
    114.完全背包【恰好装满完全背包
    整数划分类型题目
    三目运算符
    关于 xk 的位数。
    多重背包二进制原理拆分问题
    2016.4.2 讲课笔记(动态规划)
    二叉树(2)二叉树创建的3种方法,二叉树的递归遍历,二叉树的销毁
    二叉树(1)已知某2种排序方式,创建这个二叉树并按第3种方式排序
    C++知识点总结(二)
    5款优秀的开源克隆软件
  • 原文地址:https://www.cnblogs.com/liutao1122/p/8726980.html
Copyright © 2020-2023  润新知