InfoQ

新闻

SQLite——只要3分钟,你就可以在.NET上创建和运行它

作者 Robert Bazinet 译者 张海龙 发布于 2008年1月20日 上午5时18分

社区
.NET
主题
数据访问
标签
LINQ,
nHibernate,
SubSonic,
SQLite

SQLite是一个开源数据库,现在已变得越来越流行,它的体积很小,被广泛应用于各种不同类型的应用中。

什么是SQLite?

SQLite的官方网站上是这样定义SQLite的:

SQLite是一个软件库,用于实现自包含非服务式零配置事务化的SQL数据库引擎。
SQLite是一个嵌入式SQL数据库引擎,与其它大多数SQL数据库不同的是,SQLite没有独立的服务进程。SQLite直接读写原始的磁盘文件,一个拥有多个表、索引、触发器和视图的完整SQL数据库就包含在一个独立的磁盘文件中。数据库文件的格式是跨平台的,你可以在32位和64位系统之间、甚至在Big-EndianLittle-Endian(译者注:这是两种不同的字节排序方式,Big-Endian是指一个word中的高位Byte是放在内存word区域的低地址处,而Little-Endian则与之相反)两种不同的架构间自由地拷贝数据库,这一特性让SQLite成为应用文件格式的一种流行选择。SQLite不能替代Oracle,但可以考虑作为fopen()的替代方法。
SQLite已经是世界上布署得最广泛的SQL数据库引擎,被用在无以计数的桌面电脑应用中,还有消费电子设备中,如移动电话、掌上电脑和MP3播放器等。SQLite的源码就放在公有领域(即WikiPedia的public domain)中。

SQLite最早是应用在Linux和OSX平台上的,但对数据库需求较少的Windows应用而言,它是替代SQL Express和Access数据库运行于.NET之上的一个可行且实用的选择。

有一篇来自开发者Mike Duncan的文章,给出了一个在3分钟内就可将SQLite安装到.NET上的指南。这个指南非常有用,读完它你就可以使用一个轻量级的数据库来处理你丢给它的许多任务。

3分钟的指南

指南是从第一次下载SQLite开始的:

尽管你可以通过SQLite下载页获得Windows的通用库,但我还是打算建议你从sourceforge获取SQLite的ADO.NET 2.0数据提供者,我并不是说它是最高效的版本(它有一个ADO包装层以及附带的无用功能),但它确实是一个非常容易上手的版本,可能值得长期使用。

找出DLL:

将找到的DLL(System.Data.SQLite.DLL)拷贝到你的项目中,并添加引用。

下载和安装一个SQLite GUI工具,SQLiteMan有一个非常出色的windows版本,指南上是这样说的:

我一直在使用的工具名为“SQLite Administrator”(很合适的名字,它是免费的!)有一个“甜点”——有着一个和Query Analyzer很像的界面。如果你有兴趣的话,可以从这里http://www.sqlite.org/cvstrac/wiki?p=ManagementTools找到一个很大的SQLite GUI客户端列表。

指南的最后一步就是创建一个SQLite数据库:

通过GUI,创建一个数据库并随意创建一个测试表,就会出现一个以.s3db为尾缀的单独文件。

一旦System.Data.SQLite.dll被引用为.NET项目的一部分,那就可以像在你的应用顶部写using System.Data.SQLite那样容易地使用它。通过使用ADO.NET包装层,一个参数化的查询看上去会像是这样:

string lookupValue;
using (SQLiteCommand cmd = cnn.CreateCommand())
{
for (int i = 0; i < 100; i++)
{
lookupValue = getSomeLookupValue(i);
cmd.CommandText = @"UPDATE [Foo] SET [Value] = [Value] + 1
WHERE [Customer] LIKE '" + lookupValue + "'";
cmd.ExecuteNonQuery();

}
}

数据提供者

SQLite已经实实在在地影响到.NET的开发,已经有很多数据提供器被用于流行的对像关系映射(O/RM, 即Object-Relational Mapper)框架中。

LINQ提供器允许.NET 3.5的开发者们利用新LINQ框架的优势,并以SQLite作为后端数据存储。

SQLite可以作为替代Access或SQL Express让数据库应用快速创建和运行起来的一个不错选择,而且因为数据库还可以同时在Linux和Mac OSX平台上使用,所以创建一个可以跨平台使用的数据库应用很容易。

查看英文原文Up and Running with SQLite on .NET in 3 Minutes

听说SqlLite很不错 发表人 Anders Cui 发表于 2008年1月20日 下午7时46分
SQLite确实值得一试 发表人 Kevin Chu 发表于 2008年1月22日 下午10时0分
桌面数据库完美代替方案 发表人 Grove Chu 发表于 2009年5月30日 上午9时30分
  1. 返回顶部

    听说SqlLite很不错

    2008年1月20日 下午7时46分 发表人 Anders Cui

    有机会尝试一下...

  2. 返回顶部

    SQLite确实值得一试

    2008年1月22日 下午10时0分 发表人 Kevin Chu

    尤其对于嵌入式开发和单机桌面应用,这样的嵌入式数据库引擎很有用。 当然微软的类似的产品有SQL Server Compact Edtion,也可以用用db4o。

  3. 返回顶部

    桌面数据库完美代替方案

    2009年5月30日 上午9时30分 发表人 Grove Chu

    这个数据库是代替Access完美解决方案,挺不错的。

深度内容

和Google互补的搜索引擎Wolfram|Alpha

Wolfram|Alpha与Google究竟是什么关系,Wolfram|Alpha自己是如何定位的?Wolfram|Alaph在多大程度上是语义网搜索呢?InfoQ中文站就等等这些问题采访了Wolfram研究公司中国区商务经理王翔。

SOA契约成熟度模型

本文说明了所推荐的契约版本管理设计策略是如何与SOA成熟度模型发生联系的。文章目的是为实现版本管理和可组合性提供一个路线图。

数据服务简介

Vijay Narayanan在这篇文章中对数据服务的几个方面进行了介绍,它们都是SOA实践者和数据架构师感兴趣的内容。本文对数据服务的几个方面进行了介绍,包括需求定义,基本原理和好处、范围、开发以及消费模式。

分块云计算

在本文中,Jimmy Nilsson描述了一种他在过去数年间观察到的一种正在缓慢成长的架构风格,他把这种风格称为“分块云计算”。

豆瓣网技术架构变迁

罗马不是一天建成的,豆瓣的技术架构也是随着用户规模的增长一直在持续变化中。在本次演讲中,豆瓣的首席架构师洪强宁将与大家一起分享从上线时的单台服务器架构开始一直到现在的豆瓣架构变迁历程。

融合思想:深入探索S#arp架构

Billy McCafferty展示了S#arp架构,它在ASP.NET MVC框架的基础上,荟萃了当今的最佳实践,应用在ASP.NET Web应用程序的架构设计中。

王雷谈开源以及新兴市场计划

中国作为新兴市场中的新兴市场,是Sun在美国之外实施SSE(SUN Startup Essentials)项目重点关注的地区。在QCon Beijing 2009期间,InfoQ中文站有幸对此项目的负责人王雷先生进行了采访,探讨了关于开源、新兴市场、SSE等话题。

使用HTML5构建下一代的Web Form

HTML5 是由 WHATWG发起的,最开始的名称叫做Web Application 1.0,而后这个标准吸纳了Web Forms 2.0的标准,并一同被W3C组织所采用,合并成为下一代的HTML5标准。