是否可以使用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());
    }
}

09-11 04:17