web-dev-qa-db-ja.com

SQLiteをJavaに接続する方法は?

Java applicationからSQLiteデータベースにアクセスするために1つの簡単なコードを使用しています。

 import Java.sql.Connection;  
 import Java.sql.DriverManager;  
 import Java.sql.ResultSet;  
 import Java.sql.Statement;  
 public class ConnectSQLite 
 {  
  public static void main(String[] args) 
  {  
     Connection connection = null;  
     ResultSet resultSet = null;  
     Statement statement = null;  

     try 
     {  
         Class.forName("org.sqlite.JDBC");  
         connection = DriverManager.getConnection("jdbc:sqlite:D:\\testdb.db");  
         statement = connection.createStatement();  
         resultSet = statement  
                 .executeQuery("SELECT EMPNAME FROM EMPLOYEEDETAILS");  
         while (resultSet.next()) 
         {  
             System.out.println("EMPLOYEE NAME:"  
                     + resultSet.getString("EMPNAME"));  
         }  
     } 
     catch (Exception e) 
     {  
         e.printStackTrace();  
     }
     finally 
     {  
         try 
         {  
             resultSet.close();  
             statement.close();  
             connection.close();  
         } 
         catch (Exception e) 
         {  
             e.printStackTrace();  
         }  
     }  
 }  
}  

しかし、このコードは次のような例外を1つ与えます。

Java.lang.ClassNotFoundException: org.sqlite.JDBC

これをどうすれば助けてくれますか。

47
Rajapandian

クラスパスにSQLite JDBCドライバーが必要です。

Taro L. Saito(xerial)はZentusプロジェクトを分岐し、現在は sqlite-jdbc という名前で保守しています。主要プラットフォーム用のネイティブドライバーがバンドルされているため、それらを個別に構成する必要はありません。

58
Reverend Gonzo

Netbeansを使用している場合は、 sqlitejdbc driver をダウンロードします。プロジェクトウィンドウでライブラリフォルダーを右クリックし、ライブラリの追加を選択し、作成ボタンをクリックしてライブラリー名(SQLite)を入力し、OKを押します

クラスパスにsqlitejdbcドライバーを追加し、Add Jar/Folder ..ボタンをクリックして、以前にダウンロードしたsqlitejdbcファイルを選択する必要があります。OKを押すと準備完了です。

9
lesce

Netbeansを使用している場合、Mavenを使用してライブラリを追加する方が簡単です。上記のソリューションを使用しようとしましたが、うまくいきませんでした。

<dependencies>
    <dependency>
      <groupId>org.xerial</groupId>
      <artifactId>sqlite-jdbc</artifactId>
      <version>3.7.2</version>
    </dependency>
</dependencies>

Maven依存関係とJava.lang.ClassNotFoundException: org.sqlite.JDBCエラーがなくなりました。

8
Olcay Ertaş

Eclipseを使用していますが、コードをコピーして同じエラーが発生しました。次に、プロジェクトのプロパティ-> Javaビルドパス->ライブラリ->外部JARの追加...を開きました。c:\ jrun4\lib\sqlitejdbc-v056.jarチャームのように機能しました。 .jarファイルをコピーしたばかりの場合は、Webサーバーの再起動が必要になる場合があります。

5
MeanderingCoder
    import Java.sql.ResultSet;
    import Java.sql.SQLException;
    import javax.swing.JOptionPane;
    import org.sqlite.SQLiteDataSource;
    import org.sqlite.SQLiteJDBCLoader;

    public class Test {

        public static final boolean Connected() {
            boolean initialize = SQLiteJDBCLoader.initialize();

            SQLiteDataSource dataSource = new SQLiteDataSource();
            dataSource.setUrl("jdbc:sqlite:/home/users.sqlite");
            int i=0;
            try {
                ResultSet executeQuery = dataSource.getConnection()
                        .createStatement().executeQuery("select * from \"Table\"");
                while (executeQuery.next()) {
i++;
                    System.out.println("out: "+executeQuery.getMetaData().getColumnLabel(i));

                }



            } catch (SQLException ex) {
                JOptionPane.showMessageDialog(null, ex);
            }

            return initialize;

        }
3
user2402433

SQLite JDBCドライバーをダウンロードして、クラスパスに追加する必要があります。
こちらからダウンロードできます https://bitbucket.org/xerial/sqlite-jdbc/downloads

Gradleを使用する場合は、SQLite依存関係を追加するだけで済みます。

dependencies {
    compile 'org.xerial:sqlite-jdbc:3.8.11.2'
} 

次にする必要があるのは、ドライバーを初期化することです。

try {
    Class.forName("org.sqlite.JDBC");
} catch (ClassNotFoundException eString) {
    System.err.println("Could not init JDBC driver - driver not found");
}
3
Thev
connection = DriverManager.getConnection("jdbc:sqlite:D:\\testdb.db");

この代わりに

connection = DriverManager.getConnection("jdbc:sqlite:D:\\testdb");
1
Vasanth Kumar

ちょっと私はこれについてのビデオチュートリアルをYouTubeに投稿しました、あなたはそれをチェックすることができます、そしてあなたはここでサンプルコードを見つけることができます:

http://myfundatimemachine.blogspot.in/2012/06/database-connection-to-Java-application.html

1
fiddle
import Java.sql.Connection;
import Java.sql.DriverManager;
import Java.sql.SQLException;
import javax.swing.JOptionPane;   


public class Connectdatabase {

        Connection con = null;

        public static Connection ConnecrDb(){

            try{
                //String dir = System.getProperty("user.dir");
                Class.forName("org.sqlite.JDBC");
                Connection con = DriverManager.getConnection("jdbc:sqlite:D:\\testdb.db");
                return con;
            }
            catch(ClassNotFoundException | SQLException e){
                JOptionPane.showMessageDialog(null,"Problem with connection of database");
                return null;
            }
        }

    }
0