【问题标题】:How to set schema in datasource for DB2 connection in Spring boot如何在 Spring Boot 中为 DB2 连接在数据源中设置模式
【发布时间】:2020-03-18 05:28:53
【问题描述】:

我有不同的数据库连接,但其中的表相同。因此,为了重用这些实体类,我必须动态获取模式名称。试图在属性文件和数据源中设置架构但不工作。

application.properties 文件:

spring.datasource1.url=jdbc:db2://localhost:5054/AB01
spring.datasource1.username=abc
spring.datasource1.password=abc
spring.datasource1.driver-class-name=com.ibm.db2.jcc.DB2Driver
spring.datasource1.testWhileIdle=true
spring.datasource1.validationQuery=SELECT 1

尝试如下在属性文件中设置架构并得到错误“不支持 DDM 参数值。DDM 参数代码点的值不受支持:0x2110。”错误。

spring.datasource.url=jdbc:db2://localhost:5054/AB01?currentSchema=schema
spring.datasource.url=jdbc:db2://localhost:5054/AB01?search_path=schema
spring.datasource.url=jdbc:db2://localhost:5054/AB01?searchpath=schema

在配置类中也尝试过类似下面的方法,但不起作用。

public DataSource dataSource() {
    DriverManagerDataSource ds = new DriverManagerDataSource(databaseURL, username, pwd);
    ds.setDriverClassName(driverClassName);
    Properties connectionProperties = new Properties();
    connectionProperties.setProperty("spring.datasource.schema", "schema");
    ds.setConnectionProperties(connectionProperties);
    return ds;
}

【问题讨论】:

  • 你看到这个答案了吗:stackoverflow.com/questions/24278659/…
  • 如果你使用 jdbc,试试这个:spring.datasource.jdbc-url=jdbc:db2://localhost:5054/AB01:currentSchema=YOURSCHEMA;
  • 这样尝试,得到 Invalid database URL syntax error

标签: database hibernate spring-boot jpa db2


【解决方案1】:

架构可以在 application.properties 中引用,如下所示

spring.datasource1.serverName=160.60.660.6
spring.datasource1.database=ABC
spring.datasource1.port=5083
spring.datasource1.schema=fdsf
spring.datasource1.username=usr
spring.datasource1.password=pwd

使用 DB2SimpleDataSource 创建数据库

public DataSource dataSource() {
                    DB2SimpleDataSource  datasource = new DB2SimpleDataSource ();
                    datasource.setUser(username);
                    datasource.setPassword(password);
                    datasource.setServerName(server);
                    datasource.setDatabaseName(databse);
                    datasource.setPortNumber(port);
                    datasource.setDriverType(4);  
                    datasource.setCurrentSchema(schema);
                    return datasource;
}

【讨论】:

    猜你喜欢
    • 2016-05-03
    • 2017-06-09
    • 1970-01-01
    • 2018-09-11
    • 2018-02-03
    • 2017-05-20
    • 2021-09-24
    • 1970-01-01
    • 2022-06-10
    相关资源
    最近更新 更多