现在想利用JDBC执行"Select *..."的SQL语句查询,
一般是由DriverManager或连接池得到Connection对象,由Connection对象得到Statement对象,然后执行.executeQuery(strSQL)的方法。如果有多条"Select *..."的SQL语句需要一起执行,每个SQL语句查询不同的表,返回各自的ResultSet结果对象,请问这样的需求是每个SQL执行查询时都得到一个Connection连接,还是只用一个Connection连接,利用这一个连接进行所有的查询?每得到一个Connection连接对系统的性能影响大么?如果可以只用一个Connection连接的话,在多用户访问的情况下,是否可以?谢谢

解决方案 »

  1.   

    1.可以只用一个Connection连接
    2.在取得一个数据库连接时需要很多系统资源的
    3.可以
    其实你改在一个具体功能模块里面取得一个数据库连接,在使用完连接close,更好一点就是使用连接池。
      

  2.   

    可以,创建一个全局Connection变量,用getConnection()获得。
    用完再写一个closeConnection()方法把它关了就行
      

  3.   

    可以实现,在取得Connection的时候,利用单例模式
        public Connection getConnection(){
            if(conn == null ){
                conn = new Connection();
            }
            return conn ;
        }
      

  4.   

      顶 yksky(北风)  ,但是最好用连接池
      

  5.   

    可以使用同一个connection对象
    但是建议statement和retsultset对象不同!
      

  6.   

    不管你怎么select * from XXX...Connection只针对的是一个库。。而中有许多表啊。你可以随便操作啊。。如果你要同时查询多个表的话我觉得用事务比较好一些,而且还安全。。如果在创建一个Connection那就不同的对象了。
      

  7.   

    呵呵,那当然啊,对弈一个数据库而言,它的Connection可以是一个,公用么,至于里面的Statement,PreparedStatement,ResultSet等等对象,是针对一次特定的sql语句操作来说的,用完了,肯定要释放的啊,至于说连接池,现在用的比较广泛的,比如说Apache的DBCP连接池,c3p0连接池等等,或者自己写的连接池,都可以拿过来使用的,很方便的
      

  8.   

    可以实现,在取得Connection的时候,利用单例模式
    public Connection getConnection(){
    if(conn == null ){
    conn = new Connection();
    }
    return conn ;
    }
    不过更推荐利用数据库连接池顶 yksky(北风),allan6122(上海滩的苦力程序员)