SQL语句确定没问题,都是在数据库执行过粘过来的,全部查询有结果, 但是最后加上条件查询结果就是null,当然条件查询在sqlserver也执行有结果。 我认为是java中 sql语句有问题, 但是各种方法都试了还是不行,有没有遇到过这种情况的?
代码如下public PatientBean findPatientByInpatientNo(String inpatientNo) throws SQLException{
// System.out.println(inpatientNo+"h"); // 住院号从servlet传过来没问题
Connection conn = dbUtil.getConnection();
// System.out.println("conn:" + conn); // 数据库链接没问题
String sql = "select a.inpatient_no,a.admiss_times,a.name,admiss_date,convert(varchar(10),a.birth_date,120) sr,a.clinic_doctor " +
"from zy_actpatient as a,zd_unit_code as b " +
"where a.admiss_ward=b.code and " +
"right(a.patient_id,2)='00' and " +
"b.name like '%产%' and " +
"a.inpatient_no='"+ inpatientNo +"'";
PreparedStatement pstm = conn.prepareStatement(sql);
ResultSet rs = pstm.executeQuery();
PatientBean patient = new PatientBean();
while (rs.next()){
patient.setInpatientNo(rs.getString("inpatient_no"));
patient.setAdmiss_times(rs.getInt("admiss_times"));
patient.setName(rs.getString("name"));
patient.setAdmissDate(rs.getDate("admiss_date"));
patient.setSr(rs.getDate("sr"));
patient.setClinic_doctor(rs.getString("clinic_doctor"));
}
return patient;
}
把参数去掉直接输入一个限制条件,结果还是null
String sql = "select a.inpatient_no,a.admiss_times,a.name,admiss_date,convert(varchar(10),a.birth_date,120) sr,a.clinic_doctor " +
"from zy_actpatient as a,zd_unit_code as b " +
"where a.admiss_ward=b.code and " +
"right(a.patient_id,2)='00' and " +
"b.name like '%产%' and " +
"a.inpatient_no='6060572'";请问:我sql语句格式错了吗?应该怎么写?
代码如下public PatientBean findPatientByInpatientNo(String inpatientNo) throws SQLException{
// System.out.println(inpatientNo+"h"); // 住院号从servlet传过来没问题
Connection conn = dbUtil.getConnection();
// System.out.println("conn:" + conn); // 数据库链接没问题
String sql = "select a.inpatient_no,a.admiss_times,a.name,admiss_date,convert(varchar(10),a.birth_date,120) sr,a.clinic_doctor " +
"from zy_actpatient as a,zd_unit_code as b " +
"where a.admiss_ward=b.code and " +
"right(a.patient_id,2)='00' and " +
"b.name like '%产%' and " +
"a.inpatient_no='"+ inpatientNo +"'";
PreparedStatement pstm = conn.prepareStatement(sql);
ResultSet rs = pstm.executeQuery();
PatientBean patient = new PatientBean();
while (rs.next()){
patient.setInpatientNo(rs.getString("inpatient_no"));
patient.setAdmiss_times(rs.getInt("admiss_times"));
patient.setName(rs.getString("name"));
patient.setAdmissDate(rs.getDate("admiss_date"));
patient.setSr(rs.getDate("sr"));
patient.setClinic_doctor(rs.getString("clinic_doctor"));
}
return patient;
}
把参数去掉直接输入一个限制条件,结果还是null
String sql = "select a.inpatient_no,a.admiss_times,a.name,admiss_date,convert(varchar(10),a.birth_date,120) sr,a.clinic_doctor " +
"from zy_actpatient as a,zd_unit_code as b " +
"where a.admiss_ward=b.code and " +
"right(a.patient_id,2)='00' and " +
"b.name like '%产%' and " +
"a.inpatient_no='6060572'";请问:我sql语句格式错了吗?应该怎么写?
是varchar
既然你用preparestatement就不要这么拼参数
前面住院号是inpatientNo+"h"
到了sql里面怎么成了inpatientNo+""了?