2017-01-29 6 views
2

にSQLのプリペアドステートメントをSELECT >>文字列パラメータと私は問題を抱えているの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はテーブルの列であり、患者の人口は次のとおりです。

=等しい演算子は機能しません。

+0

を試してみて見つけることができるこのよう

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(); 

それを行うことができます"WHERE PatientID =" + Hospital1_ID + "LIMIT 1" ' – Guy

答えて

1

あなたは `Hospital1_ID`は`アポストロフィ外に置く必要があるパラメータである場合にはより多くの情報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(); 
関連する問題