数据库sqlite3 创建 增 删 查 改 操作
来源:互联网 发布:手机慢动作软件 编辑:程序博客网 时间:2024/04/28 15:01
#import <Foundation/Foundation.h> #import "sqlite3.h" @class NotePad; @class NoteDb; @interface NoteSqlite : NSObject{ sqlite3 *database; sqlite3_stmt *statement; char *errorMsg; } //打开数据库 -(BOOL)open; //创建青 -(BOOL)create; //增加、删除、修改、查询 -(BOOL)insert:(NotePad*)aNote; -(BOOL)deleteALLNote; -(BOOL)deleteaNote:(NotePad*)aNote; -(BOOL)update:(NotePad*)aNote; -(NoteDb*)selecteAll; -(NoteDb*)selectNotes:(NotePad*)aNote; @end
#import "NoteSqlite.h" #import "NotePad.h" #import "NoteDb.h" @implementation NoteSqlite -(id)init{ self=[super init]; return self; } //打开数据库 -(BOOL)open{ NSArray *paths= NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0]; NSString *path = [documentsDirectory stringByAppendingPathComponent:@"noteList.db"]; NSFileManager *fileManager = [NSFileManager defaultManager]; BOOL find = [fileManager fileExistsAtPath:path]; //判断文件是否存在 if (find) { NSLog(@"数据库文件已经存在"); //打开数据库、返回操作是否正确 if(sqlite3_open([path UTF8String], &database) == SQLITE_OK) { NSLog(@"打开成功数据库"); } return YES; }else{ if(sqlite3_open([path UTF8String], &database) == SQLITE_OK) { //调用createMusicList创建数据库和表 [self create]; return YES; } else { sqlite3_close(database); NSLog(@"Error: open database file."); return NO; } return NO; } } //创建表 -(BOOL)create{ //创建表语句 const char *createSql="create table if not exists note (id integer primary key autoincrement,theme text,information text,ndate text,priority integer)"; //创建表是否成功 if (sqlite3_exec(database, createSql, NULL, NULL, &errorMsg)==SQLITE_OK) { NSLog(@"create ok."); return YES; }else{ //打印出错信息 NSLog(@"error: %s",errorMsg); sqlite3_free(errorMsg); } return NO; } //增加、删除、修改、查询 -(BOOL)insert:(NotePad*)aNote{ //向表中插入记录 //定义一个sql语句 NSString *insertStatementNS = [NSString stringWithFormat: @"insert into \"note\"\ (theme, information, ndate,priority)\ values (\"%@\", \"%@\", \"%@\",%d)", aNote.theme,aNote.information,[NSString stringWithFormat:@"%@",aNote.ndate],aNote.priority ]; //将定义的NSString的sql语句,转换成UTF8的c风格的字符串 const char *insertSql = [insertStatementNS UTF8String]; //执行插入语句 if (sqlite3_exec(database, insertSql, NULL, NULL, &errorMsg)==SQLITE_OK) { NSLog(@"insert ok."); return YES; }else{ NSLog(@"error: %s",errorMsg); sqlite3_free(errorMsg); } return NO; } -(BOOL)deleteALLNote{ //删除所有数据,条件为1>0永真 const char *deleteAllSql="delete from note where 1>0"; //执行删除语句 if(sqlite3_exec(database, deleteAllSql, NULL, NULL, &errorMsg)==SQLITE_OK){ NSLog(@"删除所有数据成功"); } return YES; } -(BOOL)deleteaNote:(NotePad*)aNote{ //删除某条数据 NSString *deleteString=[NSString stringWithFormat:@"delete from note where id=%d",aNote.noteId]; //转成utf-8的c的风格 const char *deleteSql=[deleteString UTF8String]; //执行删除语句 if(sqlite3_exec(database, deleteSql, NULL, NULL, &errorMsg)==SQLITE_OK){ NSLog(@"删除成功"); } return YES; } -(BOOL)update:(NotePad*)aNote{ //更新语句 NSString *updateString=[NSString stringWithFormat:@"update note set theme='%@', information='%@', ndate='%@',priority=%d where id=%d",aNote.theme,aNote.information,aNote.ndate,aNote.priority,aNote.noteId]; // NSLog(@"%@",aNote); const char *updateSql=[updateString UTF8String]; //执行更新语句 if(sqlite3_exec(database, updateSql, NULL, NULL, &errorMsg)==SQLITE_OK){ NSLog(@"更新成功"); } return YES; } -(NoteDb*)selecteAll{ NoteDb *noteDb=[[[NoteDb alloc]init]autorelease]; //查询所有语句 const char *selectAllSql="select * from note"; //执行查询 if (sqlite3_prepare_v2(database, selectAllSql, -1, &statement, nil)==SQLITE_OK) { NSLog(@"select ok."); //如果查询有语句就执行step来添加数据 while (sqlite3_step(statement)==SQLITE_ROW) { NotePad *note=[[NotePad alloc]init]; int noteid=sqlite3_column_int(statement, 0); NSMutableString *theme=[NSMutableString stringWithCString:(char*)sqlite3_column_text(statement, 1) encoding:NSUTF8StringEncoding]; NSMutableString *information=[NSMutableString stringWithCString:(char*)sqlite3_column_text(statement, 2) encoding:NSUTF8StringEncoding]; NSString *ndateString=[NSString stringWithCString:(char*)sqlite3_column_text(statement, 3) encoding:NSUTF8StringEncoding]; NSDateFormatter* formater = [[NSDateFormatter alloc] init]; [formater setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; NSDate *ndate=[formater dateFromString:[ndateString substringToIndex:[ndateString length]-5]]; // NSLog(@"%@",[ndateString substringToIndex:[ndateString length]-5]); [formater release]; int proriory=sqlite3_column_int(statement, 4); note.noteId=noteid; note.theme=theme; note.information=information; note.ndate=ndate; note.priority=proriory; [noteDb addNote:note]; [note release]; } return noteDb; } return noteDb; } -(NoteDb*)selectNotes:(NotePad*)aNote{ NoteDb *noteDb=[[[NoteDb alloc]init]autorelease]; NSString *selectNSSql=[NSString stringWithFormat:@"select * from note where id=%i",aNote.noteId]; //查询所有语句 const char *selectSql=[selectNSSql UTF8String]; //执行查询 if (sqlite3_prepare_v2(database, selectSql, -1, &statement, nil)==SQLITE_OK) { NSLog(@"select ok."); //如果查询有语句就执行step来添加数据 while (sqlite3_step(statement)==SQLITE_ROW) { NotePad *note=[[NotePad alloc]init]; int noteid=sqlite3_column_int(statement, 0); NSMutableString *theme=[NSMutableString stringWithCString:(char*)sqlite3_column_text(statement, 1) encoding:NSUTF8StringEncoding]; NSMutableString *information=[NSMutableString stringWithCString:(char*)sqlite3_column_text(statement, 2) encoding:NSUTF8StringEncoding]; NSString *ndateString=[NSString stringWithCString:(char*)sqlite3_column_text(statement, 3) encoding:NSUTF8StringEncoding]; NSDateFormatter* formater = [[NSDateFormatter alloc] init]; [formater setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; NSDate *ndate=[formater dateFromString:[ndateString substringToIndex:[ndateString length]-5]]; // NSLog(@"%@",[ndateString substringToIndex:[ndateString length]-5]); [formater release]; int proriory=sqlite3_column_int(statement, 4); note.noteId=noteid; note.theme=theme; note.information=information; note.ndate=ndate; note.priority=proriory; [noteDb addNote:note]; [note release]; } return noteDb; } return noteDb; } @end
0 0
- 数据库sqlite3 创建 增 删 查 改 操作
- android对sqlite数据库操作(创建 增 删 改 查)
- Qt中SQLite3的增、删、改、查操作
- Qt中SQLite3的增、删、改、查操作
- IOS sqlite3,数据库的 ,增, 删,改。查
- vb sql server创建数据库实现增、删、改、查等基本操作
- sqlite数据库的基本操作基于FMDatabase(创建数据库,创建表,对标进行增,删,改,查)
- Sqlite3 增删改查操作实例
- 数据库的创建,数据库的操作(增删改查)
- 使用NHibernate对数据库实现增、删、改、查操作
- 使用ASP操作数据库(增、删、改、查)
- Android SQLite 数据库、表的增、删、改、查操作
- Access 数据库Java执行增/删/改/查/操作
- 简单的数据库操作 增 删 改 查
- 简单的数据库操作 增 删 改 查
- 数据库的增、删、改、查操作-----(一)
- python操作mysql数据库(增,删,改,查)
- python操作MySQL数据库(增 删 改 查)续篇
- pc端测试webservice
- Android 如何建立AIDL
- 我的好妈妈
- 找出有环链表中环的起始节点
- CloudFoundry部署(四):CF部署
- 数据库sqlite3 创建 增 删 查 改 操作
- ArcGIS.Server.9.3和ArcGIS API for JavaScript地图实现Toorbar功能(四)
- 物联网成为黑客攻击目标,2013年全球有超过5.52亿个身份信息被泄露
- STM32的启动模式
- 静态代理和动态代理
- 关于IEEE PDf express检查
- sql的技巧语句
- ArcGIS.Server.9.3和ArcGIS API for JavaScript中GraphicsLayer应用(五)
- <ul><li></li></ul>之间的文字居中水平显示