Database 在tomcat服务器上使用连接池时出现数据同步问题
我正在开发一个Servlet应用程序。它从Tomcat容器支持的连接池中获取数据库连接,以查询和更新数据库数据 我遇到了一个问题。Servlet获取数据库连接,然后添加新表行或删除表行。之后,它提交更改。稍后,将获得一个连接以执行查询。我发现从使用第二个连接的查询返回的数据没有反映第一个数据库连接所做的更改 这不是很奇怪吗?已成功提交对第一个数据库连接所做的更改。为什么插入的新行不会出现在后面的查询中?为什么删除的行仍然出现在后面的查询中 它是否与事务级别的设置有关 有人能帮忙吗 03-12:更多信息(#1):Database 在tomcat服务器上使用连接池时出现数据同步问题,database,tomcat,servlets,Database,Tomcat,Servlets,我正在开发一个Servlet应用程序。它从Tomcat容器支持的连接池中获取数据库连接,以查询和更新数据库数据 我遇到了一个问题。Servlet获取数据库连接,然后添加新表行或删除表行。之后,它提交更改。稍后,将获得一个连接以执行查询。我发现从使用第二个连接的查询返回的数据没有反映第一个数据库连接所做的更改 这不是很奇怪吗?已成功提交对第一个数据库连接所做的更改。为什么插入的新行不会出现在后面的查询中?为什么删除的行仍然出现在后面的查询中 它是否与事务级别的设置有关 有人能帮忙吗 03-12:更
为什么?我发现最近发布了一个新版本的C3P0连接池。我试了一下。它起作用了!我遇到的问题没有发生。因此,我使用它来替换Tomcat服务器的绑定连接池。对于那些遇到和我一样问题的人来说,C3P0可能也是一个解决方案
如果直接查询数据库,更新的记录是否存在?有缓存在进行吗?您确定您的提交工作正常吗?您正在使用哪个连接池(Tomcat有2个)?你的数据库是什么?您的事务隔离级别是什么?你在使用自动提交吗?没有发生错误?我今天更新了我的问题,如上所示。谢谢你的评论。
<Resource type="javax.sql.DataSource"
name="jdbc/storewscloud"
factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/myappdb"
maxActive="100"
minIdle="10"
maxWait="10000"
initialSize="10"
removeAbandonedTimeout="60"
removeAbandoned="true"
logAbandoned="true"
username="root"
password="xxxxxxxxxx"
/></li>