標籤:lips ima 下載 round white app c++ nested follow
1、概述:本項目需要在多平台上(mips必須支援)操作嵌入式資料庫sqlite,而最新的sqlite-jdbc-3.15.1.jar的本地驅動只含有少量的平台,於是解決支援mips平台實在必行。方法有多,具體如下。
1.1 SQLite三種JDBC驅動的區別
摘自http://blog.sina.com.cn/s/blog_654337ca01016x4n.html
在DBeaver中看到SQLite有三種JDBC驅動,查了它們官方網站的相關解釋,發現它們還是挺不一樣的。 SQLite Wrapper by Christianhttp://www.ch-werner.de/javasqlite/這個驅動其實是在本地C/C++的SQLite上用JDBC實現進行了封裝。大小100+K。優點:體積小;速度快缺點:依賴本地SQLite驅動 SQLite Zentus Driverhttp://www.zentus.com/sqlitejdbc/這個驅動是SQLite資料庫的純Java實現,僅需要這個驅動就可以操作SQLite資料庫檔案。大小2.6M。優點:無其他依賴缺點:速度稍慢(純Java實現) SQLite Xerial Driverhttp://www.xerial.org/trac/Xerial/wiki/SQLiteJDBC這個驅動擴充了Zentus版本,並且在jar中加入了Windows、Linux、Mac OS X三種本地SQLite驅動庫,使四種驅動並存於jar包中。其目的在於在不同的作業系統中自動使用不同的本地驅動(在這三種以外的系統中則使用純Java實現的驅動),既保證無其他依賴,又保證速度最快。但是因為包含這麼多版本的驅動,所以就比較大,大小有3M。優點:速度快;無其他依賴缺點:體積大 最後忽然發現,Zentus驅動從2009年6月就沒有再更新了(最新版本基於SQLite3.6.14.2),Xerial驅動從2010年8月就沒有再更新……SQLite Wrapper貌似一直在更新,目前最新的版本是2012年2月的。1.2 SQLite Xerial Driver 驅動
- 方法1:mips上也使用本地庫,下載原始碼編譯即可。不過編譯很費勁,對於不可以連網的單位工作機,根本行不通。
原始碼
第一步:載入驅動(作用是把需要的驅動程式加入記憶體)
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver")
第二步:得到串連(指定串連到哪個資料來源),如果配置資料來源時選擇的是Windows NT驗證方式,則不需寫出使用者名稱和密碼
Connection ct=DriverManager.getConnection("jdbc:odbc:simpledb")如果有使用者名稱和密碼,則在資料來源之後寫出。
jdk從1.8開始,刪除了jdbc-odbc橋,所以odbc的驅動是用不了的,建議重新安裝jdk1.7或者更低的版本。此方案行得通,不過強烈要求jdk版本低於1.7或者更低版本,不利於jdk的升級。
摘自http://blog.csdn.net/u011502222/article/details/44234103 (文章標題為java.lang.ClassNotFoundException: sun.jdbc.odbc.JdbcOdbcDriver解決方案! )
JDK7 和 JDK8 貌似都不支援 JDBC-ODBC 橋連,所以最好下個版本 6
摘自 http://wenku.baidu.com/link?url=Tz8acJQlGCGQgejp7D4DJ0o_54AcohTmGm2c47Cy7X3y1nrLwyIap4pIuHnaVB_01WlFlTQ12NoHKidcwmNLYvKasEEhgqgI-WjVOg1C0xK (文章標題為JDBC-ODBC橋連access教程)
- 方法3: 使用純java的SQLite(Applies to versions before 3.7.15)不包含3.7.15
sqlite-jdbc-3.7.2.jar的
http://www.java2s.com/Code/Jar/s/Downloadsqlitejdbc372jar.htm本項目的sqlite-jdbc-3.7.2.jar是從此連結下載的,因為下邊的連結資源不暢通。
https://bitbucket.org/xerial/sqlite-jdbc/downloads?tab=tags
2、sqlite-jdbc-3.15.1.jar Supported Operating Systems
摘自https://bitbucket.org/xerial/sqlite-jdbc
Since sqlite-jdbc-3.6.19, the natively compiled SQLite engines will be used for the following operating systems:
- Windows XP, Vista (Windows, x86 architecture, x86_64)
- Mac OS X 10.4 (Tiger), 10.5(Leopard), 10.6 SnowLeopard (for i386, x86_64, Intel CPU machines)
- Linux i386 (Intel), amd64 (64-bit X86 Intel processor)
In the other OSs not listed above, the pure-java SQLite is used. (Applies to versions before 3.7.15)
If you want to use the native library for your OS, [build the source from scratch.編譯很麻煩,且跨平台性不好,到另一平台需要繼續重新編譯
3、JDBC 串連 使用sqlite-jdbc-3.7.2.jar操作資料庫報錯:java.sql.SQLException: out of memory,解決方案參考接下來的詳細描述。java sqlite out of memory異常
摘自http://www.cnblogs.com/cnryb/archive/2012/06/13/2548445.html
今天用sqlite寫點東西eclips給我了這個東西
out of memory
java.sql.SQLException: out of memory
at 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 com.loveoop.sqlite.Test.main(Test.java:19)
原因:目錄結構中存在中文,
解決方案:把中文修改為英文~~~~。
Good luck!!
mips平台使用jdbc操作sqlite的最終解決方案