0

SQLite データベースに接続するこの例を見つけました。

 try{

         Class.forName("org.sqlite.JDBC");
         connection = DriverManager.getConnection("jdbc:sqlite:C:\\pruebaSQLite\\dbTest.sqlite");
         System.out.println("Conectado a la base de datos SQLite "); 
      }catch(Exception e){
         System.out.println(e);
      }

正常に動作していますが、次のように使用してJAVAアプリケーションを接続しようとしています:

try {

                        Class.forName("org.sqlite.JDBC");
                        Connection con = DriverManager.getConnection("jdbc:sqlite:C:\\LoginJava2\\myDB.sqlite");
                        PreparedStatement pstm = con.prepareStatement("insert into hell(username,pssword) " +
                                "values ('"+tfUname.getText()+"','"+tfUpass.getText()+"')");
                        pstm.close();
                        con.close();
                        JOptionPane.showMessageDialog(null,"Congrats, you have been registered succesfully");
                        RegisterWindow rw = new RegisterWindow();
                        rw.setVisible(false);
                        pack();
                        dispose();
                    } catch(SQLException ex) {
                        setTitle(ex.toString());
                    }

行: " Class.forName("org.sqlite.JDBC");" 次のエラーを教えてください:

Unhandled exception type ClassNotFoundException

その行を削除すると、プログラムは正常に実行されますが、アクションを実行すると、次の例外が発生します。

java.sql.SQLException: No suitable driver found for jdbc:sqlite:C:\\LoginJava2\\myDB.sqlite

両方の例で同じ jar を使用しているため、これは奇妙です。

次の jar ファイルを使用しています: " sqlitejdbc-v056"

誰かが「Class.forName("org.sqlite.JDBC");」のエラーを修正する方法を手伝ってくれたら または、URL接続で何か間違っている場合...私は感謝します!!

私の英語に感謝し、申し訳ありません!!

4

2 に答える 2

0

問題を解決するために、次のコードを追加しました。

試す {

                    Class.forName("org.sqlite.JDBC");
                    Connection con = DriverManager.getConnection("jdbc:sqlite:C:\\LoginJava2\\myDB.sqlite");
                    Statement com = con.createStatement();
                    com.executeUpdate("insert into hell(username,pssword) " +
                            "values ('"+tfUname.getText()+"','"+tfUpass.getText()+"')");
                    con.close();
                    JOptionPane.showMessageDialog(null,"Congrats, you have been registered succesfully");
                    RegisterWindow rw = new RegisterWindow();
                    rw.setVisible(false);
                    pack();
                    dispose();
                } catch(SQLException ex) {
                    setTitle(ex.toString());
                } 

catch(ClassNotFoundException e) { // 例外を処理するためにこの catch を追加しました

                    setTitle(e.toString());
                }
于 2013-05-28T15:10:01.913 に答える
0

「行 Class.forName("org.sqlite.JDBC");」のエラーを修正する方法を教えてください。または、URL接続で何か間違っている場合...私は感謝します!!

エラー メッセージは、何を修正する必要があるかを正確に示しています。つまり、言及されている例外である ClassNotFoundException を処理する必要があります。

注目すべき主な点は、2 つのコード例の catch ブロックが異なっており、一方は機能し、他方は機能しないということです。すべての例外をキャッチすることは通常は良い考えではなく、より高いレベルに浸透する必要がある例外がそうするのを防ぐため、例外をキャッチする最初の catch ブロックを使用することはお勧めしません。代わりに、キャッチする必要がある明示的な例外 (ここでは SQLException と ClassNotFoundException) をキャッチする必要があります。

例外チュートリアルは、コード例を使用してこれをより完全に説明するのに役立ちます。これをどのように捉えるかは、Java 1.7 またはそれ以前のバージョンで作業しているかどうかによっても異なります。

于 2013-05-22T21:15:58.067 に答える