Sqlite--Javaはjdbcを使用してSqliteデータベースに接続し、さまざまなデータ操作の詳細なプロセスを実行します

リード:

    1、  Windows、Linux、MacOSXでのSqliteのインストールプロセス

    2.組み込みデータベースのインストール、データベースの構築、テーブルの構築、テーブル構造の更新、データのインポートとエクスポートなどの詳細なプロセスレコード。

    3.組み込みデータベースのトランザクション理解とインスタンス操作

    4.データ移行のバックアップ-低バージョン3.6.2から高バージョン3.8.6へ

 

前文:

      SQLiteは、比較的小さなCライブラリに含まれるACID準拠のリレーショナルデータベース管理システムです。これは、D。リチャードヒップによって設立されたパブリックドメインプロジェクトです。
       一般的なクライアントサーバーパラダイムとは異なり、SQLiteエンジンは、プログラムが通信する別個のプロセスではなく、プログラムへの接続がその不可欠な部分になります。したがって、主要な通信プロトコルは、プログラミング言語内の直接API呼び出しです。これは、総消費量、遅延、および全体的な単純さにプラスの効果をもたらします。データベース全体(定義、テーブル、インデックス、およびデータ自体)は、ホストホスト上の単一のファイルに保存されます。そのシンプルな設計は、トランザクションの開始時にデータファイル全体をロックすることによって実現されます。


まず、sqliteデータソースを準備します
sqliteはメモリ内データベースであるため、基本的にファイルにアクセスするためのデータファイルもあります。Linuxでsqliteライブラリファイルを自分のノートブックにコピーしてから、それにアクセスするためのjavaプログラムsqliteライブラリを操作します。

(1)、sqlite
ダウンロードアドレスをインストールします:Wget http://www.sqlite.org/2014/sqlite-autoconf-3080403.tar.gz
インストールを開始します:
tar xvfz sqlite-autoconf-3080403.tar.gz
cd sqlite-autoconf -3080403
./configure --prefix = / usr / local
make
make install

(2)、データソースの準備
[root @ localhost sqlite-autoconf-3080403]#sqlite3 tim.db
SQLiteバージョン3.8.4.32014-04-0316:53:12
使用上のヒントとして「.help」と入力します
。sqlite>.tablesqlite
> create table t1(id int);
sqlite> insert into t1 select 1;
sqlite> .exit
[root @ localhost sqlite-autoconf-3080403]#ll tim.db
-rw-r--r-- 1 root root 2048 Aug 29 09:34 tim.db
[root @ localhost sqlite-autoconf-3080403]# 

(3)次の図に示すように、SecureFXツールを使用してtim.dbデータファイルをローカルディスクEドライブのルートディレクトリにコピーします。




次に、Eclipse環境の準備を開始して
jdbc jarパッケージ、jdbcjarパッケージsqlitejdbc-をロードします。 v033-nested.jar、ダウンロードアドレスは次のとおりです:http://pan.baidu.com/s/1hqj7tT6

そしてそれをクラスパスシステム環境変数に追加します:javaプロジェクトを右クリックし、最後のオプションのプロパティを選択し、次にJavaを選択します[ビルドパス]、[ライブラリ]、[外部JARの追加...]の順に選択し、ローカルのsqlitejdbc-v033-nested.jarパッケージをロードします。ロードパスのプロセスを次の図に示します。3。



に接続するjavaコードを記述します。 sqliteデータベース操作
(1)、javaコードテストクラスを作成します

 

パッケージfoo;

import java.sql.Connection;

インポートjava.sql.DriverManager;

import java.sql.ResultSet;

インポートjava.sql.Statement;

 

/ **

 * @author Tim

 * /

パブリッククラスJavaSqlite{

 

    public static void main(String [] args){

        //TODO自動生成されたメソッドスタブ

        試す {

            //0はSQLiteのJDBCに接続します

            文字列sql=\ "jdbc:sqlite:// e:/tim.db \";

            Class.forName(\ "org.sqlite.JDBC \");

 

            // 1データベース名zieckey.dbで接続を確立します。存在しない場合は、現在のディレクトリに作成します

            接続conn=DriverManager.getConnection(sql);

            ステートメントstat=conn.createStatement();

            

            // 2テーブルtbl1を作成し、データを入力します

            stat.executeUpdate(\ "tbl1が存在する場合はテーブルを削除します;\");

            stat.executeUpdate(\ "存在しない場合はテーブルを作成しますtbl1(name varchar(20)、salary int); \");//2列のテーブルを作成します

            stat.executeUpdate(\ "insert into tbl1 values(\'ZhangSan \'、8000); \");//データを挿入

            stat.executeUpdate(\ "tbl1値に挿入(\'LiSi \'、7800); \");

            stat.executeUpdate(\ "tbl1値に挿入(\'WangWu \'、5800); \");

            stat.executeUpdate(\ "tbl1値に挿入(\'ZhaoLiu \'、9100); \");

            ResultSet rs = stat.executeQuery(\ "select * from tbl1; \");//データをクエリ

            System.out.println(\ "テーブル構造を作成し、データ操作のデモンストレーションを入力してください:\");

            while(rs.next()){//クエリされたデータを出力します

                System.out.print(\ "name = \" + rs.getString(\ "name \")+ \ "、\");//列属性1

                System.out.println(\ "salary = \" + rs.getString(\ "salary \"));//列属性2

            }

            rs.close();

            

            

            // 3テーブル構造を変更し、フィールドアドレスを追加しますvarchar(20)default \'changsha \';

            stat.executeUpdate(\ "alter table tbl1 add column address varchar(20)not null default \'changsha \'; \");//2列のテーブルを作成します

            stat.executeUpdate(\ "insert into tbl1 values(\'HongQi \'、9000、\'tianjing \'); \");//データを挿入

            stat.executeUpdate(\ "insert into tbl1(name、salary)values(\'HongQi \'、9000); \");//データを挿入

            rs = stat.executeQuery(\ "select * from tbl1; \");//データをクエリ

            System.out.println(\ "テーブル構造変更操作のデモンストレーション:\");

            while(rs.next()){//クエリされたデータを出力します

                System.out.print(\ "name = \" + rs.getString(\ "name \")+ \ "、\");//列属性1

                System.out.print(\ "name = \" + rs.getString(\ "name \")+ \ "、\"); //列列二

                System.out.println(\ "address = \" + rs.getString(\ "address \"));//列属性3

            }

            rs.close();

            

            conn.close();//データベース接続を閉じます

            

        } catch(例外e){

            e.printStackTrace();

        }

 

    }

 

}


第4に、デバッグと実行:
(1)、最初のデバッグエラーは次のとおりです。
スレッド「メイン」の例外java.lang.ClassNotFoundException:org.sqlite.JDBC
at java.net.URLClassLoader $ 1.run(URLClassLoader.java:200 )
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher $ AppClassLoader。loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
at java.lang.Class.forName0(Nativeメソッド)
at java.lang.Class.forName(Class.java:169)

解決策:最初に、sqlitejdbc-v056.jarパッケージをプロジェクトに追加する必要があります。
プロジェクトを右クリック->ビルドパス->ビルドパスの構成->ライブラリ->外部JARの追加->
sqlitejdbc-v033-nested.jarパッケージを検索します。

(2)次に、次のようにエラーを実行します
。jdbc:sqlite:// E:/ u / sqllite / db / powerlong_208.db
java.sql.SQLException:
org.sqlite.DB.throwex(DB。 java:252)
at org.sqlite.NestedDB.open(NestedDB.java:47)
at org.sqlite.Conn。<init>(Conn.java:36)
at org.sqlite.JDBC.connect(JDBC.java:38 )
at java .sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at foo.Main.main(Main.java:41)

問題解決:パスに問題があります。データソースであり、javaは大文字のE:diskを認識しません。Stringsql= "jdbc:sqlite:// E:/tim.db"; E:をe:に置き換えます。デバッグできます。


5番目に、結果を実行し、コードクラスを右クリックして[実行]を選択し、[Javaアプリケーション]を選択すると、実行結果は次
のようになります。テーブル構造を作成し、データ操作のデモンストレーションを入力します。
name = ZhangSan、salary = 8000
name = LiSi、salary = 7800
name = WangWu、salary = 5800
name = ZhaoLiu、salary = 9100
テーブル構造変更操作のデモ:
name = ZhangSan、name = ZhangSan、address = changsha
name = LiSi、名前=LiSi、アドレス= changsha
name = WangWu、name = WangWu、address = changsha
name = ZhaoLiu、name = ZhaoLiu、address = changsha
name = HongQi、name = HongQi、address = tianjing
name = HongQi、name = HongQi、address = changsha

操作インターフェースは次のとおりです。6



。追跡調査:
(1)Windowsでのsqliteのインストールと使用に関する調査
(2)Linux上のsqliteライブラリをjavaコードで直接リモート接続する方法


 

おすすめ

転載: blog.csdn.net/csdnhsh/article/details/93376733