2017-01-29 18 views
2

我有一個問題>>選擇準備好的聲明中對SQL字符串參數,並在Java

編程語言:JAVA 數據庫:Mysql數據庫

我寫的基於數據庫retrive備案java代碼對數據參數從方法作曲>>

代碼:

public static void Get_patient_data(String Hospital1_ID,String Hospital2_ID {  
    try { 
     Connection con = getConnection2(); 
     PreparedStatement statement = (com.mysql.jdbc.PreparedStatement) 
     con.prepareStatement(
      "SELECT PatientGender "+ 
      "FROM patientcorepopulatedtable "+ 
       "WHERE PatientID = Hospital1_ID LIMIT 1"); 
     ResultSet result = statement.executeQuery(); 
     ArrayList<String> array = new ArrayList<String>(); 
     while(result.next()) { 
     System.out.print("the patient Gender is" + 
      result.getString("PatientGender")); 
     } 
    } 
    catch(Exception e) { 
     System.out.println("Error"+e); 
    } 
} 

正如你看到的問題是Hospital1 _ID參數..來自該方法,並且patientID是表格patientCorepoptabletable中的一列...

=等號運算符不起作用。

+0

如果'Hospital1_ID'是你需要把它撇號'外參數「Where PatientID =」+ Hospital1_ID +「LIMIT 1」' – Guy

回答

1

你能做到這樣

PreparedStatement statement = (com.mysql.jdbc.PreparedStatement) 
    con.prepareStatement(
     "SELECT PatientGender FROM patientcorepopulatedtable "+ 
     "WHERE PatientID = ? LIMIT 1"); 
statement.setString(1, Hospital1_ID); 
ResultSet result = statement.executeQuery(); 

你可以找到更多信息here

+0

其工作謝謝 – monaalhumud

+1

別忘了接受答案!並upvote –

1

試試這個

String query = 
    "SELECT PatientGender FROM patientcorepopulatedtable "+ 
     " WHERE PatientID = ? LIMIT ?"; 
     PreparedStatement preparedStmt = conn.prepareStatement(query); 
     preparedStmt.setString (1, Hospital1_ID); 
     preparedStmt.setInt (2, 1); 
     preparedStmt.executeQuery();