1.Sqlite3数据库的创建顺序:
- 先使用C语言函数 [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject] 来获得数据库的Document目录,再通过 stringByAppendingPathComponent 方法来拼接出数据库文件目录;
- 创建一个sqlite3的指针对象,并且赋予NULL值;
- 使用C语言函数 sqlite3_open(数据库目录.UTF8String, &sqlite3指针对象);
- 通过使用if语句判断打开数据库函数的返回值是否为 SQLITE_OK 来判断是否打开成功;
2.Sqlite3数据库表的创建顺序:
- 先创建 const char *sql,指针对象用来存放sql语句;
- 创建 char *errorMesg = NULL;
- 使用C语言函数 sqlite3_exec(sqlite3指针对象, sql语句, NULL, NULL, &errorMesg) 方法来执行sql语句,同样有一个int类型的返回值,可以和创建数据库第四步一样来判断,如果失败可以使用%s直接打印errorMesg来判断成功或者失败;
3.Sqlite3数据库的update以及delete操作顺序和创建表的差不多,只需要更改下语句就行了。
4.Sqlite3数据库的查询语句顺序比较复杂,如下:
- 定义一个 const char *sql 语句;
- 定义一个 sqlite3_stmt 指针对象;
- 使用 sqlite3_prepare_v2(sqlite指针对象, sql语句, -1(数据的长度,-1则会自动计算), stmt指针对象地址, NULL) 来检测sql语句的合法性;
- 通过返回值判断是否正确;
- 如果正确,则使用 while (sqlite_step(stmt) == SQLITE_ROW) 判断是否查到一行;
- 在循环的时候使用 sqlite_column_数据类型(结果指针对象, 列号) C语言函数来获得;
5.在定义查询语句的时候应该把等号右边的字符串变为?,然后在执行前使用 sqlite_bind_数据类型(结果集指针对象, 问号的索引(从1开始), 要替换的数据, -1(数据的长度,-1则会自动计算), NULL(回调函数));
上个礼拜一直在做小练习,做了一个礼拜的界面,也遇到了一些问题,同时也解决了一部分,虽然解决方式有点取巧,但是我觉得先解决问题再考虑优化才是开发的最好方式。这礼拜边学边开始实现练习的逻辑部分。
时间: 2024-10-11 23:56:56