利用周六时间看了一下关于sqlite的知识。在这记录一下。看的传智播客视频

对数据的操作基本上就是增删改查:

static sqlite3 *db; //声明一个数据库
@implementation XSDBOperator + (void)initialize
{
NSString *filename = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject]stringByAppendingPathComponent:@"student.sqlite"]; //数据库文件路径
//假设文件存在,则打开数据库文件。假设不存在则创建,而且打开
int result = sqlite3_open(filename.UTF8String, &db); //
//推断是否打开数据库成功
if (result == SQLITE_OK) {
NSLog(@"打开数据库成功");
}
else
{
NSLog(@"打开失败");
}
}
#pragma mark - 创建数据库表
+(BOOL)creatTable
{
char *sql = "create table if not exists t_student (id integer primary key autoincrement,name text,age integer,score integer);";
char *errorMesg = NULL;
int result = sqlite3_exec(db, sql, NULL, NULL, &errorMesg);//用于操作数据库
if (result == SQLITE_OK) {
return YES;
}
else
{
NSLog(@"创建表失败,失败原因:%s",errorMesg);
return NO;
}
} +(BOOL)insert
{
char *sql = "insert into t_table (name,age) values('jack',20)";
char *errorMesg = NULL;
int result = sqlite3_exec(db, sql , NULL, NULL, &errorMesg);
if (result == SQLITE_OK) {
return YES;
}
else
{
NSLog(@"插入数据失败,失败原因:%s",errorMesg);
return NO;
}
} + (BOOL)updata
{
char *sql = "updata t_table set age = 12";
char *errorMesg = NULL;
int result = sqlite3_exec(db, sql , NULL, NULL, &errorMesg);
if (result == SQLITE_OK) {
return YES;
}
else
{
NSLog(@"更新数据失败,失败原因:%s",errorMesg);
return NO;
}
} + (void)query
{
char *sql = "select id,name,age from t_student;";
//查询结果保存集合
sqlite3_stmt *stmt= NULL;
int result = sqlite3_prepare_v2(db, sql , -1, &stmt, NULL);
if (result == SQLITE_OK) {
NSLog(@"查询语句合法");
while (sqlite3_step(stmt) == SQLITE_ROW) { //依照行进行遍历 直到取完为止
int sid = sqlite3_column_int(stmt, 0); //取当前行出第几列的值
const unsigned char *sname = sqlite3_column_text(stmt, 1);
int sage = sqlite3_column_int(stmt, 2);
NSLog(@"%d,%s,%d",sid,sname,sage);
}
}
else
{
NSLog(@"查询语句不合法");
}
}
@end

最新文章

  1. 【Java】需要注意的小细节
  2. C语言各种标准的
  3. hihoCoder#1384 : Genius ACM
  4. adb shell 查找并删除文件
  5. cogs 自己出的题目 题解报告
  6. HDU1402 A * B Problem Plus FFT
  7. VIM一些常用命令,方法,配置
  8. 模拟I2C从机
  9. SD-关于定价日期的设置
  10. MySQL优化必须调整的10项配置
  11. 欲练JS,必先攻CSS——前端修行之路(码易直播)
  12. Problem B: 开个餐馆算算账
  13. Android listView异步下载和convertView复用产生的错位问题
  14. app个推(透传消息)
  15. SQL Server数据库的兼容级别
  16. 【mongoDB查询进阶】聚合管道(三)--表达式操作符
  17. PHP7 网络编程(一)多进程初探
  18. php下载远程图片到本地
  19. java版迷宫
  20. 【ASP.NET 进阶】TreeView控件学习

热门文章

  1. Activity间用Intent、Bundle、onActivityResult进行传值
  2. [转]Redis作者:深度剖析Redis持久化
  3. spring mvc 接受前台json @RequestBody json 属性 空 使用 JsonProperty spring mvc 获取json转乘bean
  4. Android - View的绘制流程一(measure)
  5. [leetcode]Multiply Strings @ Python
  6. AI 也开源:50 大开源 AI 项目 (转)
  7. 微信小程序--后台交互/wx.request({})方法/渲染页面方法 解析
  8. xshell5不能用
  9. powerdesigner 不显示表字段只显示表名
  10. Android百日程序:绘画程序-画手指路径