天天看點

SQLite

目錄

<dl></dl>

<dd></dd>

展開

  SQLite的資料類型   首先你會接觸到一個讓你驚訝的名詞: Typelessness(無類型). 對! SQLite是無類型的. 這意味着你可以儲存任何類型的資料到你所想要儲存的任何表的任何列中, 無論這列聲明的資料類型是什麼(隻有在一種情況下不是, 稍後解釋). 對于SQLite來說對字段不指定類型是完全有效的. 如:   Create Table ex1(a, b, c);   誠然SQLite允許忽略資料類型, 但是仍然建議在你的Create Table語句中指定資料類型. 因為資料類型對于你和其他的程式員交流, 或者你準備換掉你的資料庫引擎時能起到一個提示或幫助的作用. SQLite支援常見的資料類型, 如:   CREATE TABLE ex2(   a VARCHAR(10),   b NVARCHAR(15),   c TEXT,   d INTEGER,   e FLOAT,   f BOOLEAN,   g CLOB,   h BLOB,   i TIMESTAMP,   j NUMERIC(10,5)   k VARYING CHARACTER (24),   l NATIONAL VARYING CHARACTER(16)   );   前面提到在某種情況下, SQLite的字段并不是無類型的. 即在字段類型為”Integer Primary Key”時.

  a、 如何連接配接sqlite資料庫?   if ($db = sqlite_open('mysqlitedb', 0666, $sqliteerror)) {   select * from sqlite_master;   echo "資料庫連接配接成功!n   ";   } else {   die($sqliteerror);   }   b、 如何列出資料庫中所有的表?   if ($db = sqlite_open('mysqlitedb', 0666, $sqliteerror)) {   $result = sqlite_array_query($db, 'select * from sqlite_master;');   foreach ($result as $entry) {   echo 'talbe name='.$entry['name']."   n";   echo 'sql='.$entry['sql']."   n";   echo "   --------------------------------------------------------------------------------   ";   }   sqlite_close($db);   } else {   die($sqliteerror);   }}   c、 對sqlite資料庫的查詢,以及結果集的顯示   if ($db = sqlite_open('mysqlitedb', 0666, $sqliteerror)) {   $result = sqlite_array_query($db, 'select name, email from user ', SQLITE_ASSOC);   echo "user表查詢結果:   n";   echo " n name email   n";   foreach ($result as $entry) {   echo ' '.$entry['name']." " $entry['email']."   n";   }   echo ' ';   sqlite_close($db);   } else {   die($sqliteerror);   }   d、 資料庫對象記錄的增加、删除、修改   sqlite_query($db, "INSERT INTO user VALUES('user".$i."'" ",'user".$i."@ hichina. com')");   sqlite_query($db, "delete from user where user=’user99’");   sqlite_query($db, 'UPDATE user SET email="lilz@ hichina .com" where name="user1"');

  先下載下傳SQLite資料庫的JDBC   這裡給出一個中文站點的URL:(參見擴充閱讀)   将下載下傳到的包解壓後得到jar包 sqlitejdbc-v033-nested.jar 放到%JAVA_HOME%\lib 下,   并且将其添加到classpath系統環境變量中,我的classpath系統環境變量現在為:   .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\sqlitejdbc-v033-nested.jar   在你的代碼中引用這個驅動:   Class.forName("org.sqlite.JDBC");   Connection conn = DriverManager.getConnection("jdbc:sqlite:filename");//filename為你的SQLite資料名稱   // ... use the database ...   conn.close();   示例程式如下:   

importjava.sql.*; 

importorg.sqlite.JDBC; 

/** 

* 這是個非常簡單的SQLite的Java程式, 

* 程式中建立資料庫、建立表、然後插入資料, 

* 最後讀出資料顯示出來 

*/ 

publicclass TestSQLite 

publicstaticvoid main(String[] args) 

try 

//連接配接SQLite的JDBC 

Class.forName("org.sqlite.JDBC"); 

//建立一個資料庫名zieckey.db的連接配接,如果不存在就在目前目錄下建立之 

Connection conn =DriverManager.getConnection("jdbc:sqlite:zieckey.db"); 

Statement stat = conn.createStatement(); 

stat.executeUpdate("create table tbl1(name varchar(20), salary int);");//建立一個表,兩列 

stat.executeUpdate("insert into tbl1 values('ZhangSan',8000);");//插入資料 

stat.executeUpdate("insert into tbl1 values('LiSi',7800);"); 

stat.executeUpdate("insert into tbl1 values('WangWu',5800);"); 

stat.executeUpdate("insert into tbl1 values('ZhaoLiu',9100);"); 

ResultSet rs = stat.executeQuery("select * from tbl1;");//查詢資料 

while(rs.next()){//将查詢到的資料列印出來 

System.out.print("name = "+ rs.getString("name")+" ");//列屬性一 

System.out.println("salary = "+ rs.getString("salary"));//列屬性二 

rs.close(); 

conn.close();//結束資料庫的連接配接 

catch(Exception e ) 

e.printStackTrace(); 

}

編譯運作:   E:\Coding\java\test&gt;javac TestSQLite.java   E:\Coding\java\test&gt;java TestSQLite   name = ZhangSan salary = 8000   name = LiSi salary = 7800   name = WangWu salary = 5800   name = ZhaoLiu salary = 9100   總結:本文介紹了嵌入式資料庫SQLite在Java中的應用,   通過建立表、插入資料、查詢等操作介紹了在Java中對資料庫的操縱。

  先下載下傳ADO.NET2.0 Provider for SQLite。下載下傳binaries zip版就可以了。下載下傳完後解壓縮,可以在bin目錄下找到System.Data.SQLite.DLL。在vs2008中用Add Refrence功能把System.Data.SQLite.DLL加到工程裡就可以了。運作下面代碼試試:   string datasource = "e:/tmp/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('a','b')";   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());

本文轉自左正部落格園部落格,原文連結:http://www.cnblogs.com/soundcode/archive/2012/03/21/2410506.html,如需轉載請自行聯系原作者