• springboot支付项目之springboot集成jpa


    springboot集成spring-jpa

    本文主要内容:

    1:spring boot怎么集成spring-jpa以及第一个jpa查询示例

    如jpa几个常用注解、lombok注解使用

    2:怎么设置idea中在pom中添加依赖的时候自动联想。

    3:集成过程中遇到的问题及解决.如mysql时区问题、jpa懒加载问题。

    我们遵从MVC三层模式,DAO层设计与开发、Service层设计与开发以及Controller层。

    我们先来DAO层设计开发,Spring boot项目基础框架创建这里就省略。

    本文出自:凯哥Java(kaigejava)

    《spring boot支付项目》。凯哥个人博客:www.kaigejava.com

    一:相关jar依赖添加

    因为使用到了mysql,在POM.XML文件中引入mysql相关jar及操作数据库相关的。这里我们使用的是spring-jpa来操作数据库。具体jra如下:

    <!-- mysql 相关的依赖-->

    <dependency>

      <groupId>mysql</groupId>

      <artifactId>mysql-connector-java</artifactId>

    </dependency>

    <!-- jpa相关依赖-->

    <dependency>

      <groupId>org.springframework.boot</groupId>

      <artifactId>spring-boot-starter-data-jpa</artifactId>

    </dependency>

    在教大家一个idea怎么在pom文件中输入坐标时候联想,如下图:在输入atrifactid的时候可以联想到,如下图:

    操作:file-->settings界面,依次找到:build,execution,Deployment-->Bulid Tools-->maven-->Repositories.如下图:

    点击更新就可以了。

    二:数据库连接配置。这里我们使用的是yml格式的。配置如下图:

    spring:

     datasource:

       driver-class-name: com.mysql.cj.jdbc.Driver

       username: root

       password: 123456

       url: jdbc:mysql://localhost/springboot-wxpay?serverTimezone=UTC&characterEncoding=utf8&useUnicode=true&useSSL=false

     jpa:

       show-sql: true

    说明:

    spring.jpa.show-sql=true.这句意思是:打印sql语句。

    在url后面添加serverTimeizone=UTC是为了解决时区错误的问题。

    三:创建实体及测试

    3.1:创建ProductCategory实体对象。使用spring-jpa方式:

    说明:

    @Entity:spring-jpa实体注解

    @Data: lombok注解用于自动生产get/set方法的

    @Id:jpa的主键注解

    @GeneratedValue:注解生成策略

    3.2:创建repository接口对象

    说明:使用jpa的需要继承Jparepository这个对象(有多个,这里就用简单的)

    其中泛型,我们查看源码:

    T:实体对象的。也就是我们上面创建的ProductCategory对象

    ID:实体对象的ID类型。我们使用的事Integer类型。所以这里就写Integer。

    四:创建测试类,进行测试:

    在IDEA中,创建测试类快捷键:选中类名之后,ctrl+shift+t。如下图:

    运行结果:

    在控制台上,我们可以看到hibernate打印的sql语句以及打印出查询的结果。说明springboot继承jpa成功。

    如果出现could not initialize proyx的时候,如下图错误:

    在实体上面添加@Proxy(lazy = false)

    说明:@ToString 是直接添加toString方法的。

  • 相关阅读:
    Leetcode: Longest Absolute File Path
    Leetcode: Mini Parser
    Leetcode: First Unique Character in a String
    Leetcode: Lexicographical Numbers
    Leetcode: Shuffle an Array
    Leetcode: Ransom Note
    Leetcode: Linked List Random Node
    Socket网络编程--聊天程序(7)
    Socket网络编程--聊天程序(6)
    Socket网络编程--聊天程序(5)
  • 原文地址:https://www.cnblogs.com/kaigejava/p/11559193.html
Copyright © 2020-2023  润新知