是Connection 、ResultSet 对象传引用????

解决方案 »

  1.   

    java中没有传引用的,全是传值,
      

  2.   

    Connection 是接口啊 怎么传
      

  3.   

    Java语言中全部是 值传递。。没有引用传递。。
      

  4.   


    public void class1()
    {
       Connection con=null;
       
       ResultSet res =  executesql(con,"");//执行
       while(res.next())
      {  }
      //我要关闭Connection
    }public ResultSet executesql(Connection con ,String sql)
    {
        con=getCon();//获取连接
        PreparedStatement pstmt=conn.prepareStatement(sql);
        ResultSet res=pstmt.executeQuery();
        return res;
     }
    大致意思就这样
      

  5.   

    public void class1()
    {
       Connection con=null;//     Connection 获取一个数据库连接对象
       ResultSet res =  executesql(con,"");//     ResultSet 操作数据库并返回执行后的对象
       while(res.next())
      {  }
      }public ResultSet executesql(Connection con ,String sql)
    {
        con=getCon();//获取连接
        PreparedStatement pstmt=conn.prepareStatement(sql);  //PreparedStatement 主要用于带参数的SQL语句传入
        ResultSet res=pstmt.executeQuery();
        return res;
     }
    实在不太清楚你具体想问什么,只能回答这些了
      

  6.   


    public void class1()
    {
       Connection con=null;
       
       ResultSet res =  executesql(con,"");//执行
       while(res.next())
      {  }
      //我要关闭Connection
       此时的Connection 为NULL 我想让它不为NULL
      所以要传引用
    }public ResultSet executesql(Connection con ,String sql)
    {
        con=getCon();//获取连接
        PreparedStatement pstmt=conn.prepareStatement(sql);
        ResultSet res=pstmt.executeQuery();
        return res;
     }
      

  7.   


    public void class1()
    {
       Connection con=null;
       con=getCon();//获取连接
       ResultSet res =  executesql(con,"");//执行
       while(res.next())
      {  }
      //我要关闭Connection
       此时的Connection 为NULL 我想让它不为NULL
      所以要传引用
    }public ResultSet executesql(Connection con ,String sql)
    {
       // con=getCon();//获取连接
        PreparedStatement pstmt=conn.prepareStatement(sql);
        ResultSet res=pstmt.executeQuery();
        return res;
     }
      

  8.   

    Java中如果对象作为参数,那么只能改变该对象的状态,而不能给它重新赋值
    所以con=getCon();在方法结束后,还是Null的
      

  9.   

    同意14楼的意见
    如果实现返回一个集合,里面放有两个对象:ResultSet, Connection
    然后在外面去分别获取这两个对象,在赋给前面定义的conn.
      

  10.   

    LZ,Java没有传引用的. Java就是传值的.  这是Java的参数传递机制.
    另外我大概知道你的意思,不过我觉得你的代码封装的有点不到位..应该把Connection con,PreparedStatement ps,ResultSet rs全部设为private的成员变量会比较好点.
    应该把层次体现的清楚些,写个BaseDao类,这个类里面提供Connection getCon()的方法,关闭连接的方法void closeAll(Connection con,PreparedStatement ps,ResultSet rs),增删改的方法
    int executeSQL(String sql,param)这三个方法, 然后让每一个具体的数据访问类去继承这个BaseDao 这样不是更符合你想要的代码重用吗.? 不用每个数据访问层都写增删改的操作.而且你上面的getCon()方法没见你捕捉异常,你应该考虑下,这个异常是应该在方法里面处理还是交给调用者呢?很显然获得连接这个方法把捕捉的事情交给调用者比较合理些