@笔记
数据库操作时候查询时用到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;
}