介绍SQLite数据库

前端之家收集整理的这篇文章主要介绍了介绍SQLite数据库前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

最近在做毕设的时候,想找一个文件数据库,并且独立,不用安装一些东西就可以使用的,后来朋友推荐给我sqlite,用了一段时间,觉得很不错,很适合那些非典型数据库软件的设计,而且从今天起开始介绍sqlite数据库,先来介绍下sqlite数据库的优势吧。

一、sqlite数据库的优势:

  1、零配置:无需安装和管理配置

  2、灵活:储存在单一磁盘文件中的一个完整的数据库

  3、存储量客观: 支持数据库大小至2TB

  4、源代码足够小:大致3万行C代码

  5、比Acess数据库要快,与MysqL的速度差不多

  6、简单:sqlite的API使用起来很方便

  7、良好注释的源代码、并且有着90%以上的测试覆盖率

  8、独立:没有额外依赖

  9、完全开源:你可以用于任何用途,包括出售它

  10、支持多种开发语言:C/C++、PHP、Perl、Java、ASP.NET、Python

二、配置环境:

首先我们需要下载sqlite的Windows版本,地址如下:

windows版
www.sqlite.com.cn/Upfiles/source/sqlite-3_3_7.zip
www.sqlite.com.cn/Upfiles/source/sqlitedll-3_3_7.zip
www.sqlite.com.cn/Upfiles/source/sqlite-source-3_3_7.zip

sqlite-3_3_7.zip文件:这个是sqlite的可执行文件(包含sqlite3.exe文件
sqlitedll-3_3_7.zip文件:这个是sqlite的动态链接文件(包含sqlite3.def文件sqlite3.dll文件
sqlite-source-3_3_7.zip:这个是sqlite的源码文件(包含sqlite3.h等文件

这些文件里面并没有给我们提供LIB文件,我们需要自己编译出LIB文件。具体方法如下:

注:假设我的VC++6.0安装目录为C:/Program Files/Microsoft Visual Studio

第一步:将sqlite3.def文件拷到C:/Program Files/Microsoft Visual Studio/VC98/Bin/目录下。

第二步:在C:/Program Files/Microsoft Visual Studio/VC98/Bin/目录下有lib.exe的可执行文件,这个lib.exe文件是VC++6.0的一个工具,它用来添加修改,合并LIB文件。使用它我们就可以得到我们需要的sqlite3.lib文件了。打开命令行,输入如下命令。

C:/Program Files/Microsoft Visual Studio/VC98/Bin>LIB /MACHINE:IX86 /DEF:sqlite3.def

注:此时有可能会弹出一个警告说缺少MSPDB60.DLL文件,此时,我们到C:/Program Files/Microsoft Visual Studio目录下搜索MSPDB60.DLL这个文件,把这个文件复制到Bin文件夹中即可。

(未完待续)

现在在C:/Program Files/Microsoft Visual Studio/VC98/Bin/目录下出现了sqlite3.lib文件sqlite3.exp文件,我们要用到sqlite3.lib文件,将sqlite3.exp文件删去即可。

第四步:我们打开VC++6.0,新建一个MFC对话框工程,名字叫sqliteSample。在工程目录下新建一个文件夹,名字为AppMysqL再将sqlite3.h,sqlite3.lib这二个文件复制到这个文件夹中。将sqlite3.dll复制到工程目录下。

到此为止,我们的配置环境工作就做完了,配置工作虽然有点复杂,但是在接下来的编程实现的时候,你就会觉得这样的一小点代价是值得的。

三、编程实现

现在我们编写一个简单的程序。首先我们在CsqliteSampleDlg类的头文件顶部加上一下代码


#include "AppMysqL/sqlite3.h"
#pragma comment(lib,"AppMysqL/sqlite3.lib")

然后在OnInitDialog()方法中加入代码,加完代码后的OnInitDialog()方法如下:

BOOL CsqliteSampleDlg::OnInitDialog()
{
CDialog::OnInitDialog();

// Add "About..." menu item to system menu.

// IDM_ABOUTBox must be in the system command range.
ASSERT((IDM_ABOUTBox & 0xFFF0) == IDM_ABOUTBox);
ASSERT(IDM_ABOUTBox < 0xF000);

CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
CString strAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBox);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING,IDM_ABOUTBox,strAboutMenu);
}
}

// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon,TRUE); // Set big icon
SetIcon(m_hIcon,FALSE); // Set small icon

// TODO: Add extra initialization here


sqlite3 *db=NULL;//数据库指针

CString Errstr;//错误字符串

int ret;

ret = sqlite3_open("first.db",&db); //打开指定的数据库文件,如果不存在将创建一个同名的数据库文件
if(ret != sqlITE_OK)
{
Errstr = sqlite3_errmsg(db);

MessageBox("can't open first.db:"+Errstr);

sqlite3_close(db);//关闭数据库

}
else MessageBox("open first.db successfully!");

sqlite3_close(db); //关闭数据库

return TRUE; // return TRUE unless you set the focus to a control
}

我已经作了注释,相信大家都能够看懂吧,这小段代码用来打开一个数据库,当数据库不存在的时候就会新建一个,sqlite的使用是很方便的,在以后的几篇文章中我再具体介绍sqlite数据库使用的其他知识。

原文链接:https://www.f2er.com/sqlite/202727.html

猜你在找的Sqlite相关文章