2016-09-26 403 views
2

我正在關注this tutorial,只是我改變了連接到UCanAccess。「invalid page number 1」錯誤連接數據庫與UCanAccess

我進口的所有罐子,但我仍然得到一個錯誤,我不知道是什麼問題

的錯誤

net.ucanaccess.jdbc.UcanaccessSQLException: UCAExc:::3.0.6 invalid page number 1 
at net.ucanaccess.jdbc.UcanaccessDriver.connect(UcanaccessDriver.java:264) 
at java.sql.DriverManager.getConnection(Unknown Source) 
at java.sql.DriverManager.getConnection(Unknown Source) 
at servlets.ConnectionManager.getConnection(ConnectionManager.java:22) 
at servlets.UserDAO.login(UserDAO.java:35) 
at servlets.LoginServlet.doGet(LoginServlet.java:39) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:622) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) 
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) 
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198) 
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:108) 
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) 
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) 
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) 
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:620) 
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) 
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:349) 
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:784) 
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) 
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:802) 
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1410) 
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 
at java.lang.Thread.run(Unknown Source) 

和代碼

package servlets; 


import java.sql.*; 


public class ConnectionManager { 

    static Connection conn; 
    static String url; 


    public static Connection getConnection() 
    { 
    try 
    {   

     Class.forName("net.ucanaccess.jdbc.UcanaccessDriver"); 
      String url="jdbc:ucanaccess://C:/workspaceWeb/LoginExample/src/servlets/usersetup.db"; 

     System.out.println("blabla"); 
     conn = DriverManager.getConnection(url,"UserName", "PassWord"); 
     System.out.println("commecla"); 

    } 

    catch (SQLException | ClassNotFoundException ex) 
    { 
     ex.printStackTrace(); 
    } 
return conn; 

} 
} 
+0

嗯,「usersetup.db」不會碰巧是SQLite數據庫嗎?如果是這樣,那麼UCanAccess無法打開它。 UCanAccess只能打開Access數據庫(.accdb,.mdb或相關)。 –

+0

如何打開sqlite數據庫? –

+0

nvm在https://www.tutorialspoint.com/sqlite/sqlite_java.htm找到,不知道不同的數據庫有不同的連接方法 –

回答

1

你是試圖用UCanAccess打開一個SQLite數據庫,這是行不通的。 UCanAccess只能打開Access數據庫(.accdb,.mdb或相關)。要使用SQLite數據庫,您需要使用像Xerial的SQLite JDBC Driver