我在春季使用ibatis来写入mysql。

我有一个间歇性错误。在进程的每个循环中,我向数据库写入两行。下一个周期我读了上一个周期的行。有时(30分之一,有时更频繁,有时更少),我只从数据库返回一行。

我关闭了所有我能想到的缓存。我的sqlmap-config.xml只是说:

<sqlMapConfig>
<settings enhancementEnabled="false" statementCachingEnabled="false" classInfoCacheEnabled="false"/>

<sqlMap resource="ibatis/model/cognitura_core.xml"/>




是否存在一些异步性,或者缓存到spring或ibatis或我缺少的mysql驱动程序?

使用spring 3.0.5,mybatis 2.3.5,mysql-connector-java 5.0.5

编辑1:

可能是因为我正在使用连接池(c3p0)吗?我正在阅读时,插入程序是否仍在运行?但是,这很奇怪,我认为除非我明确声明为异步,否则一切都会同步发生?

最佳答案

插入后是否要调用SqlSession.commit()? C3P0异步“关闭”连接,这可能是在幕后调用commit。那可以解释您所看到的行为。

10-06 05:40
查看更多