数据库同步--可别忘记了
对于数据库同步,使用者往往将注意力放在了事务上,但是可别忘记了数据库操作方法的同步性。
JDBC中:setAutoCommit(boolean autoCommit)
这个方法可不是什么同步方法,如果一个connection被多个线程使用,这种方式就达不到同步的要求。因为说不定哪个线程马上又调用setAutoCommit。
保持同步的方法是:保证connection只被一个线程使用:
1:使用ThreadLocal(HibernateSessionFactory的方法,ibatis的SqlMapClient内部也是使用了ThreadLocal,所以你可以放心使用单例的SqlMapClient,它是线程安全的)。
2:使用连接池获取connection,用完后关闭。
3:在一个操作内使用同步块。