String sql=”SELECT Telephone,IDCardNo,Address FROM YZJ_INFO_SID where IDCardNo in (?)”;
PreparedStatement ps=conn.prepareStatement(sql);
StringBuffer sf=new StringBuffer();
for (Patient patient : patients) {
sf.append(“”””+patient.getIdno()+”””,”);
}
String s=sf.substring(0, sf.length()-1);
ps.setString(1, s);
ResultSet rs=dbConn.execQuery(ps);
这代码为什么查询不到数据呢?patient.getIdno()有值打印的s和上面的sql放到mysql客户端也能查到数据
但就是用这段代码查询不到,也不报错。
PreparedStatement ps=conn.prepareStatement(sql);
StringBuffer sf=new StringBuffer();
for (Patient patient : patients) {
sf.append(“”””+patient.getIdno()+”””,”);
}
String s=sf.substring(0, sf.length()-1);
ps.setString(1, s);
ResultSet rs=dbConn.execQuery(ps);
这代码为什么查询不到数据呢?patient.getIdno()有值打印的s和上面的sql放到mysql客户端也能查到数据
但就是用这段代码查询不到,也不报错。
解决方案:20分
for (Patient patient : patients) { sf.append(""""+patient.getIdno()+""","); } String s = sf.length() > 0 ? sf.substring(0, sf.length() - 2) : "";
而且这里应该加上一个判断
解决方案:20分
这种拼接SQL的做法很容易出错,还是自己写方法封装或者用框架把。