2013-01-20 64 views
1

我正在創建註冊表單,但在插入數據庫時​​出現錯誤。我創建了以下代碼:SQLexception註冊表單servlets

 try { 
       Class.forName("org.sqlite.JDBC"); 
       connection = DriverManager.getConnection("jdbc:sqlite:C:/apache-tomcat-7.0.33/bin/dbit.db"); 
       insertDB = "INSERT INTO users VALUES('" + username + "', '" + password + "');"; 

       Statement st = connection.createStatement(); 
       st.executeUpdate(insertDB);    
      } catch(ClassNotFoundException e){ 
       System.out.println("ClassNotFoundException"); 

      } catch (SQLException e){ 
       System.out.println("SQLException"); 
       e.printStackTrace(); 
      } 

我在Apache文件夾的bin文件夾中有一個名稱爲dbit的數據庫文件。這個數據庫文件是用Sqliteman-1.2.2創建的,我有兩個文件(dbit文件3kb和dbit.db 0kb)。

我想在數據庫中插入用戶名和密碼,但我得到一個SQLException。在堆棧跟蹤中:SQLExcepton:no such table:users。但是該表存在於數據庫中。

+0

你如何確定用戶表存在? – JamesB

+0

如果我再次在SQLiteman下打開SQLite數據庫中的數據庫,我會看到用戶表和列等。 – ronaldm

+0

您使用SQLiteman連接的用戶是什麼?它與應用程序使用的不同嗎? – JamesB

回答

1

我找到了解決辦法..

SQLiteman-1.2.2創建兩個數據庫文件,一個database.db和數據庫(不包括擴展名)。我用的是.db文件,但沒有奏效,那麼改變行:

connection = DriverManager.getConnection("jdbc:sqlite:C:/apache-tomcat-7.0.33/bin/dbit.db"); 

到:

connection = DriverManager.getConnection("jdbc:sqlite:C:/apache-tomcat-7.0.33/bin/dbit"); 

解決我的問題。

+1

btw不要忘記關閉'finally'塊中的資源。看到這裏的例子:http://stackoverflow.com/a/13809186/814702 – informatik01