日期:2014-05-20 浏览次数:21272 次
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
}
参看下面这个例子,每次直接调用就行了
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么?还是不太清楚你想干嘛。