前提条件

Maven

一个拥有访问凭证的 Db2 实例:

IBM Cloud

本地

Java JDK

IBM Cloud 开发者工具(可选)

创建项目

首先,确定您计划使用 IBM Cloud 开发者工具还是 Spring Initializr 创建项目,然后按照各自的说明进行操作。

IBM Cloud 开发者工具

如果您使用 IBM Cloud 开发者工具创建项目,那么使用 dev 插件创建新的 Spring 微服务。

ibmcloud dev create

1.选择 Backend Service / Web App。

2.选择 Java – Spring。

3.选择 Java Microservice with Spring (Microservice)。

4.指定项目名称(例如 MyDb2JPAProject)。

5.拒绝向应用程序添加服务 (n)。

6.选择合适的工具链,如果不确定,选择 None("No Devops")。

7.切换到应用程序目录。

8.将 Spring JPA 启动器添加到 pom.xml 中的 dependencies 元素中:

org.springframework.boot>

spring-boot-starter-data-jpa

Spring Initializr

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

1.选择您的 Spring Boot 级别(目前默认版本为 2.0.4)。

2.指定项目工件名称(例如 mydb2jpaproject)。

3.添加 Web 依赖项。

4.添加 JPA 依赖项。

5.选择 Generate Project,然后下载应用程序包。

6.解压程序包。

7.切换到解压目录。

将db2jcc4.jar 添加到项目中

Maven 中不提供 Db2 JDBC Driver (JCC),所以您必须直接从 IBM 下载,并将其添加到本地 maven 仓库。

解压此程序包,并将 db2jcc4.jar 文件保存到项目根目录下的一个新的 lib 目录中。

在此 lib 目录中,将Jar 作为 Maven 包添加,并根据您下载的程序包相应地更改版本:

mvn install:install-file -DlocalRepositoryPath=lib -DcreateChecksum=true -Dpackaging=jar -Dfile=./lib/db2jcc4.jar -DgroupId=com.ibm.db2.jcc -DartifactId=db2jcc4 -Dversion=4.24.92

将 lib 目录作为 Maven 仓库添加到 pom.xml:

repo

file://${project.basedir}/lib

将依赖添加到 pom.xml 中的 dependency 元素,并相应地更改版本以实现匹配:

com.ibm.db2.jcc

db2jcc4

4.24.92

创建示例表

对于本快速指南,我们只使用一个数据库和一个表。

使用 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 配置一样,这些信息在 application.properties(或 application.yaml)文件中(位于 src/main/resources/application.properties)。

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

spring.datasource.url=jdbc:db2://mydb2host:50000/mydb2databasename

spring.datasource.username=mydb2username

spring.datasource.password=mydb2password

记得更改这些值,以便与您的 Db2 实例的位置和凭证相匹配。

创建 JPA 类

在项目中,找到 Spring Boot 主应用程序类。

对于通过 Spring Initializr 创建的项目,主应用程序类以创建项目时提供的工件名称来命名。例如,如果通过 com.example 包命名工件 demo,您将在 src/main/java/com/example/DemoApplication.java 目录下找到主类。

对于通过 IBM Cloud 开发者工具创建的项目,主应用程序类始终位于 src/main/java/application/SBApplication.java 目录下。

在与应用程序类相同的目录下,为 JPA 类 jpa 创建一个目录。

在 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);

}

}

在与该类相同的目录下,创建用于访问数据的 Repository 类。接口用您刚才创建的类的类型。

import java.util.List;

import org.springframework.data.repository.CrudRepository;

public interface Repository extends CrudRepository

{

List findByName(String name);

Iterable findAll();

}

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

对于通过 Spring Initializr 创建的项目,您必须创建自己的 RestController 类。在 jpa 目录旁创建一个控制器目录,然后在该目录下创建 RestController 类。

对于通过 IBM Cloud 开发者工具创建的项目,在 src/main/java/application/rest/v1/Example.java 中已为您提供 RestController 示例。

RestController 为您的应用程序提供 REST 端点。使用 @Autowired 将仓库注入到 RestController 中,然后添加一个可以返回表中数据的简单端点:

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 example() {

List list = new ArrayList<>();

list.add("Table data...");

for(Things things: repo.findAll()){

list.add(things.toString());

}

return new ResponseEntity(list.toString(), HttpStatus.OK);

}

}

您可能需要为之前创建的 Things 和 Repository 类添加导入功能。

运行该示例

您可以像运行任何其他 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 自动配置和 Spring Boot 属性,Spring Boot 能够使我们以 Spring 原生方式轻松地配置和使用 Db2 实例。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

spring 数据库 链接db2_实例讲解使用Spring通过JPA连接到Db2相关推荐

  1. Spring 事务传播机制 实例讲解

    事务传播机制 对于SQL事务的概念以及ACID性质,可以参见我的另一篇博文 http://kingj.iteye.com/admin/blogs/1675011 spring的管理的事务可以分为如下2 ...

  2. spring 数据库 链接db2_Druid,Java语言中最好的数据库连接池

    Druid是Java语言中最好的数据库连接池,这话不是我说的,是Druid官方文档自己这样描述的,这是何等的自信! 连接池的作用,跟线程池的作用大同小异,都是为了减少频繁的创建销毁连接IO,提升性能. ...

  3. 动软多数据库链接类实例

    最近做一个项目是用动软生成的框架搭建的,但是我想大家也都清楚,动软生成的都是比较简单的表类而已,而且默认是只有一个数据库链接,通过DbHelperSQL.cs来操作链接的,但是如果涉及两个数据库交互的 ...

  4. Spring开发--Bean配置实例讲解

    有一个这样的Bean文件:<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate ...

  5. Apache NIFI 安装 ● 操作 ● 文件同步 ● oracle 数据库增量同步实例讲解

    nifi简介 nifi背景 NiFi之前是在美国国家安全局(NSA)开发和使用了8年的一个可视化.可定制的数据集成产品.2014年NSA将其贡献给了Apache开源社区,2015年7月成功成为Apac ...

  6. java spring hiberate_Spring+SpringMVC+Hibernate整合实例讲解

    使用Maven构建项目,用pom.xml引入相应jar,配置以下文件 创建spring.xml: xmlns="http://www.springframework.org/schema/b ...

  7. Spring 配置的项目中数据库链接信息加密(详细)

    传统JAVA_WEB项目如果是ssh.ssm之类的搭建的项目,其数据库链接信息大部分是交给Spring来作为管理 数据库的URL地址.账号.密码一般会写在配置文件中:dbconfig.properti ...

  8. 实例讲解《Microsoft AJAX Library》(2):DomEvent类

    引言: 大家都知道Ajax的之所以能如此丰富地实现,客户端脚本功不可没.而像Asp.Net Ajax这般庞大的工程,没有脚本类库的支撑是很难想象的.<Microsoft AJAX Library ...

  9. spring aop实例讲解_Spring框架核心知识点

    文章内容输出来源:拉勾教育Java高薪训练营 前言: 由于工作需要提升自身技术能力,在各方比较下,报名了拉勾教育的java高薪训练营,目前已经学了半个月啦,来说说自身学习的感受吧: 课程内容有广度更有 ...

最新文章

  1. JavaScript初学者编程题(12)
  2. C#编码简单性之代码篇(如何编写简短的C#代码,随时更新)
  3. 1. Nest Js
  4. 【问链-区块链基础知识系列】 第十四课 数字货币交易所的前世、今生和未来(一)
  5. 【深度学习】Coursera的TensorFlow课程练习题精华部分
  6. vs2015企业版密钥
  7. 能力不是仅靠原始积累(一)
  8. Qos拥塞避免原理与实验
  9. 数据库备份与还原c#.net实现
  10. 决策树系列(三)——ID3
  11. oracle 设置不可重复,oracle – 不可重复读和幻读之间有什么区别?
  12. 莫兰迪紫rgb_莫兰迪色系颜色大全 莫兰迪色系适合什么人
  13. 计算机程序设计语言发展经历了,简述计算机程序设计语言的发展历程
  14. 小学听力测试英语软件,小学英语听力测试
  15. 输入两个正整数num1、num2,计算并输出它们的和、差、积、整数商和余数
  16. 视频教程-《信息学竞赛-C语言》 DAY30-清华尹成老师-C/C++
  17. 怎么打开本地计算机策略编辑器,打开本地组策略编辑器; 2.在弹出的本地组策略编辑器窗口...
  18. PHP数组内容制作分页功能
  19. flex osgi实现-potomac 实现页面与页面间数据传递和页面间各部分的数据传递
  20. 潜在语义索引(LSI)

热门文章

  1. threejs 绘制球体_Three.js 第一篇:绘制一个静态的3D球体
  2. linux在安全模式下如何编辑,在安全模式下修改initrd文件
  3. lcl手术和飞秒区别_想知道自己适合哪种近视手术?Mark!
  4. thymeleaf中的条件判断用法
  5. thymeleaf的属性优先级
  6. Jsp+Servlet+Mysql实现的在线鲜花商城源码
  7. 基于JAVA+SpringMVC+Mybatis+MYSQL的药店门店管理系统
  8. 有关计算机利弊的英语作文,急需一篇有关电脑优缺点的作文(英文的)
  9. postman delete 请求传递数组_Postman请求方法
  10. Javascript正则