当前位置: 代码迷 >> J2SE >> preparedStatement 封装,该如何处理
  详细解决方案

preparedStatement 封装,该如何处理

热度:702   发布时间:2016-04-24 01:13:34.0
preparedStatement 封装
如题

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么?还是不太清楚你想干嘛。
  相关解决方案