飞码网-免费源码博客分享网站

点击这里给我发消息

通过JPA在Spring上进行DB2的开发 |-Java教程

飞码网-免费源码博客分享网站 爱上飞码网—https://www.codefrees.com— 飞码网-matlab-python-C++ 爱上飞码网—https://www.codefrees.com— 飞码网-免费源码博客分享网站

在本教程中,学习如何使用Spring通过JPA连接到DB2实例。

先决条件

  • Maven
  • 具有访问凭证的DB2实例:
    • Local
    • IBM Cloud
    • Java JDK
  • IBM Cloud开发人员工具(可选)

建立专案

首先确定是否计划使用IBM Cloud Developer Tools或Spring Initializr创建项目,然后按照相应的指示进行操作。

IBM Cloud开发人员工具

如果使用IBM Cloud开发人员工具创建项目,则使用该dev插件创建新的Spring Microservice。

ibmcloud dev create
  1. 选择“后端服务/ Web应用程序”
  2. 选择Java – Spring
  3. 选择带有Spring的Java微服务(微服务)
  4. 为项目命名(例如MyDb2JPAProject)。
  5. 拒绝向应用程序添加服务(n)。
  6. None如果不确定,请选择适当的工具链或('No Devops')。
  7. 转到应用程序目录。
  8. 将Spring JPA启动器添加到dependencies元素中的pom.xml中

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

Spring Initializr

如果使用Spring Initializr创建项目,则使用浏览器访问https://start.spring.io

  1. 选择您的Spring Boot级别(2.1.8当前为默认值)。
  2. 命名您的项目工件(例如,mydb2jpaproject)。
  3. 添加Spring Web依赖项。
  4. 添加Spring Data JPA依赖项。
  5. 选择Generate Project,然后下载应用程序档案。
  6. 解压缩档案。
  7. 转到解压目录。

将Db2 JDBC驱动程序(JCC)依赖项添加到pom.xml

添加来自Maven Central的Db2驱动程序依赖项声明,例如:

<dependency>
  <groupId>com.ibm.db2</groupId>
  <artifactId>jcc</artifactId>
  <version>11.5.0.0</version>
</dependency>

创建示例表

对于此快速指南,我们将仅使用具有单个表的简单数据库。

使用db2命令提示符连接到您的DB2实例,并发出以下SQL语句来创建things表并用一些数据填充表:

create table things (id int, name varchar(255))
insert into things (id,name) values (1,'fish'),(2,'wibble'),(3,'stiletto')

如果选择对表使用其他名称,则稍后在创建JPA类时需要记住该名称。

为DB2实例配置Spring数据

需要告知Spring如何与数据库进行通信,并且像其他Spring配置一样,该消息存在于src / main / resources / application.properties中的application.properties(或application.yaml)文件中。

将以下属性添加到application.properties文件:

spring.datasource.url=jdbc:db2://mydb2host:50000/mydb2databasename
spring.datasource.username=mydb2username
spring.datasource.password=mydb2password

切记更改值以匹配您的DB2实例的位置和凭证。

创建JPA类

  1. 在项目中,找到主要的Spring Boot Application类。

    • 对于使用Spring Initializr创建的项目,主应用程序类以创建项目时提供的工件名称命名。例如,如果您demo使用包对工件进行了命名com.example,则会在src / main / java / com / example / DemoApplication.java中找到您的主类。
    • 对于使用IBM Cloud Developer Tools创建的项目,主应用程序类始终位于src / main / java / application / SBApplication.java。
  2. 在与应用程序类相同的目录中,为JPA类创建目录jpa

  3. 在jpa目录中,创建将代表表行的类。此类应与您先前创建的表具有相同的名称。

    import javax.persistence.Entity;
    import javax.persistence.Id;
    
    @Entity
    public class Things {
      @Id
      private Long id;
      private String name;
      public Things(){
      }
      @Override
      public String toString() {
        return String.format("Things[id=%d, name='%s']", id, name);
      }
    }
    
  4. 在与该类相同的目录中,创建一个Repository类,该类将允许您访问数据。该接口由您刚创建的类键入。

    import java.util.List;
    import org.springframework.data.repository.CrudRepository;
    
    public interface Repository extends CrudRepository<Things, Long>
    {
      List<Things> findByName(String name);
      Iterable<Things> findAll();
    }
    

将JPA类的简单调用添加到RestController

对于使用Spring Initializr创建的项目,您必须创建自己的RestController类。在jpa目录旁边创建一个控制器目录,并在其中创建RestController类。

对于使用IBM Cloud Developer Tools创建的项目,在src / main / java / application / rest / v1 / Example.java中为您提供了示例RestController。

RestController为您的应用程序提供REST端点。使用将该存储库注入RestController @Autowired,并添加一个简单的端点,该端点返回表中的数据:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.ArrayList;
import java.util.List;

@RestController
public class Example {

    @Autowired
    Repository repo;

    @RequestMapping("test")
    public @ResponseBody ResponseEntity<String> example() {
        List<String> list = new ArrayList<>();
        list.add("Table data...");
        for(Things things: repo.findAll()){
            list.add(things.toString());
        }
        return new ResponseEntity<String>(list.toString(), HttpStatus.OK);
    }

}

您可能需要为之前创建ThingsRepository添加导入

运行示例

您可以像运行其他任何Spring Boot应用程序一样运行该示例。

mvn spring-boot:run

然后,您可以访问端点以查看其查询数据库并检索信息。

$ curl http://localhost:8080/test
[Table data..., Things[id=1, name='fish'], Things[id=2, name='wibble'], Things[id=3, name='stiletto']]

概括

使用Spring Boot,可以使用Spring自动配置和Spring Boot属性以Spring本机方式轻松配置和使用DB2实例。

飞码网-免费源码博客分享网站 爱上飞码网—https://www.codefrees.com— 飞码网-matlab-python-C++ 爱上飞码网—https://www.codefrees.com— 飞码网-免费源码博客分享网站
赞 ()
内容页底部广告位3
留言与评论(共有 0 条评论)
   
验证码: