数据库操作时候查询时用到Object...args

@笔记

数据库操作时候查询时用到Object…args

今天在做数据库查询时,想把所有的查询方式都写到同一个方法里。于是用到了Object…args这个参数,用起来确实非常好用,只需要更换sql语句就可以。(sql语句也当作参数。)

今天所用到的代码 getResult。顺便把分页也给贴上去。

public List<result> getResult(int curPage,String sql,Object...args) {
        List<result> list = new ArrayList<>();
        Connection conn = DBUtil.getConnection();
        PreparedStatement ps =null;
        ResultSet rs = null;
        try {
            int num = (curPage-1)*4;//设置一页显示4个数据
            //String sql ="select * from result limit ?,4";
            ps=conn.prepareStatement(sql);

            for (int i=0;i<args.length;i++){
                ps.setObject(i+1,args[i]);
            }
            if(args.length==0){
                ps.setInt(1,num);
            }else {
                ps.setInt(2,num);
            }
            rs=ps.executeQuery();
            while (rs.next()){
                result r= new result(rs.getInt("result_id"),rs.getInt("runtime"),rs.getInt("bufferDataNum"),rs.getInt("buffer1DataNum"),rs.getInt("buffer2DataNum"),rs.getInt("buffer3DataNum"),rs.getInt("putInBufferNum"),rs.getInt("putInBuffer1Num"),rs.getInt("putInBuffer2Num"),rs.getInt("putInBuffer3Num"),rs.getInt("getOutBufferNum"),rs.getInt("getOutBuffer1Num"),rs.getInt("getOutBuffer2Num"),rs.getInt("getOutBuffer3Num"),rs.getInt("AvgBufferNum"),rs.getInt("pid"));
                list.add(r);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            try {
                conn.close();
                ps.close();
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        return list;
    }




//查询数据的总条数
    public int getCount(String sql,Object...args){
        int i = 0;
        Connection conn = DBUtil.getConnection();
        PreparedStatement ps = null;
        ResultSet rs = null;
        //String sql="select count(*) cnt from result";
        try {
            ps=conn.prepareStatement(sql);

            for (int j=0;j<args.length;j++){
                ps.setObject(j+1,args[j]);
            }

            rs=ps.executeQuery();
            if (rs.next()){
                i = rs.getInt("cnt");
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            try {
                conn.close();
                rs.close();
                ps.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }

        return  i;
    }




  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值