Ich wurde beauftragt, einen Vorfall in jemand anderen Anwendung zu lösen.Ausnahme von Anruf mit gespeicherter Prozedur iBATIS
Aber die Anwendung verwendet eine sqlMap und Stored-Prozedur mit iBATIS und ich habe noch nie damit gearbeitet.
Dies ist, was ich bisher:
public void createItemInDb() {
try {
System.out.println("status: " + this.getStatus());
System.out.println("weight: " + this.getWeight());
System.out.println("node name: " + this.getNodeName());
System.out.println("node ui: " + this.getNodeUi());
SqlMapClient sqlMap = AppSqlMapClient.getSqlMapInstance();
sqlMap.queryForObject("createItem", this);
} catch (SQLException e) {
e.printStackTrace();
}
}
// sqlMap in XML-Datei
<parameterMap class="item" id="createItemMap">
<parameter property="nodeName" jdbcType="VARCHAR" mode="IN" />
<parameter property="status" jdbcType="INTEGER" mode="IN" />
<parameter property="weight" jdbcType="INTEGER" mode="IN" />
<parameter property="nodeUi" jdbcType="INTEGER" mode="INOUT" />
</parameterMap>
<procedure id="createItem" parameterMap="createItemMap">
{call CREATEITEM (?,?,?,?)}
</procedure>
ich diese Ausnahme habe:
--- The error occurred while executing query procedure.
--- Check the {call CREATEITEM (?,?,?,?)}.
--- Check the SQL Statement (preparation failed).
--- Cause: java.sql.SQLException: [SQL0204] CREATEITEM in *N type *N not found.
Caused by: java.sql.SQLException: [SQL0204] CREATEITEM in *N type *N not found.
at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryWithCallback(GeneralStatement.java:185)
at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryForObject(GeneralStatement.java:104)
at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForObject(SqlMapExecutorDelegate.java:565)
at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForObject(SqlMapExecutorDelegate.java:540)
at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForObject(SqlMapSessionImpl.java:106)
at com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.queryForObject(SqlMapClientImpl.java:84)
ich nicht einmal verstehen was dieser Teil bedeutet:
CREATEITEM in * N Typ * N nicht gefunden.
Wofür steht * N?
Wo finde ich die gespeicherten Prozeduren? CREATEITEM kann nirgendwo anders in den Anwendungsdateien gefunden werden?
Thnx
Vielen Dank für Ihre Antwort. Jemand in der IT-Abteilung hatte es geschafft, alle gespeicherten Prozeduren zu löschen. Dies war der Grund für die Ausnahme und warum konnte ich es nirgends finden. Zum Glück hatten wir eine neue Unterstützung und es ist jetzt alles gelöst. –
Gut! Problem gelöst! ;) – TeoVr81