开发一个多线程应用程序,其中需要不同的线程来同时更新数据库。因此,我在创建它时向每个线程传递了一个新的语句对象(以避免锁定,如果我发送一个对象)。我的怀疑是:
是否可以从单个jdbc连接获取的语句对象数量有限制?如果我创建了太多语句对象,数据库连接会失败吗?
如果我在线程终止之前正确关闭了语句,那么一次可以生成的线程数是多少(在具有512Mb RAM的系统上)?
无论我使用多少语句对象并行更新数据库,驱动程序是否会在保持数据一致的同时更新数据库?我使用mysql。
答案 0 :(得分:2)
IMO,你最好从每个线程中的连接池中查找Connection对象,而不是试图传递“statement”对象。
答案 1 :(得分:2)
虽然我不是java程序员,但在多个线程之间共享一个连接是一个坏主意。当2个线程试图在同一个套接字上写入时会发生什么? - 所以 - 每个线程必须有自己的数据库连接
是的,如果许多线程同时写入数据,数据应该在数据库中保持一致 - 无论如何,您必须注意正确管理事务的代码 - 当然,使用InnoDB作为存储引擎MySQL因为MyISAM不允许交易
答案 2 :(得分:1)