是否可以使用Java为Maximo编写纯sql语句?
目前,我使用myObj.setWhere(“ employee ='brian'”);
但我想这样做:
myObj.xxx("select * from employee where name = 'brian'");
有这样的功能吗?
最佳答案
尽管我强烈建议不要这样做,但是您可以运行直接SQL语句,而无需自己处理驱动程序管理器。您可以从Maximo请求连接。
在大多数情况下(如以下示例所示),Maximo已经为您要运行的语句提供了功能,或者您将选择Maximo作为基本的ORM无法处理的字段子集。在这些情况下,您将不需要这样做。
Connection con = null;
try {
con = getMboServer().getDBConnection(getUserInfo().getConnectionKey());
PreparedStatement stmnt = con.prepareStatement("update asset set description = 'Hello World'");
stmnt.execute();
stmnt = con.prepareStatement("select count(*) from asset");
if (stmnt.execute()) {
ResultSet results = stmnt.getResultSet();
if (results.next()) {
int count = results.getInt(1);
}
}
} catch (SQLException e) {
logger.error("There was an 'SQLException' exception while getting the count of assets; The error is:\n", e);
} finally {
if (con != null) {
getMboServer().freeDBConnection(getUserInfo().getConnectionKey());
}
}