Java/php/C#连接sqlite总结

17 篇文章 0 订阅
9 篇文章 0 订阅

1.Java jdbc连接sqlite:

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. PHP使用PDO连接sqlite

    待续

3.  C#连接sqlite

3.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());

3.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(指定页大小)
      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(限制数据库大小)
      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.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值