首先你在用之前要在项目中加入libsqlite3.dylib
1、定义模型
01
#import <Foundation/Foundation.h>
05
@interface NoteSqlite : NSObject{
07
sqlite3_stmt *statement;
16
-(
BOOL
)insert:(NotePad*)aNote;
18
-(
BOOL
)deleteaNote:(NotePad*)aNote;
19
-(
BOOL
)update:(NotePad*)aNote;
22
-(NoteDb*)selectNotes:(NotePad*)aNote;
2、实现方法
001
#import "NoteSqlite.h"
004
@implementation NoteSqlite
012
NSArray *paths= NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
013
NSString *documentsDirectory = [paths objectAtIndex:0];
014
NSString *path = [documentsDirectory stringByAppendingPathComponent:@
"noteList.db"
];
015
NSFileManager *fileManager = [NSFileManager defaultManager];
016
BOOL
find = [fileManager fileExistsAtPath:path];
021
if
(sqlite3_open([path UTF8String], &database) == SQLITE_OK) {
026
if
(sqlite3_open([path UTF8String], &database) == SQLITE_OK) {
031
sqlite3_close(database);
032
NSLog(@
"Error: open database file."
);
042
const
char
*createSql=
"create table if not exists note (id integer primary key autoincrement,theme text,information text,ndate text,priority integer)"
;
044
if
(sqlite3_exec(database, createSql, NULL, NULL, &errorMsg)==SQLITE_OK) {
045
NSLog(@
"create ok."
);
049
NSLog(@
"error: %s"
,errorMsg);
050
sqlite3_free(errorMsg);
057
-(
BOOL
)insert:(NotePad*)aNote{
060
NSString *insertStatementNS = [NSString stringWithFormat:
061
@"insert into \"note\"\
062
(theme, information, ndate,priority)\
063
values (\
"%@\", \"%@\", \"%@\",%d)"
,
064
aNote.theme,aNote.information,[NSString stringWithFormat:@
"%@"
,aNote.ndate],aNote.priority
067
const
char
*insertSql = [insertStatementNS UTF8String];
069
if
(sqlite3_exec(database, insertSql, NULL, NULL, &errorMsg)==SQLITE_OK) {
070
NSLog(@
"insert ok."
);
073
NSLog(@
"error: %s"
,errorMsg);
074
sqlite3_free(errorMsg);
081
const
char
*deleteAllSql=
"delete from note where 1>0"
;
083
if
(sqlite3_exec(database, deleteAllSql, NULL, NULL, &errorMsg)==SQLITE_OK){
088
-(
BOOL
)deleteaNote:(NotePad*)aNote{
090
NSString *deleteString=[NSString stringWithFormat:@
"delete from note where id=%d"
,aNote.noteId];
092
const
char
*deleteSql=[deleteString UTF8String];
094
if
(sqlite3_exec(database, deleteSql, NULL, NULL, &errorMsg)==SQLITE_OK){
099
-(
BOOL
)update:(NotePad*)aNote{
101
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];
103
const
char
*updateSql=[updateString UTF8String];
105
if
(sqlite3_exec(database, updateSql, NULL, NULL, &errorMsg)==SQLITE_OK){
112
NoteDb *noteDb=[[[NoteDb alloc]init]autorelease];
114
const
char
*selectAllSql=
"select * from note"
;
116
if
(sqlite3_prepare_v2(database, selectAllSql, -1, &statement, nil)==SQLITE_OK) {
117
NSLog(@
"select ok."
);
119
while
(sqlite3_step(statement)==SQLITE_ROW) {
120
NotePad *note=[[NotePad alloc]init];
122
int
noteid=sqlite3_column_int(statement, 0);
123
NSMutableString *theme=[NSMutableString stringWithCString:(
char
*)sqlite3_column_text(statement, 1) encoding:NSUTF8StringEncoding];
124
NSMutableString *information=[NSMutableString stringWithCString:(
char
*)sqlite3_column_text(statement, 2) encoding:NSUTF8StringEncoding];
125
NSString *ndateString=[NSString stringWithCString:(
char
*)sqlite3_column_text(statement, 3) encoding:NSUTF8StringEncoding];
126
NSDateFormatter* formater = [[NSDateFormatter alloc] init];
127
[formater setDateFormat:@
"yyyy-MM-dd HH:mm:ss"
];
129
NSDate *ndate=[formater dateFromString:[ndateString substringToIndex:[ndateString length]-5]];
132
int
proriory=sqlite3_column_int(statement, 4);
136
note.information=information;
138
note.priority=proriory;
139
[noteDb addNote:note];
147
-(NoteDb*)selectNotes:(NotePad*)aNote{
148
NoteDb *noteDb=[[[NoteDb alloc]init]autorelease];
149
NSString *selectNSSql=[NSString stringWithFormat:@
"select * from note where id=%i"
,aNote.noteId];
151
const
char
*selectSql=[selectNSSql UTF8String];
153
if
(sqlite3_prepare_v2(database, selectSql, -1, &statement, nil)==SQLITE_OK) {
154
NSLog(@
"select ok."
);
156
while
(sqlite3_step(statement)==SQLITE_ROW) {
157
NotePad *note=[[NotePad alloc]init];
159
int
noteid=sqlite3_column_int(statement, 0);
160
NSMutableString *theme=[NSMutableString stringWithCString:(
char
*)sqlite3_column_text(statement, 1) encoding:NSUTF8StringEncoding];
161
NSMutableString *information=[NSMutableString stringWithCString:(
char
*)sqlite3_column_text(statement, 2) encoding:NSUTF8StringEncoding];
162
NSString *ndateString=[NSString stringWithCString:(
char
*)sqlite3_column_text(statement, 3) encoding:NSUTF8StringEncoding];
163
NSDateFormatter* formater = [[NSDateFormatter alloc] init];
164
[formater setDateFormat:@
"yyyy-MM-dd HH:mm:ss"
];
166
NSDate *ndate=[formater dateFromString:[ndateString substringToIndex:[ndateString length]-5]];
169
int
proriory=sqlite3_column_int(statement, 4);
173
note.information=information;
175
note.priority=proriory;
176
[noteDb addNote:note];
转自:http://blog.csdn.net/rhljiayou/article/details/7615743