首页 新闻 搜索 专区 学院

Java jdbc中的多条件分页查询

0
[已解决问题] 解决于 2018-09-17 19:48

无论我加几种查询条件,返回给我的查询总量恒等于mysql数据的总量

经过逐行打印,发现没有进入if语句中

问题:帮忙找出为什么没有进入if语句中????

public static int tongJi(StudentDuoTiaoJian sdtj) {
        Connection conn = null;
        ResultSet rs = null;
        PreparedStatement ps = null;
        conn = Util.getConnection();
        StringBuilder sql = new StringBuilder();
        sql.append("  select count(*)");
        sql.append("  from stu_student");
        sql.append("  where 1=1");
        if (sdtj.getId() != 0) {
            sql.append(" and stu_id=?");
            System.out.println("==============================");
        }
        if (sdtj.getName() != null) {
            sql.append(" and stu_name like ?");
            System.out.println("==============================");
        }
        if (sdtj.getNianji() != 0) {
            sql.append("  and stu_nianji=?");
            System.out.println("==============================");
        }
        if (sdtj.getPsw() != null) {
            sql.append("  and stu_psw=?");
            System.out.println("==============================");
        }
        if (sdtj.getIdNo() != 0) {
            sql.append("  and stu_id>=?");
            System.out.println("==============================");
        }
        if (sdtj.getIdEnd() != 0) {
            sql.append("  and stu_id<=?");
            System.out.println("==============================");
        }
        
        int a = 0;
        
        try {
        ps = conn.prepareStatement(sql.toString());
        if (sdtj.getId() != 0) {
            ps.setInt(++a, sdtj.getId());
            System.out.println(a);
        }
        if (sdtj.getName() != null) {
            ps.setString(++a, sdtj.getName());
            System.out.println(a);
        }
        if (sdtj.getNianji() != 0) {
            ps.setInt(++a, sdtj.getNianji());
            System.out.println(a);
        }
        if (sdtj.getPsw() != null) {
            ps.setString(++a, sdtj.getPsw());
            System.out.println(a);
        }
        if (sdtj.getIdNo() != 0) {
            ps.setInt(++a, sdtj.getIdNo());
            System.out.println(a);
        }
        if (sdtj.getIdEnd() != 0) {
            ps.setInt(++a, sdtj.getIdEnd());
            System.out.println(a);
        }

        rs = ps.executeQuery();
        if (rs.next()) {
            int num = rs.getInt(1);    
            System.out.println(num);
            return num;
        }else{
            return 0;
        }
        } catch (SQLException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
            return 0;
        }finally {
            Util.close(conn, ps, rs);
        }
    }

碎情拾海的主页 碎情拾海 | 菜鸟二级 | 园豆:205
提问于:2018-08-29 20:02
< >
分享
最佳答案
0

你先写个语句,把你的sql变量打印出来,你就知道问题了。

奖励园豆:5
PottyHarry | 菜鸟二级 |园豆:302 | 2018-08-31 13:50
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册