字符串参数并选择java中sql的准备语句

字符串参数并选择java中sql的准备语句,java,sql,prepared-statement,Java,Sql,Prepared Statement,我有个问题>> 编程语言:java 数据库:Mysql数据库 我编写了一个java代码,用于根据方法中的数据参数从数据库中检索记录>> 代码是: public static void Get_patient_data(String Hospital1_ID,String Hospital2_ID { try { Connection con = getConnection2(); PreparedStatement statement = (com.m

我有个问题>>

编程语言:java 数据库:Mysql数据库

我编写了一个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);
   }
}
publicstaticvoid获取患者数据(字符串Hospital1\u ID,字符串Hospital2\u ID{
试一试{
连接con=getConnection2();
PreparedStatement=(com.mysql.jdbc.PreparedStatement)
准备陈述(
“选择PatientGender”+
“从PatientReplopulatedTable”+
“其中PatientID=住院1_ID限制1”);
ResultSet result=statement.executeQuery();
ArrayList数组=新的ArrayList();
while(result.next()){
系统输出打印(“患者性别为”+
result.getString(“PatientGender”);
}
}
捕获(例外e){
系统输出打印项次(“错误”+e);
}
}
正如您所看到的,问题是Hospital1_ID参数..来自该方法,而patientID是PatientReportedTable中的一列

=
相等运算符不起作用。

您可以这样做

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();
你可以找到更多信息,试试这个

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

如果
Hospital1\u ID
是参数,则需要将其置于撇号
“WHERE PatientID=“+Hospital1\u ID+”LIMIT 1”