如题
public ResultSet PreparedStatement(Stirng sql,PreparedStatement[] preparedStatement)
{
//这里怎么写?
}
preparedStatement 数量不确定,代码怎样写才简洁呢?
------解决方案--------------------
用不確定來應對不確定
for,while等
------解决方案--------------------
- Java code
private Connection conn; private PreparedStatement pstm; private ResultSet rs; public boolean update(User u){ boolean result=false; conn=DBUtil.getConnection(); String sql="update users set uname=?,password=?,score=? where id=?"; try { pstm=conn.prepareStatement(sql); pstm.setString(1,u.getUname()); pstm.setString(2,u.getPassword()); pstm.setInt(3,u.getScore()); pstm.setInt(4,u.getId()); if(pstm.executeUpdate()>0){ result=true; } if(pstm!=null) pstm.close(); if(conn!=null) DBUtil.close(conn); } catch (SQLException e) { e.printStackTrace(); } return result; }
------解决方案--------------------
你是不是要模仿.net里面的adapter呀,如果那样的话,这条sql应该代指查询用sql文,这个PreparedStatement应该是4个(增删改查)的集合吧
------解决方案--------------------
可变参数,
public ResultSet PreparedStatement(Stirng sql,Object... params)
{
//to do something
}
参看下面这个例子,每次直接调用就行了
- Java code
public static ResultSet executeQuery(Connection conn , String sql , Object... params){ ResultSet res = null ; try { PreparedStatement pst = conn.prepareStatement(sql); for(int i = 0; i<params.length; i++){ pst.setObject(i+1, params[i]); } res = pst.executeQuery(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return res; }
------解决方案--------------------
preparedStatement不是可以获取length么?还是不太清楚你想干嘛。