Articles of jdbc

Vorbereitete Aussage in der sichersten Weise verwenden

Gibt es aus Sicht der securitysvalidierung einen Unterschied zwischen: stmt.setObject(1, theObject); und stmt.setString(1, theObject); ? Ich weiß, dass in diesem Fall theObject ein String aber ich bin daran interessiert, einen Teil dieses Codes allgemeiner zu machen, um andere Fälle abzudecken, und habe mich gefragt, ob die securitysperspektive der Eingabevalidierung betroffen ist

Eine BOOLEAN-Spalte kann keiner Tabelle in meiner Derby-database hinzugefügt werden

Ich benutze NetBeans und ich habe Probleme mit dem Hinzufügen einer BOOLEAN-Spalte zu meiner Tabelle für meine Derby-database. Befehl kann nicht ausgeführt werden: Tabelle "APP" erstellen. CLASS (TEST BOOLEAN) BOOLEAN kann nicht für die Version 10.6 oder irgendeine Version vor 10.6 verwendet werden. Sie müssen Ihre database auf 10.7 oder eine höhere Version aktualisieren. Aber […]

java.sql.SQLException: ORA-00933: Der SQL-Befehl wurde bei Verwendung von getGeneratedKeys nicht ordnungsgemäß beendet

Wenn ich die folgende Abfrage verwende, funktioniert es. query = "INSERT INTO MLRL1_PSR_MASTER (PROJECT_ID,FROM_DATE,TO_DATE,TEMPLATE_ID,TEMPLATE_TYPE,UPLOADED_BY,PSR_SLABID) " + " select '"+projectId+"' , FROM_DATE , TO_DATE,'"+templateId+"','"+tempType+"','"+user.getUserID()+"', "+slabId+ " from MLRL1_PSR_SLABS where SLAB_ID="+slabId+" "; stmt = connection.prepareStatement(query, new String[] { "ID" }); stmt.executeUpdate(); stmt = connection.prepareStatement(query); aber wenn ich dieselbe Abfrage mit getGeneratedKeys () verwende wie: stmt = connection.prepareStatement(query, […]

Wie booleans zu konstruieren und mit java / oracle stored proc auf sie zuzugreifen

Zum ersten Mal mit Oracle, normalerweise SQL server verwenden, und stieß auf ein seltsames Problem. Ich habe mir bei diesem Problem die Haare ausgerissen und einige randome Dinge ausprobiert. Ursprünglich hatte ich nur zwei Parameter, und alles hat gut funktioniert. Ich wollte dann einen booleschen Wert hinzufügen, um mehrere Pfade in meinem gespeicherten process zu […]

Hibernate Mass Insert / Update: Ist das ein guter Ansatz?

Momentan mache ich Performance- und Memory-Tuning in unserer Hibernate-basierten App für große Bulk / Batch-Importe. Wir importieren grundsätzlich eine CSV-file mit Produktdaten, in der einige Produkte neu sind (insert) und einige existieren (aktualisieren). Ich konzentriere mich jetzt auf die Auswahl einer Strategie, um herauszufinden, welche Entitäten zu UPDATE und welche zu INSERT, ohne eine Prüfung […]

Ist eine generische SQL-Abfrage in Java möglich?

Wenn ich eine Methode zum Erstellen von SQL-Abfragen wie folgt habe: public List selectTuple() { boolean status = true; String query = "SELECT "; query += getFields() == null ? " * " : " " + getFields() + " "; query += " FROM " + tables; if ( getSearchClause() != null ) { […]

Wo werden jdbc Rowsets verwendet?

Es gibt einige JDBC- Rowsets wie CachedRowSet , WebRowSet , FilteredRowSet und JoinRowSet . Weiß irgendein Bode, wo sie benutzt werden? Ok, kann CachedRowSet gut sein, wo ich nicht offen und Verbindung möchte, kann WebRowSet gut sein, wenn ich einige XML-data insert muss ("kann sein" aber ich bin mir nicht sicher). Aber was ist mit […]

Intelligente Logik fragt die performance innerhalb von functionen für PostgreSQL ab

Berücksichtigen Sie die folgende SQL-Abfrage: SELECT a,b,c FROM t WHERE (id1 = :p_id1 OR :p_id1 IS NULL) AND (id2 = :p_id2 OR :p_id2 IS NULL) Markus Winand nennt in seinem Buch " SQL Performance erklärt " diesen Ansatz als eines der schlechtesting Performance-Anti-Patterns von allen und erklärt warum (die database muss den schlimmsten Fall vorbereiten, […]

Was kostet eine Aussage?

Wenn ich immer nur eine Statement gleichzeitig verwende, würde es sich lohnen, sie zusammen mit meiner Connection . Ich cache bereits die Verbindung, so dass ich die statement fast kostenlos cachen konnte. Im Wesentlichen nehme ich an, dass ich frage, ob es Kosten / Overhead für die Erstellung einer Aussage gibt. Ich verstehe die Vorteile […]

Fehlender IN- oder OUT-Parameter bei Index :: 1

Ich versuche eine Abfrage in Java-Code auszuführen, die Abfrage lautet: String triggerQuery = "CREATE OR REPLACE TRIGGER global_archive_01 AFTER INSERT ON archive_01 FOR EACH ROW BEGIN INSERT INTO archive values (:NEW.id_01 , :NEW.id_02 , :NEW.id_03 , 'test' , :NEW.id_05); END;" Query query = session.createSQLQuery(triggerQuery); query.executeUpdate(); Wenn ich versuche, diese Abfrage in SQL Developer auszuführen, funktioniert […]