我编写了一个在iSeries AS400上执行的Java程序。在该程序中,我使用JDBC连接到同一台机器来查询文件中的数据,如
select *
from xyzcapad.myFile
where lastName = 'Max'
多个库中存在相同的文件名和结构(不是数据!),因为我们的AS400上有多个环境,每个环境都有自己的默认库。
因此,当我现在启动程序并在使用库xyzcapad的环境中运行它时,一切正常。但是,如果我在另一个环境中运行它,我怎么能告诉我的程序使用该表的其他默认库?
答案 0 :(得分:1)
使用JDBC时,可以使用SET SCHEMA
语句选择这样的库:
set schema xyzcapad;
然后执行你的sql:
select *
from myFile
where lastName = 'Max';
请注意,表名不合格。在这种情况下,它将使用使用上面的set schema
语句设置的默认模式。
修改
这是我的最终代码:
public void connectAS400(){
as400 = new AS400("my.company.com","user","password");
AS400JDBCDataSource datasource = new AS400JDBCDataSource(as400);
// datasource.setLibraries("xyzcapad");
datasource.setTranslateBinary(true);
datasource.setNaming("system");
try {
connection = datasource.getConnection();
} catch (Exception e) {
System.err.println(e);
}
}