java - 如何在没有 WSConnection 的情况下设置客户端信息

标签 java jdbc db2 websphere

我们的项目使用Websphere,我们必须使用 WSConnection 设置“客户端信息” 。 DB2 数据库使用这些来进行审计。这在 Websphere 中运行良好。但是,我们现在希望在 websphere 外部运行的控制台应用程序中使用相同的代码库。所以我想将下面的代码更改为与 websphere 无关。

是否有一些更标准的方法来完成以下任务?使用直接 jdbc 的东西?或者其他一些方法可以让我不创建从此代码到 websphere 及其库的依赖关系?

            Properties props = new Properties();

            props.setProperty(WSConnection.CLIENT_ID, userid);
            props.setProperty(WSConnection.CLIENT_APPLICATION_NAME, bpcode);

            if (connection instanceof WSConnection) {
                WSConnection wconn = (WSConnection) connection;
                wconn.setClientInformation(props);
            } else {
                log.error("Connection was NOT an instance of WSConnection so client ID and app could not be set");
            }

最佳答案

是的,JDBC中添加了标准接口(interface)用于设置客户端信息。

您可以使用 connection.setClientInfo(name, value) 单独设置每个属性,

或者,您可以通过 connection.setClientInfo(properties) 一次性设置所有内容

要确定您的驱动程序支持的确切客户端信息属性名称集,请使用 databaseMetaData.getClientInfoProperties()方法。

关于java - 如何在没有 WSConnection 的情况下设置客户端信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54243082/

相关文章:

sql - SQL日期间隔算法

java - winrun4j - 无法创建服务

java - POST 与 JDBC

db2 - 如何在使用中离线备份 DB2 数据库

mysql - 无法连接到 MySQL 数据库,使用 Struts2 和 jdbc

java - 无法使用 JDBC 连接到 Phoenix

java - 如何使用 jdbc 中的 ResultSet.getBinaryStream() 从所有列中获取值?

java - 如何为位置相关的 Switch 案例定义枚举

java - 如何在多线程环境中修复 ConcurrentModificationExceptions?

java - 嵌入式 jetty - 503