2017-04-09 3 views
0

Ich bin eine Verbindung zu einer Datenbank mit JDBC, aber ich möchte eine Abfrage wie folgt erstellen: SELECT IDCows FROM Kühe, wobei Name = "someVariable".So erstellen Sie eine doPOST auf JDBC

In diesem Fall ist "someVariable" ein String, den ich von einem Formular in meinem HTML bekommen werde. Die Frage ist also, wie kann ich diese Variable abrufen und auf die Abfrage setzen, damit ich jedes Mal nach einem Namen suche Bring mir die richtige Antwort.

Mein Code sieht wie folgt aus:

import java.sql.*; 

public class Connector { 

public static void main(String[] args) { 

    try { 
     Class.forName("com.mysql.jdbc.mysql-connector-java-5.1.12-bin"); 
    } catch (ClassNotFoundException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

    String url = "jdbc:mysql://localhost/Farm"; 

    try { 
     Connection con = DriverManager.getConnection(url, "admin", "admin123"); 

     Statement stat = con.createStatement(); 

     ResultSet rs = stat.executeQuery("SELECT idCows FROM cows WHERE Name = "+name); 

     while(rs.next()) { 

      String n = rs.getString("Name"); 

      System.out.println(n); 
     } 

     stat.close(); 
     con.close(); 

    } catch (SQLException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
} 

}

+0

bitte nach "prepareStatement" und "Bind-Variablen" –

+0

http://docs.oracle.com/javase/tutorial/jdbc /basics/prepared.html –

+0

Was ist das Problem mit Ihrem Code? –

Antwort

0

Sie die Variable in einfachen Anführungszeichen wie

ResultSet rs = stat.executeQuery("SELECT idCows FROM cows WHERE Name = '"+name+"'"); 

Oder viel besser, verwenden Sie ein PreparedStatement setzen müssen.

PreparedStatement stat = con.prepareStatement("SELECT idCows FROM cows WHERE Name = ?"); 
stat.setString(1, name); 
ResultSet rs = stat.executeQuery(); 

Dann tun

String n = rs.getString("idCows"); 

statt "Name "

+0

Vielen Dank, ich werde diese Lösung sofort überprüfen. –

Verwandte Themen