十三年专注于网站建设与互联网应用开发,低调、有情怀的网络应用服务商!
南昌百恒科技微信公众号 扫一扫关注
tel-icon全国服务热线:400-680-9298,0791-88117053
扫一扫关注百恒科技微信公众号

如何创建数据库SQLite?

百恒 2017-04-28 17:06:14 3871
       2000年,D.理查德·希普开发并发布了嵌入式系统使用的关系数据库SQLite,目前的主流版本是SQLite 3。SQLite是开源的,它采用C语言编写,具有可移植性强、可靠性高、小而容易使用的特点。SQLite运行时与使用它的应用程序之间共用相同的进程空间,而不是单独的两个进程。
       SQLite提供了对SQL-92标准的支持,支持多表、索引、事务、视图和触发。SQLite是无数据类型的数据库,就是字段不用指定类型。下面的代码在SQLite中是合法的:
南昌APP开发
       那么如何创建数据库SQLite呢?下面由南昌网络公司-百恒网络跟大家做个简单的介绍:
       要创建数据库,需要经过如下3个步骤。
       (1) 使用sqlite3_open函数打开数据库。
       (2) 使用sqlite3_exec函数执行Create Table语句,创建数据库表。
       (3) 使用sqlite3_close函数释放资源。
       在这个过程中,我们使用了3个SQLite3函数,它们都是纯C语言函数。通过Objective-C调用C函数当然不是什么问题,但是也要注意Objective-C数据类型与C数据类型的兼容性问题。

南昌APP开发

      首先,我们需要添加SQLite3库到运行的工程环境中。选择工程中TARGETS→PresentationLayer→Build phases→Link Binary With Libraries,点击左下角的+按钮,从弹出界面中选择libsqlite3.dylib或libsqlite3.0.dylib,再在弹出的对话框中点击Add按钮添加即可,如下图所示。

南昌APP开发

       在NoteDAO文件中,相关属性和createEditableCopyOfDatabaseIfNeeded方法的代码如下所示:

南昌APP开发

      上述代码中第①行用于声明C指针类型变量db,在Swift版本中需要声明为COpaquePointer类型。第②行代码用于将NSString类型转换为C接受的是char*类型数据。
       第③行代码用于打开数据库,其中sqlite3_open函数的第一个参数是数据库文件的完整路径。需要注意的是,在这个函数中,接受的是char*类型的数据;第二个参数为sqlite3指针变量db的地址;返回值是int类型。在SQLite3中,我们定义了很多常量,如果返回值等于常量SQLITE_OK,则说明创建成功。
       如果数据库打开失败,则需要关闭数据库(见第④行代码),并抛出异常(见第⑤行代码)。
       如果数据库成功打开,则需要创建数据库中的表,其中第⑥行代码是建表的SQL语句,当表Note不存在时创建,否则不创建。第⑦行代码是将NString类型转换为C所接受的是char*类型的数据。
       第⑧行中的sqlite3_exec函数用于执行SQL语句,该函数的第一个参数是sqlite3指针变量db的地址,第二个参数是要执行的SQL语句,第三个参数是要回调的函数,第四个参数是要回调函数的参数,第五个参数是执行出错的字符串。
       最后,数据操作执行完成,要通过sqlite3_close函数释放资源。代码中多次使用了该函数,当数据库打开失败、SQL语句执行失败,以及执行成功时等都会调用。原则上,无论正常结束还是异常结束,必须使用sqlite3_close函数释放资源。

南昌APP开发

      本文仅限内部技术人员学习交流,不得作于其他商业用途.希望此文对广大技人员有所帮助。文章出自:南昌APP开发公司-百恒网络:http://www.nczwz.com

400-680-9298,0791-88117053
扫一扫关注百恒网络微信公众号

欢迎您的光顾,我们将竭诚为您服务×

售前咨询 售前咨询
 
售前咨询 售前咨询
 
售前咨询 售前咨询
 
售前咨询 售前咨询
 
售前咨询 售前咨询
 
售后服务 售后服务
 
备案专线 备案专线
 
售后服务 售后服务
 
×