2015-05-02 75 views
2

java.sql.SQLException:找不到适合jdbc:h2:tcp:// localhost /〜/ ZadatakDB的驱动程序,当我尝试连接到h2数据库时使用java web应用程序。没有找到适用于jdbc的驱动程序:h2:tcp

我可以使用H2控制台没有任何问题,并且ping是成功的。

我还将h2-1.3.176 jar文件添加到库和WEB-INF/lib中。

这里是我的Java方法我使用的连接:

private static Connection connectToDatabase() throws SQLException, 
     IOException { 

    String url = "jdbc:h2:tcp://localhost/~/ZadatakDB"; 
    String username = "student"; 
    String pw = "student"; 
    Connection connection = DriverManager.getConnection(url, 
      username, pw); 
    return connection; 
} 

什么可能我会丢失?

我也将增加堆栈跟踪:

java.sql.SQLException: No suitable driver found for jdbc:h2:tcp://localhost/~/ZadatakDB 
at java.sql.DriverManager.getConnection(DriverManager.java:689) 
at java.sql.DriverManager.getConnection(DriverManager.java:247) 
at hr.web.aplikacija.DatabaseUtils.connectToDatabase(DatabaseUtils.java:20) 
at hr.web.aplikacija.DatabaseUtils.insertForm(DatabaseUtils.java:38) 
at hr.web.aplikacije.servlet.KorisnikServlet.doPost(KorisnikServlet.java:68) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:648) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219) 
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106) 
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) 
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142) 
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) 
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610) 
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) 
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:518) 
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1091) 
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:668) 
at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:223) 
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1517) 
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1474) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 
at java.lang.Thread.run(Thread.java:745) 
+0

您在堆栈跟踪中有ClassNotFound异常吗? –

+0

我没有,我只有SQL异常 – Sarpy

+2

如果您使用:Class.forName(“org.h2.Driver”)。newInstance();在你的方法的第一行?它应该在DriverManager中注册所需的驱动程序。 –

回答

2

的JDBC驱动程序的数据库H2是不是在类路径,或者驱动程序被卸载。使用它来加载驱动程序类:

Class.forName("org.h2.Driver"); 
+1

我插入了该行,但是却得到了一个ClassNotFound执行选项。 – Guangliang

相关问题