Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法在Java+;中创建连接池;MySQL+;威布尔dbcp_Java_Mysql_Javafx_Connection Pooling - Fatal编程技术网

无法在Java+;中创建连接池;MySQL+;威布尔dbcp

无法在Java+;中创建连接池;MySQL+;威布尔dbcp,java,mysql,javafx,connection-pooling,Java,Mysql,Javafx,Connection Pooling,我正试图用vibur dbcp为JavaFX中的桌面应用程序创建一个连接池,我在AWS中获得了一个MySQL数据库,当我从Workbench连接时效果很好。但是当我从应用程序连接时,响应时间增加,我检查代码,原因是应用程序创建了很多连接,造成了很大的过热(首先,应用程序有一个嵌入式SQLite数据库,连接没有问题)我重新构建了我的代码结构,但我仍然需要做很多连接 寻找一个解决方案我发现连接池是一种方式,我找到了大量的解决方案Apache commons、C3P0、HikariCP和Vibur D

我正试图用vibur dbcp为JavaFX中的桌面应用程序创建一个连接池,我在AWS中获得了一个MySQL数据库,当我从Workbench连接时效果很好。但是当我从应用程序连接时,响应时间增加,我检查代码,原因是应用程序创建了很多连接,造成了很大的过热(首先,应用程序有一个嵌入式SQLite数据库,连接没有问题)我重新构建了我的代码结构,但我仍然需要做很多连接

寻找一个解决方案我发现连接池是一种方式,我找到了大量的解决方案Apache commons、C3P0、HikariCP和Vibur DBCP我尝试使用所有的解决方案,但目前我无法使用,我寻找一个教程,但我只能找到旧的实现(Java 6或更早)对于servlets,只有片段和所有对我来说都是非常混乱的(我是DB中的乞丐),我最喜欢的选择是HikariCP,但我可以让池工作,我的下一个选择是Vibur,现在我有了这个连接代码

private Connection connection;

//creates the pool
public DataSource createDataSourceWithStatementsCache() {
 ViburDBCPDataSource ds = new ViburDBCPDataSource();

 ds.setJdbcUrl("dbURL");
 ds.setUsername("dbUser");
 ds.setPassword("dbPass");

 ds.setPoolInitialSize(10);
 ds.setPoolMaxSize(100);

 ds.setConnectionIdleLimitInSeconds(30);
 ds.setTestConnectionQuery("isValid");

 ds.setLogQueryExecutionLongerThanMs(500);
 ds.setLogStackTraceForLongQueryExecution(true);

 ds.setStatementCacheMaxSize(200);

 ds.start();
 return ds;
}

//Getts the conection
public Connection conectarBD(){
    try {
        connection = createDataSourceWithStatementsCache().getConnection();
    } catch (SQLException ex) {
        Logger.getLogger(coneccionBD.class.getName()).log(Level.SEVERE, null, ex);
    }
   return connection;
}


public void desconectarBD(){
    try {
        connection.close();
    } catch (SQLException ex) {
        Logger.getLogger(coneccionBD.class.getName()).log(Level.SEVERE, null, ex);
    }
}
我得到这个错误

Exception in thread "JavaFX Application Thread" java.lang.NoClassDefFoundError: org/vibur/objectpool/listener/Listener
    at HE.MVC.Modelo.Laboratoriales.Conexion.createDataSourceWithStatementsCache(Conexion.java:36)
    at HE.MVC.Modelo.Laboratoriales.Conexion.conectarBD(Conexion.java:63)
    at HE.MVC.Modelo.MedicamentosAbituales.cargaTabla(MedicamentosAbituales.java:186)
    at HE.MVC.Vistas.Paciente.NuevopacienteController.iniciaTablas(NuevopacienteController.java:351)
    at HE.MVC.Vistas.Paciente.NuevopacienteController.initialize(NuevopacienteController.java:1156)
    at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2548)
    at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2441)
    at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2409)
    at HE.HEstadistica.LanzaNuevoPaciente(HEstadistica.java:304)
    at HE.MVC.Vistas.Paciente.EscenaPacientesController$7$1.run(EscenaPacientesController.java:347)
    at com.sun.javafx.application.PlatformImpl.lambda$null$173(PlatformImpl.java:295)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.sun.javafx.application.PlatformImpl.lambda$runLater$174(PlatformImpl.java:294)
    at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
    at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
    at com.sun.glass.ui.win.WinApplication.lambda$null$148(WinApplication.java:191)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.ClassNotFoundException: org.vibur.objectpool.listener.Listener
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 17 more
我问的是两件事

1.-我在这个代码中犯了什么错


2.-是否有一本书、手册、第o页视频用于学习会话池(HikariCP对乞丐的解释会很好)我可以在哪里学习如何实现这一点?

@CorrOrtiz,关于你的第一个问题,@hotzst在他下面的评论中建议你的问题是正确的。因为你需要两个jar文件作为你的应用程序的依赖项:vibur-dbcp-9.0.jar和vibur-object-pool-9.0.jar。你得到的例外意味着你的我很想念第二个依赖项,尽管如果您通过Maven添加了vibur dbcp依赖项,那么您也应该可以通过传递方式获得第二个依赖项。
org.vibur.objectpool.listener.listener的
ClassNotFoundException
表明在类路径上找不到它。我猜它是从
ViburDBCPDataSource
。请查看ZeroTurnound。