我们的项目使用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/