这要看您对代码的驾驭能力。
通常意义上来讲,最有效率的方法应该是建立一个数据库连接池。当需要connection时从连接池中获取,使用完毕时丢回去。
连接池负责对数据库连接的建立(登录、初始设定如字符集等等)和销毁。
如果您担心这样做带来的代码复杂度,那么建议您每个线程使用一个单独的连接。
对于数据库来说都是支持并发访问的,但是从 ComboPooledDataSource 中获得的 Connection 连接对象不是线程安全的,一个 Connection 只能在一个线程中,或者局部变量中使用,不得在多个线程中共享一个 Connection。
不建议这样做,一般不符合开发规范,如果这样的话,你想想在业务量多的情况下,多个线程如果不控制,数据库连接会将数据库服务器爆掉的,会影响业务的
常规做法:数据库连接池(durid了解一下),据某些统计哈,真正用来做查询的资源不超过整个查询数据库的生命周期的30%,大部分时间都用开创建连接关闭连接等 *** 作,如果这个时候建立数据库连接池的话,可以有效的将这部分时间释放掉
以上就是关于多线程访问数据库问题全部的内容,包括:多线程访问数据库问题、100个线程 竞争10数据库链接 不做并发控制 怎么解决线程获取不到connection、java线程中使用mysql连接查询数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)