第一步先把SQLite源代碼編譯成Lib靜態庫文件。具體的步驟可以直接應用下面參考鏈接中提供的MS VC6工作區文件,其中有一個編譯SQLite到靜態庫的設置。編譯成功后得到SQLite.lib文件。
第二步要建立一個新的VC DLL項目,然后和上面介紹的Berkeley DB在編譯Java本地化接口的設置一樣,在VC的Tools菜單Options選項中指定JNI.H等JNI編譯所要的頭文件位置。同時還要指定sqlite.h頭文件位置,這個文件是在生成SQLite靜態庫的時候自動生成的,可以在SQLite.lib文件所在的工作區目錄下面找到它,例如加入的路徑為C:\sqlite\msvc6。然后在Project菜單的setting選項設置Link到SQLite.lib庫文件,并再次在Tools菜單中Options指定SQLite.lib的查找路徑。注意有些情況下可能要設置予編譯選項HAVE_SQLITE_COMPILE以便使用SQLite中VM的一些功能。編譯成功后可得到Sqlite_jni.dll文件。
第三方接口庫中的Java代碼包含JNI接口和多個版本的JDBC接口程序,可根據你的JRE的版本選擇相應的JDBC程序。編譯這些Java代碼的過程這里就不做敘述了。
編譯后的Java類包加上前面得到的Sqlite_jni.dll文件,組成了SQLite的Java接口庫,在應用Java語言調用JDBC或JNI接口時,都是通過應用Java的本地化技術調用Sqlite_jni.dll文件,完成對SQLite數據庫的操作。
3. 應用JNI直接調用SQLite功能
下面這段代碼演示如何應用JNI接口操作SQLite?梢钥吹紻atabase類的exec()方法是執行SQL語句的關鍵:
Database db = new Database();
try {
//打開數據庫
db.open("c:\\temp\\mydata.slt", 0666);
db.interrupt();
db.busy_timeout(1000);
db.busy_handler(null);
db.exec("create table account (name varchar(10),gale boolean)"
,result);
db.exec("insert into account values('steve','m')", result);
db.exec("select * from account",result);
//關閉數據庫
db.close();
} catch (Exception e) {
e.printStackTrace();
}
4. 應用JDBC連接SQLite
用"SQLite.JDBCDriver"作為JDBC的驅動程序類名。連接JDBC的URL格式為jdbc:sqlite:/path。這里的path為指定到SQLite數據庫文件的路徑,例如:
jdbc:sqlite://dirA/dirB/dbfile
jdbc:sqlite://DRIVE:/dirA/dirB/dbfile
jdbc:sqlite://COMPUTERNAME/shareA/dirB/dbfile
文章來源于領測軟件測試網 http://www.kjueaiud.com/