加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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);
        }
    }

}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读