日期:2014-05-17  浏览次数:20896 次

奇了怪了,下面2条SQL语句在mysql的Query代码输入窗口中都能查询出结果,而在java代码中却只有①能出结果,怎么回事呢?
有2条SQL语句:
① SELECT sId,sName,sAge FROM studentinfo 
② SELECT sId,sName,sAge FROM studentinfo WHERE sName LIKE '%李四%'

这2条SQL语句在mysql的Query代码输入窗口中都能查询出结果,而在java代码中却只有①句能出结果,②句查不出记录来。

我的java代码如下:
private static Connection con;

public ArrayList getStudents(String sname){
ArrayList<Student> al = new ArrayList(); 
//String sql = "SELECT sId,sName,sAge FROM studentinfo"; // ③
String sql = "SELECT sId,sName,sAge FROM studentinfo WHERE sName LIKE '%李四%' "; //④
ResultSet rs = null;
try {
iniDB();
rs = con.createStatement().executeQuery(sql);
while(rs.next()){
Student s = new Student();
s.setsId(rs.getString("sId"));
s.setsName(rs.getString("sName"));
s.setsAge(rs.getInt("sAge"));
al.add(s);

}

}catch (SQLException e) {
e.printStackTrace();
} finally{
  closeDB();
}
return al;
}

调用的时候,用③可以查询出数据表中的记录,而用④却不能,怎么回事?请高人解答,分不够,可以加分哦。




------解决方案--------------------
jdbc:mysql://localhost:3306/meeting?characterEncoding=utf-8
把连接数据库后面加上编码再试试!
------解决方案--------------------
你加where 1=1试试,如果能查出来,肯定就是编码问题了。