1 简介

DB2是IBM的一款优秀的关系型数据库,简单学习一下。

2 Docker安装DB2

为了快速启动,直接使用Docker来安装DB2。先下载镜像如下:

docker pull ibmcom/db2:11.5.0.0

启动数据库如下:

docker run -itd \
--name mydb2 \
--privileged=true \
-p 50000:50000 \
-e LICENSE=accept \
-e DB2INST1_PASSWORD=pkslow \
-e DBNAME=testdb \
ibmcom/db2:11.5.0.0

这样获得的数据库,具体信息如下:

连接URL:jdbc:db2://localhost:50000/testdb

用户名:db2inst1

密码:pkslow

在IDEA上连接如下:

默认的Schema为DB2INST1,测试SQL如下:

创建表:

CREATE TABLE EMPLOYEE_SALARY
(DEPTNO CHAR(3) NOT NULL,
DEPTNAME VARCHAR(36) NOT NULL,
EMPNO CHAR(6) NOT NULL,
SALARY DECIMAL(9,2) NOT NULL WITH DEFAULT);

插入数据:

INSERT INTO EMPLOYEE_SALARY (DEPTNO, DEPTNAME, EMPNO, SALARY) VALUES ('001', 'IT', '001322', 80000.00);
INSERT INTO EMPLOYEE_SALARY (DEPTNO, DEPTNAME, EMPNO, SALARY) VALUES ('001', 'IT', '001323', 20000.00);
INSERT INTO EMPLOYEE_SALARY (DEPTNO, DEPTNAME, EMPNO, SALARY) VALUES ('002', 'Architecture', '001324', 3220.00);
INSERT INTO EMPLOYEE_SALARY (DEPTNO, DEPTNAME, EMPNO, SALARY) VALUES ('002', 'Architecture', '001325', 8000.00);
INSERT INTO EMPLOYEE_SALARY (DEPTNO, DEPTNAME, EMPNO, SALARY) VALUES ('003', 'Front Office', '001326', 13320.00);
INSERT INTO EMPLOYEE_SALARY (DEPTNO, DEPTNAME, EMPNO, SALARY) VALUES ('001', 'IT', '001327', 5433.00);

查询:

SELECT * FROM DB2INST1.EMPLOYEE_SALARY;

Spring Boot整合DB2

添加相关依赖:

<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>com.ibm.db2</groupId>
<artifactId>jcc</artifactId>
<version>11.5.0.0</version>
</dependency>
</dependencies>

配置相关属性:

server.port=8082
spring.datasource.url=jdbc:db2://localhost:50000/testdb
spring.datasource.username=db2inst1
spring.datasource.password=pkslow
spring.jpa.generate-ddl=true

创建Entity:

package com.pkslow.springboot.jpa.db2.entity;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor; import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table; @Entity
@Data
@AllArgsConstructor
@NoArgsConstructor
@Table(name = "EMPLOYEE", schema = "DB2INST1")
public class Employee {
@Id
private Long id;
private String name;
}

创建Repository类用于操作数据库:

public interface EmployeeRepository extends CrudRepository<Employee, Long> {
}

最后,写个方法测试一下:

@Configuration
@Slf4j
public class TestConfig {
@Autowired
private EmployeeRepository repository; @PostConstruct
public void init() {
Employee employee1 = new Employee(1L, "Larry Deng");
Employee employee2 = new Employee(2L, "LarryDpk");
Employee employee3 = new Employee(3L, "Pkslow"); repository.deleteAll();
repository.save(employee1);
repository.save(employee2);
repository.save(employee3); List<Employee> employees = StreamSupport.stream(repository.findAll().spliterator(), false)
.collect(Collectors.toList()); employees.forEach(e -> log.info(e.toString())); }
}

启动后,日志打印正常如下:

2022-02-28 23:26:22.476  INFO 60847 --- [           main] c.pkslow.springboot.jpa.db2.TestConfig   : Employee(id=1, name=Larry Deng)
2022-02-28 23:26:22.476 INFO 60847 --- [ main] c.pkslow.springboot.jpa.db2.TestConfig : Employee(id=2, name=LarryDpk)
2022-02-28 23:26:22.476 INFO 60847 --- [ main] c.pkslow.springboot.jpa.db2.TestConfig : Employee(id=3, name=Pkslow)

表数据如下:

代码

代码请看GitHub: https://github.com/LarryDpk/pkslow-samples


References:

Docker Image

Statements Insert

通过Docker启动DB2,并在Spring Boot整合DB2的更多相关文章

  1. Spring boot 整合hive-jdbc导致无法启动的问题

    使用Spring boot整合Hive,在启动Spring boot项目时,报出异常: 经过排查,是maven的包冲突引起的,具体做法,排除:jetty-all.hive-shims依赖包.对应的po ...

  2. 【spring boot】【elasticsearch】spring boot整合elasticsearch,启动报错Caused by: java.lang.IllegalStateException: availableProcessors is already set to [8], rejecting [8

    spring boot整合elasticsearch, 启动报错: Caused by: java.lang.IllegalStateException: availableProcessors ], ...

  3. 使用Spring boot整合Hive,在启动Spring boot项目时,报错

    使用Spring boot整合Hive,在启动Spring boot项目时,报出异常: java.lang.NoSuchMethodError: org.eclipse.jetty.servlet.S ...

  4. 右击main 方法运行正常,启动tomcat 后,spring boot 项目 出现参数字符串是乱码的情况

    PrintWriter out = new PrintWriter(new OutputStreamWriter(conn.getOutputStream(), "utf-8")) ...

  5. Spring Boot整合Elasticsearch

    Spring Boot整合Elasticsearch   Elasticsearch是一个全文搜索引擎,专门用于处理大型数据集.根据描述,自然而然使用它来存储和搜索应用程序日志.与Logstash和K ...

  6. Spring Boot 整合 Elasticsearch,实现 function score query 权重分查询

    摘要: 原创出处 www.bysocket.com 「泥瓦匠BYSocket 」欢迎转载,保留摘要,谢谢! 『 预见未来最好的方式就是亲手创造未来 – <史蒂夫·乔布斯传> 』 运行环境: ...

  7. spring boot整合jsp的那些坑(spring boot 学习笔记之三)

    Spring Boot 整合 Jsp 步骤: 1.新建一个spring boot项目 2.修改pom文件 <dependency>            <groupId>or ...

  8. Spring Kafka和Spring Boot整合实现消息发送与消费简单案例

    本文主要分享下Spring Boot和Spring Kafka如何配置整合,实现发送和接收来自Spring Kafka的消息. 先前我已经分享了Kafka的基本介绍与集群环境搭建方法.关于Kafka的 ...

  9. Spring Boot整合Mybatis并完成CRUD操作

    MyBatis 是一款优秀的持久层框架,被各大互联网公司使用,本文使用Spring Boot整合Mybatis,并完成CRUD操作. 为什么要使用Mybatis?我们需要掌握Mybatis吗? 说的官 ...

  10. spring boot 整合 百度ueditor富文本

    百度的富文本没有提供Java版本的,只给提供了jsp版本,但是呢spring boot 如果是使用内置tomcat启动的话整合jsp是非常困难得,今天小编给大家带来spring boot整合百度富文本 ...

随机推荐

  1. go-zero docker-compose 搭建课件服务(六):完善jwt鉴权和返回结构

    0.转载 go-zero docker-compose 搭建课件服务(六):完善jwt鉴权和返回结构 0.1源码地址 https://github.com/liuyuede123/go-zero-co ...

  2. Dubbo-聊聊注册中心的设计

    前言 Dubbo源码阅读分享系列文章,欢迎大家关注点赞 SPI实现部分 Dubbo-SPI机制 Dubbo-Adaptive实现原理 Dubbo-Activate实现原理 Dubbo SPI-Wrap ...

  3. 7.httpie

    可以使用curl或httpie测试我们的服务器.Httpie是用Python编写的用户友好的http客户端   安装:pip3 install httpie #get请求示例 输入命令:http ht ...

  4. 四、redis数据类型

    四.redis数据类型 redis可以理解成一个全局的大字典,key就是数据的唯一标识符.根据key对应的值不同,可以划分成5个基本数据类型. 1. string类型: 字符串类型,是 Redis 中 ...

  5. 快速创建软件安装包-ClickOnce

    大家好,我是沙漠尽头的狼. .NET是免费,跨平台,开源,用于构建所有应用的开发人员平台. 今天介绍使用ClickOnce制作软件安装包,首先我们先了解什么是ClickOne. 1. 什么是Click ...

  6. Day3:学习Java的第一步:Hello World!

    HelloWorld 新建一个文件夹存放代码 新建一个JAVA文件 文件后缀名为.java Hello.java 打开文件扩展名,即可查看到文件类型 运行文件:右键Hello.java文件用notep ...

  7. SpringCloud(七) - 微信支付

    1.开发文档 微信开发文档:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_1 安全规范:https://pay.weixin.q ...

  8. JUC学习笔记——共享模型之不可变

    JUC学习笔记--共享模型之不可变 在本系列内容中我们会对JUC做一个系统的学习,本片将会介绍JUC的不可变内容 我们会分为以下几部分进行介绍: 不可变案例 不可变设计 模式之享元 原理之final ...

  9. Go语言核心36讲30

    你好,我是郝林,今天我继续分享条件变量sync.Cond的内容.我们紧接着上一篇的内容进行知识扩展. 问题 1:条件变量的Wait方法做了什么? 在了解了条件变量的使用方式之后,你可能会有这么几个疑问 ...

  10. i春秋时间

    打开题目就是一段php代码 大致的意思是 ------------------------------------------------------------------------------- ...