最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2013年04月01日 16:07:14   作者:  
無意中發(fā)現(xiàn)的,C#/Java連接sqlite與使用技巧??戳讼?,還挺不錯的。與大家分享一下。

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

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

3)示例代碼:

復(fù)制代碼 代碼如下:

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也是一個數(shù)據(jù)訪問組件,其中的System.Data.SQLite 就好像是.NET自帶的System.Data.SqlClient一樣。里面包含了connection、command等數(shù)據(jù)訪問的常用對象,只是他們前面都有一個前綴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)創(chuàng)建表、讀取數(shù)據(jù)等和Access或MS SQL沒多大區(qū)別

復(fù)制代碼 代碼如下:

//創(chuàng)建一個數(shù)據(jù)庫文件
string datasource="h:/test.db";
System.Data.SQLite.SQLiteConnection.CreateFile(datasource);
//連接數(shù)據(jù)庫
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";//設(shè)置密碼,SQLite ADO.NET實現(xiàn)了數(shù)據(jù)庫密碼保護(hù)
conn.ConnectionString = connstr.ToString();            
conn.Open();
//創(chuàng)建表
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();
//插入數(shù)據(jù)
sql = "INSERT INTO test VALUES('ekinglong','mypassword')";
cmd.CommandText = sql;
cmd.ExecuteNonQuery();
//取出數(shù)據(jù)
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使用原生態(tài)的ADO.NET訪問SQLite

復(fù)制代碼 代碼如下:

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數(shù)據(jù)庫連接字符串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前數(shù)據(jù)庫格式)
      Data Source=filename;Version=3;Legacy Format=True;
Read only connection(只讀連接)
      Data Source=filename;Version=3;Read Only=True;
With connection pooling(設(shè)置連接池)
      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作為文本存儲,默認(rèn)是Binary)
     Data Source=filename;Version=3;BinaryGUID=False;
      如果把Guid作為文本存儲需要更多的存儲空間
Specify cache size(指定Cache大?。?BR>      Data Source=filename;Version=3;Cache Size=2000;
      Cache Size 單位是字節(jié)
Specify page size(指定頁大小)
      Data Source=filename;Version=3;Page Size=1024;
      Page Size 單位是字節(jié)
Disable enlistment in distributed transactions
      Data Source=filename;Version=3;Enlist=N;
Disable create database behaviour(禁用創(chuàng)建數(shù)據(jù)庫行為)
      Data Source=filename;Version=3;FailIfMissing=True;
      默認(rèn)情況下,如果數(shù)據(jù)庫文件不存在,會自動創(chuàng)建一個新的,使用這個參數(shù),將不會創(chuàng)建,而是拋出異常信息
Limit the size of database(限制數(shù)據(jù)庫大?。?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判斷數(shù)據(jù)表是否存在
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 ;
這樣的寫法是屬于復(fù)合SQL語句,表示先把兩個SELECT的結(jié)果集進(jìn)行無刪減的聯(lián)合,再把聯(lián)合結(jié)果插入到TABLE中。

3. sqlite事務(wù)
是以文件的形式存在磁盤中,每次訪問時都要打開一次文件,如果對數(shù)據(jù)進(jìn)行大量操作時,會很慢~
解決辦法是用事務(wù)的形式提交:因為我們開始事務(wù)后,進(jìn)行大量操作的語句都保存在內(nèi)存中,當(dāng)提交時才全部寫入數(shù)據(jù)庫,此時,數(shù)據(jù)庫文件也就只用打開一次。
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數(shù)據(jù)庫 ,是利用mySQL的LIMIT函數(shù),LIMIT [offset,] rows從數(shù)據(jù)庫表中M條記錄開始檢索N條記錄的語句為:
SELECT * FROM 表名稱 LIMIT M,N
例如從表Sys_option(主鍵為sys_id)中從10條記錄開始檢索20條記錄,語句如下:
select * from sys_option limit 10,20

 

相關(guān)文章

  • C#設(shè)計模式之Strategy策略模式解決007大破密碼危機(jī)問題示例

    C#設(shè)計模式之Strategy策略模式解決007大破密碼危機(jī)問題示例

    這篇文章主要介紹了C#設(shè)計模式之Strategy策略模式解決007大破密碼危機(jī)問題,簡單描述了策略模式的定義并結(jié)合加密解密算法實例分析了C#策略模式的具體使用方法,需要的朋友可以參考下
    2017-09-09
  • C#中SequenceEqual的具體使用

    C#中SequenceEqual的具體使用

    SequenceEqual是LINQ擴(kuò)展方法之一,用于比較兩個序列(如數(shù)組、列表等)的元素是否相等,本文就來介紹一下SequenceEqual的具體使用,感興趣的可以了解一下
    2024-01-01
  • winform用datagridview制作課程表實例

    winform用datagridview制作課程表實例

    這篇文章主要介紹了winform用datagridview制作課程表的方法,實例分析了WinForm實現(xiàn)課程表的結(jié)構(gòu)、數(shù)據(jù)庫及調(diào)用技巧,需要的朋友可以參考下
    2015-01-01
  • c#項目實現(xiàn)發(fā)布到服務(wù)器全過程

    c#項目實現(xiàn)發(fā)布到服務(wù)器全過程

    這篇文章主要介紹了c#項目實現(xiàn)發(fā)布到服務(wù)器全過程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • C#編程自學(xué)之類和對象

    C#編程自學(xué)之類和對象

    C#一種面向?qū)ο蟮木幊陶Z言,是專門為.NET應(yīng)用而開發(fā)出的語言。在.NET運(yùn)行庫的支持下,.NET框架的各種優(yōu)點在C#中表現(xiàn)得淋漓盡致。所以學(xué)習(xí)類和對象以及如何運(yùn)用它們是非常重要!
    2015-10-10
  • 通過App.xaml理解wpf中的Application類

    通過App.xaml理解wpf中的Application類

    這篇文章主要介紹了通過App.xaml理解wpf中的Application類,幫助大家更好的理解和學(xué)習(xí)使用c# wpf,感興趣的朋友可以了解下
    2021-04-04
  • C#利用OLEDB實現(xiàn)將DataTable寫入Excel文件中

    C#利用OLEDB實現(xiàn)將DataTable寫入Excel文件中

    這篇文章主要為大家詳細(xì)介紹了C#如何利用OLEDB實現(xiàn)將DataTable寫入Excel文件中,文中的示例代碼簡潔易懂,具有一定的借鑒價值,需要的可以參考一下
    2023-02-02
  • C#獲取網(wǎng)頁HTML源碼實例

    C#獲取網(wǎng)頁HTML源碼實例

    這篇文章主要介紹了C#獲取網(wǎng)頁HTML源碼的方法,是非常實用的技巧,需要的朋友可以參考下
    2014-10-10
  • C#多線程編程中的鎖系統(tǒng)(三)

    C#多線程編程中的鎖系統(tǒng)(三)

    這篇文章主要介紹了C#多線程編程中的鎖系統(tǒng)(三),本本文主要說下基于內(nèi)核模式構(gòu)造的線程同步方式、事件、信號量以及WaitHandle、AutoResetEvent、ManualResetEvent等內(nèi)容,需要的朋友可以參考下
    2015-04-04
  • asp.net(c#)編程實現(xiàn)將彩色圖片變灰階圖片的方法示例

    asp.net(c#)編程實現(xiàn)將彩色圖片變灰階圖片的方法示例

    這篇文章主要介紹了asp.net(c#)編程實現(xiàn)將彩色圖片變灰階圖片的方法,結(jié)合實例形式分析了C#圖片讀取及屬性操作相關(guān)技巧,需要的朋友可以參考下
    2017-07-07

最新評論

香港 | 萨迦县| 马山县| 沁阳市| 织金县| 东明县| 濮阳县| 库尔勒市| 焉耆| 丹阳市| 贺兰县| 咸丰县| 葫芦岛市| 古浪县| 甘泉县| 信宜市| 崇礼县| 清水县| 北票市| 博罗县| 盐津县| 台北市| 靖宇县| 明溪县| 溆浦县| 渝北区| 友谊县| 浦北县| 乡城县| 巩留县| 桃园市| 玉龙| 天气| 满洲里市| 金乡县| 宿迁市| 黄山市| 黄浦区| 卢氏县| 福建省| 陈巴尔虎旗|