在C#中-------------------------------------------------------
string strSql = "SELECT * FROM tbl_news WHERE fld_id=@ID";
//Sql参数
SqlParameter[] prams = new SqlParameter[] {                
  new SqlParameter ("@ID",SqlDbType.Int)
};
prams[0].Value = IntID;
//执行SQL语句
CurWebEnv.GetResultSet(strSql, prams);在C#中,可以先定义Sql字符串和对应参数,然后再到封装的函数里面去执行。请问我在Java中怎么实现呢?在Java中-----------------------------------------------------
String Sql = "SELECT * FROM tbl_news WHERE fld_id=?";
PreparedStatement ps = null;
ps.setInt(1,1);
CurEnv.RunSql(Sql,ps);如果这么写就出错,因为PreparedStatement必须先连接库在设置参数。问题1:请问我怎么像C#一样,先设置好参数,然后在进到方法里面去执行。因不想每次都操作coon,可不可以像C#一样封装好,每次用就调用一次。

解决方案 »

  1.   

    你每次执行都学要connection,我不理解你是什么意思,你可以使用连接池减少new新的connection,可以写一个utils方法封装拿connection的操作以显得代码整洁,但是如果你想要jdbc,那就必须要有一个连接
      

  2.   

    先不用ps.setInt(1,1);
    可以把参数封装成object类型的数组,或者 单独用一个实体作为载体传递。都是可以的呀
    然后
    PreparedStatement ps = null;
    ps.setInt(1,1);一看就有错,创建的ps对象 为null, 会抛出NullPointerException 的