From 872685e255878eec3cbd8beefdbfb3afcd65af4a Mon Sep 17 00:00:00 2001 From: Dieter von Holten Date: Wed, 16 Aug 2023 15:40:12 +0200 Subject: [PATCH] =?UTF-8?q?fix=20einige=20Typos,=20pimp=20JavaDoc,=20ToDo?= =?UTF-8?q?=20f=C3=BCr=20eigenwillige=20ResultSet-Behandlung?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../minova/cas/service/ProcedureService.java | 63 ++++++++++++++----- 1 file changed, 47 insertions(+), 16 deletions(-) diff --git a/service/src/main/java/aero/minova/cas/service/ProcedureService.java b/service/src/main/java/aero/minova/cas/service/ProcedureService.java index d5c79afb8..f124b22a1 100644 --- a/service/src/main/java/aero/minova/cas/service/ProcedureService.java +++ b/service/src/main/java/aero/minova/cas/service/ProcedureService.java @@ -58,12 +58,12 @@ public class ProcedureService { SecurityService securityService; /** - * Speichert im SQl-Session-Context unter `casUser` den Nutzer, der die Abfrage tätigt. + * Speichert im SQL-Session-Context unter `casUser` den Nutzer, der die Abfrage tätigt. * * @param connection * Das ist die Session. * @throws SQLException - * Fehler beim setzen des Kontextes für die connection. + * Fehler beim Setzen des Kontextes für die connection. */ public void setUserContextFor(Connection connection) throws SQLException { @@ -94,7 +94,8 @@ public void setUserContextFor(Connection connection) throws SQLException { * @param inputTable * Ausführungs-Parameter im Form einer Table * @param privilegeRequest - * eine Liste an Rows im Format (PrivilegName,UserSecurityToken,RowLevelSecurity-Bit) + * eine Liste von Rows im Format (PrivilegName,UserSecurityToken,RowLevelSecurity-Bit). Wenn die Liste leer ist, + * können alle Spalten gesehen werden. * @return Resultat SqlProcedureResult der Ausführung * @throws Exception * Fehler bei der Ausführung @@ -110,9 +111,10 @@ public SqlProcedureResult processSqlProcedureRequest(Table inputTable, List * @param inputTable * Ausführungs-Parameter im Form einer Table * @param privilegeRequest - * eine Liste an Rows im Format (PrivilegName,UserSecurityToken,RowLevelSecurity-Bit) + * eine Liste von Rows im Format (PrivilegName,UserSecurityToken,RowLevelSecurity-Bit). Wenn die Liste leer ist, + * können alle Spalten gesehen werden. * @param isSetup - * True falls es sich um einen Aufruf im Rahmend es Setup handelt + * true, falls es sich um einen Aufruf im Rahmen des Setup handelt * @return Resultat SqlProcedureResult der Ausführung * @throws Exception * Fehler bei der Ausführung @@ -129,7 +131,7 @@ public SqlProcedureResult processSqlProcedureRequest(Table inputTable, List } result = calculateSqlProcedureResult(inputTable, privilegeRequest, connection, result, sb); connection.commit(); - customLogger.logSql("Procedure succesfully executed: " + sb); + customLogger.logSql("Procedure successfully executed: " + sb); if (isSetup) { connection.createStatement().execute("set ANSI_WARNINGS on"); } @@ -165,7 +167,7 @@ public SqlProcedureResult unsecurelyProcessProcedure(Table inputTable) throws Ex * @param inputTable * Ausführungs-Parameter im Form einer Table * @param isSetup - * True falls es sich um einen Aufruf im Rahmend es Setup handelt + * true, falls es sich um einen Aufruf im Rahmen des Setup handelt * @return SqlProcedureResult der Ausführung * @throws Exception * Fehler beim Ausführen der Prozedur. @@ -178,7 +180,7 @@ public SqlProcedureResult unsecurelyProcessProcedure(Table inputTable, boolean i Row requestingAuthority = new Row(); /* * Diese drei Values werden benötigt, um unsicher die Sicherheitsabfrage ohne User durchführen zu können. Das wichtigste hierbei ist, dass der dritte - * Value auf Valse steht. Das Format der Row ist normalerweise (PrivilegName, UserSecurityToke, RowLevelSecurity-Bit) + * Value auf false steht. Das Format der Row ist normalerweise (PrivilegName, UserSecurityToke, RowLevelSecurity-Bit) */ requestingAuthority.addValue(new Value(false, "1")); requestingAuthority.addValue(new Value(false, "2")); @@ -198,12 +200,12 @@ public SqlProcedureResult unsecurelyProcessProcedure(Table inputTable, boolean i * @param privilegeRequest * Eine Liste an Rows im Format (PrivilegName,UserSecurityToken,RowLevelSecurity-Bit). * @param connection - * Die Connection zu der Datenbank, welche die Prozedur ausführen soll. + * Die offene Connection zu der Datenbank, welche die Prozedur ausführen soll. * @param result * Das SQL-Result, welches innerhalb der Methode verändert und dann returned wird. * @param sb * Ein StringBuffer, welcher im Fehlerfall die Fehlermeldung bis zum endgültigen Throw als String aufnimmt. - * @return result Das veränderte SqlProcedureResult. + * @return result das veränderte SqlProcedureResult. * @throws SQLException * Falls ein Fehler beim Ausführen der Prozedur auftritt. * @throws ProcedureException @@ -256,20 +258,23 @@ public SqlProcedureResult calculateSqlProcedureResult(Table inputTable, List= maxResultSetCount) { customLogger.logSql( - "Warning: too many result sets. Mabye there is a big report, which writes a lot of resultsets? Please increase the default value in application.properties (aero.minova.database.maxresultsetcount)"); + "Warning: too many result sets. Maybe there is a big report, which writes a lot of resultsets? Please increase the default value in application.properties (aero.minova.database.maxresultsetcount)"); break; } } } + // ToDo ich kann mir gar nicht vorstellen, dass hier noch ResultSets vorhanden sind, nachdem weiter oben + // mit getMoreResults() alles abgeholt wurde. if (null != preparedStatement.getResultSet() || (preparedStatement.getMoreResults() && null != preparedStatement.getResultSet())) { val sqlResultSet = preparedStatement.getResultSet(); val resultSet = new Table(); @@ -296,6 +301,7 @@ public SqlProcedureResult calculateSqlProcedureResult(Table inputTable, Listparams-Table leer ist. + */ public String prepareProcedureString(Table params) { return prepareProcedureString(params, ExecuteStrategy.STANDARD); } /** - * Bereitet einen Prozedur-String vor + * Bereitet einen Prozedur-String vor. + * Als Ergebnis entsteht ein SQL call-Statement in der Form:
    + *
  1. { ? = call procName() }
  2. + *
  3. { call procName() }
  4. + *
  5. { call procName( ? ) }
  6. + *
  7. { call procName( ?,?, … ) }
  8. + *
  9. { ? = call procName( ?,?, … ) }
  10. + *
+ * Der aufgerufene Name procName ergibt sich aus dem Namen der übergebenen params-Table. + * Die Anzahl der ?-Parameter-Platzhalter ergibt sich aus der Anzahl der Spalten der params-Table. + *
+ * ToDo: prüfen, ob der Name weiter geprüft werden kann oder escaped werden sollte * * @param params * SQL-Call-Parameter @@ -502,7 +533,7 @@ public String prepareProcedureString(Table params) { * Fehler, wenn die Daten in params nicht richtig sind. */ public String prepareProcedureString(Table params, Set strategy) throws IllegalArgumentException { - if (params.getName() == null || params.getName().trim().length() == 0) { + if (params.getName() == null || params.getName().trim().isEmpty()) { throw new IllegalArgumentException("msg.ProcedureNullName"); } final int paramCount = params.getColumns().size();