数据库同步--可别忘记了

对于数据库同步,使用者往往将注意力放在了事务上,但是可别忘记了数据库操作方法的同步性。

JDBC中:setAutoCommit(boolean autoCommit)这个方法可不是什么同步方法,如果一个connection被多个线程使用,这种方式就达不到同步的要求。因为说不定哪个线程马上又调用setAutoCommit

保持同步的方法是:保证connection只被一个线程使用:

1:使用ThreadLocal(HibernateSessionFactory的方法,ibatis的SqlMapClient内部也是使用了ThreadLocal,所以你可以放心使用单例的SqlMapClient,它是线程安全的)。

2:使用连接池获取connection,用完后关闭。

3:在一个操作内使用同步块。


Total views.

© 2013 - 2018. All rights reserved.

Powered by Hydejack v6.6.1