在数据库开发中,问题1:我建立了一个CONNECTION,那么我可以并发查询吗? (当然,顺序查询不会有问题,我的意思是多线程用一个CONNECTION并发查询)
问题2:我写测试脚本测试服务器的时候,有必要用C3P0吗,C3PO是用在服务器端还是客户端的?
问题3: 我每次查询是否每次都要关闭RESULTSET和STATEMENT?以上问题,请教下大家,多谢了

解决方案 »

  1.   

    2:C3PO用在服务器端 
    3: 都要关闭RESULTSET和STATEMENT 释放资源。
      

  2.   

    一个Connection在同一时间内只能有一个对象使用。
      

  3.   

    看了一下java.sql.Connection这个接口的文档注释,并没有说明Connection这个接口的实现要是线程安全的,一次各种数据库驱动实现中,可能Connection是线程安全的,也可能不是线程安全的。或者Connection中的所有方法都被实现为了线程自然安全(通常是不可能的,因为Connection中应该会有公用变量,例如Socket)。
    所以,总结起来一句话:不要让多个线程共用同一个Connection。
      

  4.   

    一个对象使用是什么意思尼?那假设我启用多个线程,操作一个CONNECTION对象,有没有问题尼?
      

  5.   

    看了一下java.sql.Connection这个接口的文档注释,并没有说明Connection这个接口的实现要是线程安全的,一次各种数据库驱动实现中,可能Connection是线程安全的,也可能不是线程安全的
      

  6.   

    最好是一个连接一个connection,我的项目里都用连接池。一般设置20个,每次取一个没有被用的,用完后一定给他关掉。
      

  7.   

    多线程不能共用一个connection的,因为connection不是线程安全的!如果多个线程共用一个connection的话,好一点的话就脏读,更严重的就是死锁!
    如果多线程中要使用connection的话,一般都是使用连接池,如:第三方连接池c0p3、dbcp、proxool,或者也可以用ejb3,tomcat和jboos。。这些应用服务中也支持连接池服务!如果都喜欢的话,可以自己开发一个连接池!
      

  8.   

    在开发中一般都是用连接池的!不可能一次访问就创建一个connection,如果这样的话是很耗资源的,因为创建一个connection和关闭一个connection的需要一定系统资源和时间,
      

  9.   

    多个线程共用一个Connection对象就可以了。一个Connection可以创建几千个Statement,一个Statement有可以产生几千个ResultSet