亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

C#/Java連接sqlite與使用技巧

2020-01-24 03:30:04
字體:
來源:轉載
供稿:網友

1)下載sqlite jdbc驅動http://www.xerial.org/maven/repository/artifact/org/xerial/sqlite-jdbc/

2)將下載的驅動加入eclipse項目的built path中

3)示例代碼:

復制代碼 代碼如下:

package com.hedalixin;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;

public class test {

    /**
     * @param args
     */
    public static void main(String[] args) throws Exception {
        // TODO Auto-generated method stub
        Class.forName("org.sqlite.JDBC");
        Connection 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);");
        PreparedStatement 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);
        ResultSet rs = stat.executeQuery("select * from people;");
        while (rs.next()) {
            System.out.println("name = " + rs.getString("name"));
            System.out.println("job = " + rs.getString("occupation"));
        }
        rs.close();
        conn.close();

    }
}

2.  C#連接sqlite
2.1 使用SQLITE.NET
SQLite.NET也是一個數據訪問組件,其中的System.Data.SQLite 就好像是.NET自帶的System.Data.SqlClient一樣。里面包含了connection、command等數據訪問的常用對象,只是他們前面都有一個前綴sqlite。
1)下載System.Data.SQLite,下載地址http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki

2)  通過Add References引用SQLite ADO .NET安裝目錄的bin目錄下的System.Data.SQLite.DLL。

3)創建表、讀取數據等和Access或MS SQL沒多大區別

復制代碼 代碼如下:

//創建一個數據庫文件
string datasource="h:/test.db";
System.Data.SQLite.SQLiteConnection.CreateFile(datasource);
//連接數據庫
System.Data.SQLite.SQLiteConnection conn = new System.Data.SQLite.SQLiteConnection();
System.Data.SQLite.SQLiteConnectionStringBuilder connstr = new System.Data.SQLite.SQLiteConnectionStringBuilder();
connstr.DataSource = datasource;
connstr.Password = "admin";//設置密碼,SQLite ADO.NET實現了數據庫密碼保護
conn.ConnectionString = connstr.ToString();            
conn.Open();
//創建表
System.Data.SQLite.SQLiteCommand cmd = new System.Data.SQLite.SQLiteCommand();
string sql = "CREATE TABLE test(username varchar(20),password varchar(20))";
cmd.CommandText=sql;
cmd.Connection=conn;
cmd.ExecuteNonQuery();
//插入數據
sql = "INSERT INTO test VALUES('ekinglong','mypassword')";
cmd.CommandText = sql;
cmd.ExecuteNonQuery();
//取出數據
sql = "SELECT * FROM test";
cmd.CommandText = sql;
System.Data.SQLite.SQLiteDataReader reader = cmd.ExecuteReader();
StringBuilder sb = new StringBuilder();
while (reader.Read())
{
     sb.Append("username:").Append(reader.GetString(0)).Append("/n")
     .Append("password:").Append(reader.GetString(1));

 }
 MessageBox.Show(sb.ToString());

2.2使用原生態的ADO.NET訪問SQLite

復制代碼 代碼如下:

using (DbConnection conn = new SQLiteConnection( System.Configuration.ConfigurationManager.ConnectionStrings["sqlite"].ConnectionString))
{
    conn.Open();
    DbCommand comm = conn.CreateCommand();
    comm.CommandText = "select * from customer";
    comm.CommandType = CommandType.Text;
    using (IDataReader reader = comm.ExecuteReader())
    {
        while (reader.Read())
        {
            Response.Write(reader[0]);
        }
    }
}

SQLite.NET數據庫連接字符串ConnectionString格式:
Basic(基本的)
      Data Source=filename;Version=3;
Using UTF16(使用UTF16編碼)
      Data Source=filename;Version=3;UseUTF16Encoding=True;
With password(帶密碼的)
      Data Source=filename;Version=3;Password=myPassword;
Using the pre 3.3x database format(使用3.3x前數據庫格式)
      Data Source=filename;Version=3;Legacy Format=True;
Read only connection(只讀連接)
      Data Source=filename;Version=3;Read Only=True;
With connection pooling(設置連接池)
      Data Source=filename;Version=3;Pooling=False;Max Pool Size=100;
Using DateTime.Ticks as datetime format()
      Data Source=filename;Version=3;DateTimeFormat=Ticks;
      The default value is ISO8601 which activates the use of the ISO8601 datetime format
Store GUID as text(把Guid作為文本存儲,默認是Binary)
     Data Source=filename;Version=3;BinaryGUID=False;
      如果把Guid作為文本存儲需要更多的存儲空間
Specify cache size(指定Cache大小)
      Data Source=filename;Version=3;Cache Size=2000;
      Cache Size 單位是字節
Specify page size(指定頁大?。?BR>      Data Source=filename;Version=3;Page Size=1024;
      Page Size 單位是字節
Disable enlistment in distributed transactions
      Data Source=filename;Version=3;Enlist=N;
Disable create database behaviour(禁用創建數據庫行為)
      Data Source=filename;Version=3;FailIfMissing=True;
      默認情況下,如果數據庫文件不存在,會自動創建一個新的,使用這個參數,將不會創建,而是拋出異常信息
Limit the size of database(限制數據庫大?。?BR>      Data Source=filename;Version=3;Max Page Count=5000;
      The Max Page Count is measured in pages. This parameter limits the maximum number of pages of the database.
Disable the Journal File (禁用日志回滾)
      Data Source=filename;Version=3;Journal Mode=Off;
      This one disables the rollback journal entirely.
Persist the Journal File(持久)
      Data Source=filename;Version=3;Journal Mode=Persist;
      This one blanks and leaves the journal file on disk after a commit. Default behaviour is to delete the Journal File after each commit.
Controling file flushing
      Data Source=filename;Version=3;Synchronous=Full;
      Full specifies a full flush to take action after each write. Normal is the default value. Off means that the underlying OS flushes I/O's.

 

Sqlite使用技巧
1 .Sqlite判斷數據表是否存在
SELECT COUNT(*)  as CNT FROM sqlite_master where type='table' and name='DBInfo' //其中DBInfo為需要判斷的表名。注意大小寫敏感!


2. SQLite一條SQL語句插入多條記錄
INSERT INTO TABLE(col1, col2) SELECT val11, val12 UNION ALL SELECT val21, val22 ;
這樣的寫法是屬于復合SQL語句,表示先把兩個SELECT的結果集進行無刪減的聯合,再把聯合結果插入到TABLE中。

3. sqlite事務
是以文件的形式存在磁盤中,每次訪問時都要打開一次文件,如果對數據進行大量操作時,會很慢~
解決辦法是用事務的形式提交:因為我們開始事務后,進行大量操作的語句都保存在內存中,當提交時才全部寫入數據庫,此時,數據庫文件也就只用打開一次。
sql語句:
begin;  
INSERT INTO "table" VALUES ('a', 'b', 'c');  
INSERT INTO "table" VALUES ('a', 'b', 'c');  
INSERT INTO "table" VALUES ('a', 'b', 'c');  
commit;
4. SQLite自增ID字段使用方法為      INTEGER PRIMARY KEY AUTOINCREMENT
5. 分頁查詢顯示
類似MySQL數據庫 ,是利用mySQL的LIMIT函數,LIMIT [offset,] rows從數據庫表中M條記錄開始檢索N條記錄的語句為:
SELECT * FROM 表名稱 LIMIT M,N
例如從表Sys_option(主鍵為sys_id)中從10條記錄開始檢索20條記錄,語句如下:
select * from sys_option limit 10,20

 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美黑人狂野猛交老妇| 久久精品视频在线播放| 欧美精品电影免费在线观看| 日韩网站免费观看| 国产91露脸中文字幕在线| 国产久一一精品| 欧美日韩亚洲视频| 日韩电影在线观看中文字幕| 一个人看的www欧美| 91av视频在线| 欧美成人在线免费| 91精品国产91久久| 国产精品福利在线观看| 91po在线观看91精品国产性色| 久久久久久一区二区三区| 欧美成人精品xxx| 91sao在线观看国产| 欧美专区国产专区| 成人国产精品久久久久久亚洲| 中文字幕不卡在线视频极品| 91亚洲精品久久久久久久久久久久| 992tv在线成人免费观看| 日韩一区二区三区国产| 日韩av免费在线看| 亚洲日韩欧美视频| 成人春色激情网| 欧美成aaa人片免费看| 在线观看欧美日韩国产| 欧美黑人xxx| 亚洲人成人99网站| 欧美激情伊人电影| 国产精品99久久久久久久久| 亚洲aaa激情| 欧美wwwwww| 国产综合在线观看视频| 欧美一级片免费在线| 亚洲午夜未满十八勿入免费观看全集| 精品成人69xx.xyz| 在线播放日韩专区| 国产精品白嫩初高中害羞小美女| 九色精品免费永久在线| 91精品久久久久久久久久久| 成人国内精品久久久久一区| 青青a在线精品免费观看| 国产精品久久久久久久久久99| 欧美亚洲国产视频小说| 亚洲人成在线观| 国产一区二区丝袜高跟鞋图片| 日韩中文字幕在线免费观看| 欧美xxxwww| 精品一区二区三区四区在线| 日韩精品免费综合视频在线播放| 狠狠爱在线视频一区| 国产欧美亚洲视频| 日韩中文娱乐网| 欧美国产视频日韩| 国产精品黄色影片导航在线观看| 麻豆成人在线看| 日韩美女激情视频| 国语自产精品视频在线看一大j8| 高清日韩电视剧大全免费播放在线观看| 欧美大胆a视频| 久久精品在线视频| 国产精品免费视频xxxx| 久久偷看各类女兵18女厕嘘嘘| 日韩一区二区久久久| xxxxx91麻豆| 人人做人人澡人人爽欧美| 日韩电影在线观看免费| 国产成人avxxxxx在线看| 亚洲欧美精品一区二区| 国产精品久久久久久久久久新婚| 51ⅴ精品国产91久久久久久| 黑人巨大精品欧美一区二区三区| 91久久久久久久一区二区| 日韩www在线| 亚洲成色777777女色窝| 欧美精品久久久久a| 亚洲精品日产aⅴ| 国内精品久久久久久久久| 成人免费视频xnxx.com| 欧美最近摘花xxxx摘花| 日韩在线视频播放| 91麻豆桃色免费看| 中文字幕无线精品亚洲乱码一区| 91禁国产网站| 欧美日韩亚洲视频| 久久久久国产精品一区| 另类天堂视频在线观看| www.久久草.com| 欧美一区亚洲一区| 尤物九九久久国产精品的特点| 成人午夜在线视频一区| 久久久久女教师免费一区| 亚洲aaaaaa| 亚洲电影免费观看高清| 亚洲影院色在线观看免费| 91精品在线一区| 日韩成人在线免费观看| 日本久久久久久久久久久| 国产日韩在线免费| 日韩在线观看免费高清| 一区二区三区亚洲| 亚洲国产精品一区二区三区| 亚洲精品美女久久久久| 日本19禁啪啪免费观看www| 国产精品69av| 国产精品人成电影| 国产精品视频精品视频| 国产在线播放不卡| 91av免费观看91av精品在线| 成人国内精品久久久久一区| 少妇av一区二区三区| 91成品人片a无限观看| 亚洲aa中文字幕| 欧美日韩国产丝袜另类| 亚洲片在线资源| 91精品国产91久久久久| 色婷婷综合成人av| 国内外成人免费激情在线视频| 久久夜色精品国产亚洲aⅴ| 欧美亚洲一级片| 亚洲大胆人体av| 日韩欧美第一页| 国产欧美一区二区三区四区| 欧美做受高潮电影o| 国产在线视频2019最新视频| 欧美在线国产精品| 91久久久在线| 亚洲第一国产精品| 国产成人亚洲综合青青| 国产精品九九九| 国产精品丝袜视频| 亚洲色图美腿丝袜| 国产成人综合一区二区三区| 国产一区二区在线免费| 97视频人免费观看| 久久激情视频免费观看| 国产久一一精品| 久久夜色精品亚洲噜噜国产mv| 欧美极品少妇xxxxⅹ喷水| 亚洲视频在线观看视频| 国产日产久久高清欧美一区| 91久久久久久久久| 影音先锋欧美在线资源| 超碰精品一区二区三区乱码| 欧美理论电影在线播放| 91av中文字幕| 美日韩精品视频免费看| 国内揄拍国内精品| 欧美精品激情在线| 日韩精品在线免费| 亚洲美女福利视频网站| 91在线|亚洲| 欧美日本黄视频| 国产精品jvid在线观看蜜臀| 国产剧情日韩欧美| 中文字幕日韩有码| 亚洲黄色av网站| 91精品在线观| 亚洲人成在线电影| 日韩av在线精品| 亚洲激情国产精品| 国产精品一区二区三区免费视频|