求解! java Dao层 mysql分页语句中不带条件时查询有值 为什么带条件时rs.next() 就为false?
public Page sall(String s1,int pageSize, int pageNo) {
int rowcount=0;
String sqls = "";
String sql="select count(*) from carbinfo where 1=1";
if(s1!=null&&s1.length()>0){
//System.out.println("1"+s1);
sql+=" and ( name like '%"+s1+"%'" +
"or price like '%"+s1+"%'" +
"or type like '%"+s1+"%'" +
"or ontime like '%"+s1+"%'" +
"or original like '%"+s1+"%'" +
"or mileage like '%"+s1+"%'" +
"or city like '%"+s1+"%'" +
"or states like '%"+s1+"%'" +
"or xprice like '%"+s1+"%' )" ;
}
System.out.println(sql);
rs = commonQuery(sql);
try {
if(rs.next()){
rowcount=rs.getInt(1);
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
commonClose(conn, stmt, rs);
}
List<car> cas=new ArrayList<car>();
String sql2="select * from carbinfo where ? limit ?, ?";
if(s1!=null&&s1.length()>0){
//System.out.println("1"+s1);
sqls+=" ( name like '%"+s1+"%'" +
"or price like '%"+s1+"%'" +
"or type like '%"+s1+"%'" +
"or ontime like '%"+s1+"%'" +
"or original like '%"+s1+"%'" +
"or mileage like '%"+s1+"%'" +
"or city like '%"+s1+"%'" +
"or states like '%"+s1+"%'" +
"or xprice like '%"+s1+"%' )" ;
}else{
sqls+="1=1";
}
System.out.println(sql2);
System.out.println(sqls);
System.out.println(pageSize*(pageNo-1));
System.out.println(pageSize);
rs = commonQuery(sql2,sqls,pageSize*(pageNo-1),pageSize);
try {
System.out.println(rs.next());
while(rs.next()){
car c=new car();
c.setId(rs.getInt("id"));
c.setName(rs.getString("name"));
c.setPrice(rs.getFloat("price"));
c.setBrand(rs.getString("brand"));
c.setType(rs.getString("type"));
c.setOntime(rs.getString("ontime"));
c.setOriginal(rs.getFloat("original"));
c.setMileage(rs.getString("mileage"));
c.setImage(rs.getString("image"));
c.setCity(rs.getString("city"));
cas.add(c);
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
commonClose(conn, stmt, rs);
}
return new Page(pageSize,pageNo,rowcount,cas);
}
}
下面是打印结果 先不带条件 后带条件 条件为1
select count(*) from carbinfo where 1=1
select * from carbinfo where ? limit ?, ?
1=1
0
2
true
com.mstf.bean.car@7cef307c
com.mstf.bean.Page@108b736
下面的sql语句拿到mysql数据库中是有多个结果的
select count(*) from carbinfo where 1=1 and ( name like '%1%'or price like '%1%'or type like '%1%'or ontime like '%1%'or original like '%1%'or mileage like '%1%'or city like '%1%'or states like '%1%'or xprice like '%1%' )
select * from carbinfo where ? limit ?, ?
( name like '%1%'or price like '%1%'or type like '%1%'or ontime like '%1%'or original like '%1%'or mileage like '%1%'or city like '%1%'or states like '%1%'or xprice like '%1%' )
0
2
false
com.mstf.bean.Page@63a3bd86