通过Docker启动DB2,并在Spring Boot整合DB2()

  本篇文章为你整理了通过Docker启动DB2,并在Spring Boot整合DB2()的详细内容,包含有 通过Docker启动DB2,并在Spring Boot整合DB2,希望能帮助你了解 通过Docker启动DB2,并在Spring Boot整合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 {

   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()的详细内容,想要了解更多 通过Docker启动DB2,并在Spring Boot整合DB2的内容,请持续关注盛行IT软件开发工作室。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: