sqlite简单实用(整理)
发布时间:2020-12-12 20:09:03 所属栏目:百科 来源:网络整理
导读:#import UIKit/UIKit.h#import sqlite3.h#define DBNAME @"BOOKCOLLECT.sqlite"#define TABNAME @"bookcollect"#define BOOKNAME @"bookname"#define BOOKCHAPTER @"book"@interface AppDelegate : UIResponder UIApplicationDelegate@property (strong,nona
#import <UIKit/UIKit.h> #import <sqlite3.h> #define DBNAME @"BOOKCOLLECT.sqlite" #define TABNAME @"bookcollect" #define BOOKNAME @"bookname" #define BOOKCHAPTER @"book" @interface AppDelegate : UIResponder <UIApplicationDelegate> @property (strong,nonatomic) UIWindow *window; @property(nonatomic,assign)sqlite3*database; -(BOOL)isopenDB; @end -(BOOL)isopenDB{ NSString*sqlitepath=[NSString stringWithFormat:@"%@/Documents/%@",NSHomeDirectory(),DBNAME]; NSLog(@"%@",sqlitepath); if (sqlite3_open([sqlitepath UTF8String],&(_database))==SQLITE_OK) { return YES; } return NO; } //创建数据库 -(void)Createbookcollectsqlite{ if ([self isopenDB]) { NSString* createTableSQL = [NSString stringWithFormat:@"CREATE TABLE IF NOT EXISTS %@(ID INTEGER PRIMARY KEY AUTOINCREMENT,bookname TEXT,book TEXT,bookId TEXT,chapterId TEXT)",TABNAME]; char *errmsg=NULL; if (sqlite3_exec(_database,[createTableSQL UTF8String],NULL,&errmsg)==SQLITE_OK) { NSLog(@"数据库创建成功"); }else{ NSLog(@"数据库创建失败"); } sqlite3_close(_database); } } //执行sql语句,收藏------------------------------- -(void)collectToggle:(UIBarButtonItem*)sender { if (!isCollected) { NSUserDefaults*defaults=[NSUserDefaults standardUserDefaults]; NSString *title=[defaults objectForKey:@"Booktitle"]; NSString*bookchapter=[defaults objectForKey:@"bookchapter"]; AppDelegate*delegate=[UIApplication sharedApplication].delegate; NSString* bookId = [[NSUserDefaults standardUserDefaults] objectForKey:@"bookIndex"] ; NSString *chapterId =[[NSUserDefaults standardUserDefaults] objectForKey:@"bookchapterIndex"]; NSString *querySQL=[NSString stringWithFormat:@"SELECT * FROM bookcollect WHERE bookname='%@'and book='%@'and bookId='%@'and chapterId='%@'",title,bookchapter,bookId,chapterId]; if([delegate isopenDB]) { sqlite3_stmt *stmt; if (sqlite3_prepare_v2(delegate.database,[querySQL UTF8String],-1,&stmt,NULL)==SQLITE_OK) { NSLog(@"开始查询"); while (sqlite3_step(stmt)==SQLITE_ROW) { char *bookname=(char*)sqlite3_column_text(stmt,1); char*book=(char*)sqlite3_column_text(stmt,2); NSLog(@"%s",bookname); NSLog(@"%s",book); if(bookname&&book) { return; } } NSString*insertSql=[NSString stringWithFormat:@"INSERT INTO %@ (bookname,book,chapterId) VALUES ('%@','%@','%@')",TABNAME,chapterId]; char*errmsg=NULL; if(sqlite3_exec(delegate.database,[insertSql UTF8String],&errmsg)==SQLITE_OK) { NSLog(@"插入数据成功"); [self alterShow:@"ブックマーク登録しました"]; [sender setTintColor:[UIColor grayColor]]; isCollected = YES; [[PFCollectionCount sharedInstance] bookCollectedCount:[NSString stringWithFormat:@"book%d",[bookId intValue]] withChapterName:bookchapter chapterIndex:[chapterId intValue]]; }else{ NSLog(@"插入数据失败%s",errmsg); } } sqlite3_finalize(stmt); sqlite3_close(delegate.database); } } else{ NSUserDefaults*defaults=[NSUserDefaults standardUserDefaults]; NSString *deleteSQL=[NSString stringWithFormat:@"DELETE FROM bookcollect WHERE bookname="%@"and book="%@"",[defaults objectForKey:@"Booktitle"],[defaults objectForKey:@"bookchapter"]]; AppDelegate*delegate=[UIApplication sharedApplication].delegate; if ([delegate isopenDB]) { char *errmsg; if (sqlite3_exec(delegate.database,[deleteSQL UTF8String],&errmsg)!=SQLITE_OK) { NSLog(@"删除失败"); }else{ [self alterShow:@"ブックマーク解消しました"]; NSLog(@"删除成功"); [sender setTintColor:[UIColor blackColor]]; isCollected = NO; } sqlite3_close(delegate.database); } } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- ruby-on-rails-3 – 如何使用rails_admin等将自己的CMS构建
- 2019 Multi-University Training Contest 2
- ROBBIN - NoSQL数据库探讨之一 - 为什么要用非关系数据库?
- Swift 3 打印功能
- ios – 函数延迟在Swift 2.0中不起作用
- ruby-on-rails – 当我覆盖它的邮件时,Devise正在发送带有空
- Swift(iOS)插件 – 插件错误中未定义的方法 – Cordova
- ruby – 为什么括号内的换行会改变算术结果?
- c# – 如何读取具有命名空间的XPathDocument
- c# – 这是一个ExpressionTrees的错误? #2