在使用BoneCP的时候发现一个问题,请指点

发布于 2021-11-13 15:31:36 字数 159 浏览 876 评论 5

     我在使用BoneCP的时候发现一个问题,我更新提交和insert,delete提交没有马上提交到数据库,好像还会有缓存,这个时候马上查询还是旧的数据,等过几秒后查询才是最新的数据,请教各位一下,这个是BoneCP本身设置的问题吗?能马上设置生效吗?谢谢!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

做个少女永远怀春 2021-11-18 08:33:58

感觉数据更新有延时

如果hibernate立即flush就没问题了,是不是和提交的设置有关,这个在那里设置

眉黛浅 2021-11-18 08:32:15

我刚尝试使用 BoneCP,也碰到类似问题,目前不清楚怎么解决

毁梦 2021-11-18 08:11:23

我也有这问题。我现在用的是BoneCP 0.7.0版本。

现在我的case是:用一个线程专门监视某张表的记录数,如果用BoneCP来查找记录数的话,总是获取不到最真实的记录数。而如果改为用DriverManage的连接去查找记录数就能跟数据库的记录数同步。

我的BoneCP代码如下

 private static BoneCP connPool;
 public final static void init() throws Exception{
  Class.forName("com.mysql.jdbc.Driver");
  //设置连接池配置信息              
  BoneCPConfig config = new BoneCPConfig();              //数据库的JDBC URL              
   config.setJdbcUrl("jdbc:mysql://localhost:3306/fly_picture");               //数据库用户名              
  config.setUsername("root");               //数据库用户密码              
  config.setPassword("123456");              //数据库连接池的最小连接数              
  config.setMinConnectionsPerPartition(5);              //数据库连接池的最大连接数              
  config.setMaxConnectionsPerPartition(10);              //              
   config.setPartitionCount(1);              //设置数据库连接池              
  connPool = new BoneCP(config); 
 }
 public final static Connection getConnection() throws SQLException{
  
  return connPool.getConnection();
 }

DriverManage的代表如下:

public final static void init() throws Exception{
        Class.forName("com.mysql.jdbc.Driver");
}
public final static Connection getConnection() throws SQLException{
		
        return DriverManager.getConnection("jdbc:mysql://localhost:3306/fly_picture", "root", "123456");
}

请高手帮忙看下,谢谢

静谧 2021-11-17 14:58:01

好的,谢谢

鹤舞 2021-11-16 05:47:13

BoneCP 只是一个连接池,并不会作缓存的处理,你应该检查一下其他方面的可能性。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文