mips平台使用jdbc操作sqlite的最終解決方案

來源:互聯網
上載者:User

標籤: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上也使用本地庫,下載原始碼編譯即可。不過編譯很費勁,對於不可以連網的單位工作機,根本行不通。

原始碼

  • 方法2:使用jdbc的jdbc-odbc橋方式。

第一步:載入驅動(作用是把需要的驅動程式加入記憶體)

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的最終解決方案

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.