Verwenden Sie PreparedStatement in Java

Für Stapel und Anwendungen, für die eine DB-Verbindung erforderlich ist, werden normalerweise die folgenden Klassen verwendet, um den Verbindungsprozess zu implementieren. --java.sql.Connection-Klasse --java.sql.Statement-Klasse --java.sql.ResultSet-Klasse

In letzter Zeit scheint es jedoch beliebt zu sein, die Klasse java.sql.PreparedStatement anstelle der Klasse Statement zu verwenden. Ich werde den Grund aufschreiben.

Grund

  1. Maßnahmen gegen SQL-Injection
  2. Wie der Name schon sagt, wird SQL in der Datenbank zwischengespeichert, sodass die Verarbeitungsgeschwindigkeit schneller wird, wenn dieselbe SQL-Anweisung wiederholt ausgegeben wird.

Wie benutzt man

Verwendung im Vergleich zur Statement-Klasse.

Für Anweisungsklasse

  1. Holen Sie sich ein Objekt der Statement-Klasse. Es kann mit dem Objekt .createStatement () der Connection-Klasse abgerufen werden.
  2. Führen Sie eine SQL-Anweisung mit einem Objekt der Statement-Klasse aus. Es kann mit dem Statement-Klassenobjekt .execute () ausgeführt werden.
Connection con = DriverManager(hoge,hoge,hoge);
String sql = "select name from hogeData where id = '1'";
Statement st = con.createStatement(sql);
st.execute();

Für die PreparedStatement-Klasse

  1. Ersetzen Sie den Wert der SQL-Anweisung, die Sie ausführen möchten, durch?. Zu diesem Zeitpunkt ist es nicht erforderlich, es in ein einfaches Anführungszeichen zu setzen.
  2. Rufen Sie ein Objekt der PreparedStaetment-Klasse ab. Es kann mit dem Objekt .preparedStatement () der Connection-Klasse abgerufen werden. Übergeben Sie die SQL-Anweisung als Argument.
  3. Fügen Sie im Objekt .setHoge () der PreparedStatement-Klasse einen Wert in? Ein. Zu diesem Zeitpunkt setInt () für den Integer-Typ und setString () für den Wert des String-Typs. Geben Sie im Argument die Position von? An. Wenn es das erste? From? Ist, übergeben Sie auf der linken Seite der SQL-Anweisung 1 im ersten Argument und den Wert, den Sie in das zweite Argument einfügen möchten.
  4. Es kann mit dem Objekt .executeQuery () oder .executeUpdate () der PreparedStatement-Klasse ausgeführt werden. Die verwendete Methode hängt vom Vorhandensein oder Fehlen des zurückgegebenen ResultSet ab.
Connection con = DriverManager(hoge,hoge,hoge);
String sql = "select name from hogeData where id = ?";
Statement st = con.preparedStatement(sql);
st.setInt(1, 1);
ResultSet rs = st.executeQuery();

Wenn Sie genauer wissen möchten, warum Sie es verwenden sollten, lesen Sie unten. (Ich werde es später hinzufügen)

Recommended Posts

Verwenden Sie PreparedStatement in Java
Verwenden Sie OpenCV mit Java
Verwenden wir Twilio in Java! (Einführung)
[Java] Verwenden Sie nicht "+" im Anhang!
Verwenden Sie zusammengesetzte Schlüssel in Java Maps.
Wie verwende ich Klassen in Java?
Verwenden Sie Stream in Java?
Partisierung in Java
Änderungen in Java 11
Janken in Java
[Java] Verwenden Sie Collectors.collectingAndThen
Umfangsrate in Java
FizzBuzz in Java
Mehrsprachige Unterstützung für Java Verwendung des Gebietsschemas
Verwenden Sie OpenCV_Contrib (ArUco) mit Java! (Teil 2-Programmierung)
[Java] Verwenden Sie kryptografische Technologie mit Standardbibliotheken
Lesen Sie JSON in Java
Interpreter-Implementierung durch Java
Machen Sie einen Blackjack mit Java
Janken App in Java
Einschränkungsprogrammierung in Java
Setzen Sie Java8 in Centos7
Verbinden Sie Arrays in Java
"Hallo Welt" in Java
Aufrufbare Schnittstelle in Java
Verwenden Sie OpenCV_Contrib (ArUco) mit Java! (Teil 1-Build) (OpenCV-3.4.4)
Verwenden Sie java.time mit Jackson
Kommentare in der Java-Quelle
Azure funktioniert in Java
[Java] Verwendung von final in der lokalen Variablendeklaration
Formatieren Sie XML in Java
Einfache HTML-Spezialchars in Java
Boyer-Moore-Implementierung in Java
Verwenden Sie Interceptor im Frühjahr
Hallo Welt in Java
WebApi-Memorandum mit Java
Typbestimmung in Java
Befehle in Java ausführen (Ping)
Verschiedene Threads in Java
Zabbix API in Java
ASCII-Kunst in Java
Listen in Java vergleichen
POST JSON in Java
Verwenden Sie MouseListener für die Verarbeitung
Verwenden Sie Bilder mit Schienen
Fehler in Java ausdrücken
Verwenden Sie PostgreSQL in Scala
Erstellen Sie JSON in Java
[JAVA] [Spring] [MyBatis] Verwenden Sie IN () mit SQL Builder
Datumsmanipulation in Java 8
Was ist neu in Java 8?
Was ist neu in Java 9,10,11
Parallele Ausführung in Java
Ich möchte ES2015 auch in Java verwenden! → (´ ・ ω ・ `)
[JAVA] [Spring] [MyBatis] Verwenden Sie GROUP BY in SQL Builder
Verwendung von Abstract Class und Interface in Java richtig
Hinweise zur Verwendung regulärer Ausdrücke in Java