2000年,D.理查德·希普开发并发布了嵌入式系统使用的关系数据库SQLite,目前的主流版本是SQLite 3。SQLite是开源的,它采用C语言编写,具有可移植性强、可靠性高、小而容易使用的特点。SQLite运行时与使用它的应用程序之间共用相同的进程空间,而不是单独的两个进程。
SQLite提供了对SQL-92标准的支持,支持多表、索引、事务、视图和触发。SQLite是无数据类型的数据库,就是字段不用指定类型。下面的代码在SQLite中是合法的:
那么如何创建数据库SQLite呢?下面由南昌网络公司-易速网络跟大家做个简单的介绍:
要创建数据库,需要经过如下3个步骤。
(1) 使用sqlite3_open函数打开数据库。
(2) 使用sqlite3_exec函数执行Create Table语句,创建数据库表。
(3) 使用sqlite3_close函数释放资源。
在这个过程中,我们使用了3个SQLite3函数,它们都是纯C语言函数。通过Objective-C调用C函数当然不是什么问题,但是也要注意Objective-C数据类型与C数据类型的兼容性问题。
首先,我们需要添加SQLite3库到运行的工程环境中。选择工程中TARGETS→PresentationLayer→Build phases→Link Binary With Libraries,点击左下角的+按钮,从弹出界面中选择libsqlite3.dylib或libsqlite3.0.dylib,再在弹出的对话框中点击Add按钮添加即可,如下图所示。
在NoteDAO文件中,相关属性和createEditableCopyOfDatabaseIfNeeded方法的代码如下所示:
上述代码中第①行用于声明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开发公司-易速网络:http://www.esuseo.com
在NoteDAO文件中,相关属性和createEditableCopyOfDatabaseIfNeeded方法的代码如下所示:
在NoteDAO文件中,相关属性和createEditableCopyOfDatabaseIfNeeded方法的代码如下所示:
上述代码中第①行用于声明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开发公司-易速网络:http://www.esuseo.com
上述代码中第①行用于声明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开发公司-易速网络:http://www.esuseo.com
易速网站优化公司 » 如何创建数据库SQLite?