JDBC訪問及操作SQLite資料庫

來源:互聯網
上載者:User

標籤:

  SQLite 是一個開源的嵌入式關聯式資料庫,其特點是高度便攜、使用方便、結構緊湊、高效、可靠。 與其他資料庫管理系統不同,SQLite 的安裝和運行非常簡單,在大多數情況下,只要確保SQLite的二進位檔案存在即可開始建立、串連和使用資料庫。

   SQLite的下載頁面:http://www.sqlite.org/download.html

  window作業系統下載:sqlite-dll-win32-x86-3081002.zip及sqlite-shell-win32-x86-3081002.zip。解壓2個壓縮包,並將解壓後的路徑添加到系統變數的path中。

 

  在命令列中操作SQLite資料庫的做基本的命令如下。

  建立資料庫:sqlite3 test.db

  建立表:sqlite> create table mytable(id integer primary key, value text);

  插入資料:sqlite> insert into mytable(id, value) values(1, ‘Micheal‘);

  查詢資料:sqlite> select * from mytable;

 

  JDBC connector for SQLite的地址為:https://bitbucket.org/xerial/sqlite-jdbc/downloads

  下載串連驅動,如sqlite-jdbc-3.8.7.jar,並將jar包加入到Java工程的引用中。

  使用下面的類測試是否能夠正常的訪問及操作SQLite資料庫。

package test;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.Statement;public class Test {    public static void main(String[] args) throws Exception {        Connection conn = null;        ResultSet rs = null;        PreparedStatement prep = null;        try {            Class.forName("org.sqlite.JDBC");            conn = DriverManager.getConnection("jdbc:sqlite:test.db");            Statement stat = conn.createStatement();            stat.executeUpdate("drop table if exists people;");            stat.executeUpdate("create table people (name, occupation);");            prep = conn.prepareStatement("insert into people values (?, ?);");            prep.setString(1, "Gandhi");            prep.setString(2, "politics");            prep.addBatch();            prep.setString(1, "Turing");            prep.setString(2, "computers");            prep.addBatch();            prep.setString(1, "Wittgenstein");            prep.setString(2, "smartypants");            prep.addBatch();            conn.setAutoCommit(false);            prep.executeBatch();            conn.setAutoCommit(true);            rs = stat.executeQuery("select * from people;");            while (rs.next()) {                System.out.println("name = " + rs.getString("name"));                System.out.println("job = " + rs.getString("occupation"));            }            //分頁時,可以使用ResultSet來完成分頁rs.absolute(100),也可以sql語句中完成分頁select ... limit 100,10;            //下面是釋放資料庫連接的過程,使用資料庫連接池時不應該釋放串連,而是將串連重新放到串連池中。            //以代理的方式產生Connection的對象,調用Connection的close方法時將Connection加入到線程池中。線程池中加入的是Connection的代理對象即可。        } catch (Exception e) {            e.printStackTrace();        } finally {            if (rs != null) {                try {                    rs.close();                } finally {                    if (prep != null) {                        try {                            prep.close();                        } finally {                            if (conn != null) {                                conn.close();                            }                        }                    }                }            }        }    }}

 我們可以在工程的根目錄下發現一個名為test.db的檔案,這就是剛建立的資料庫檔案。我們也可以指定test.db為其他的路徑下的SQLite資料庫檔案。

 

  下面是一些SQLite的其他常用的命令:

  設定格式化查詢結果: sqlite> .mode column  

             sqlite> .header on 

  修改表結構,增加列:sqlite> alter table mytable add column email text not null ‘‘ collate nocase;

  建立視圖: sqlite> create view nameview as select * from mytable;

  建立索引:sqlite> create index test_idx on mytable(value);

  格式化輸出資料到 CSV 格式:sqlite >.output [filename.csv ]  

                sqlite >.separator ,  

                sqlite > select * from test;  

                sqlite >.output stdout

  從 CSV 檔案匯入資料到表中:sqlite >create table newtable ( id integer primary key, value text );  

                sqlite >.import [filename.csv ] newtable

 

 

 

  

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.