IOS 自带的数据 SQLITE3 的启用的 添加操作, Xcode5 与以前版本有些不同 ,需要将光标定位在项目的根目录,即要显示下面界面:
移动界面上的垂直向(上下)滚动条,并移动到最下面,看到Linked Frameworks and Librarles分类:
见上图的底部,这时点击 + 号,进行库文件的添加选择 ,在屏幕出现库文件列表对话框后,在搜索框输入 SQL,可快速过滤出SQLITE3.0的库文件,即得到下图内容:
点选libsqlite3.0.dylib库文件,如何再按 Add按钮完成SQLite3.0库的添加启用。
下面给出简单的数据库操作的相关代码供参考。
// 下面代码通过View中的一个按钮来启动执行。
//
// ViewController.m
// Database
//
// Created by KQT on 14-1-25.
// Copyright (c) 2014年 KQT. All rights reserved.
//
#import "ViewController.h"
#import <Foundation/Foundation.h>
#import "sqlite3.h"
@interface ViewController ()
@end
char *errorMsg;
sqlite3 *database;
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
//按钮按下启动相应的数据库操作处理
- (IBAction)Clickdatacreate:(id)sender {
[self openDB]; //调用打开库
NSString *createtable1 = @"create table if not exists Emplovee (id integer primary key autoincrement,code text,name text,password text,phone text,email text)";
[self create: createtable1]; //调用创建表
[self Insert]; //增加记录1
[self Insert]; //增加记录2
[self Insert]; //增加记录3
[self deleteaNote: 2]; //删除一条记录 序号为2的
NSString *name=@"YouName";
NSString *pws=@"Password";
[self update:name toPWS: pws]; //更新第三条记录的两个字段内容
[self selectea]; //查询所有记录
}
//打开数据库
-(BOOL)openDB{
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创建数据库和表
return YES;
} else {
sqlite3_close(database);
NSLog(@"Error: open database file.");
return NO;
}
return NO;
}
}
//创建表
-(BOOL)create: (NSString*) tableSql {
//创建表语句
const char *createSql = [tableSql UTF8String];
//创建表是否成功
if (sqlite3_exec(database, createSql, NULL, NULL,&errorMsg)==SQLITE_OK) {
// NSLog(@"CreateSQL: %s ",createSql);
NSLog(@"create ok.");
return YES;
}else{
//打印出错信息
NSLog(@"error: %s",errorMsg);
sqlite3_free(errorMsg);
}
return NO;
}
//添加一条记录
-(BOOL)Insert{
NSString *sql = [NSString stringWithFormat:
@ "insert into Emplovee (name, password,phone,email) values ('user','pass','13503049821','ggmmuu@gmail.com')"];
//将定义的NSString的sql语句,转换成UTF8的c风格的字符串
const char *insertSql = [sql UTF8String];
// NSLog(@"SQL: %s ",insertSql);
// 执行插入语句
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)selectea {
NSLog(@"查询所有记录语句");
sqlite3_stmt *statement;
NSString *sql = @"SELECT * FROM Emplovee";
const char *querySql = [sql UTF8String];
NSLog(@"error: %s",querySql);
if (sqlite3_prepare_v2(database, querySql, -1, &statement, nil)==SQLITE_OK) {
NSLog(@"select ok.");
//循环读出每条记录
while (sqlite3_step(statement) == SQLITE_ROW) {
//读出字段内容
int rowNum = sqlite3_column_int(statement, 0);
char *rowData1 = (char *)sqlite3_column_text(statement, 1);
char *rowData2 = (char *)sqlite3_column_text(statement, 2);
char *rowData3 = (char *)sqlite3_column_text(statement, 3);
char *rowData4 = (char *)sqlite3_column_text(statement, 4);
//显示记录内容
NSLog(@"data: %d,%s,%s,%s,%s",rowNum,rowData1,rowData2,rowData3,rowData4);
}
}
return NO;
}
//删除指定序号的记录
-(BOOL)deleteaNote:(int *) Emp_id {
//删除某条数据
NSString *deleteString=[NSString stringWithFormat:@"delete from Emplovee where id=%d",Emp_id];
//转成utf-8的c的风格
const char *deleteSql=[deleteString UTF8String];
//执行删除语句
if(sqlite3_exec(database, deleteSql, NULL, NULL, &errorMsg)==SQLITE_OK){
NSLog(@"删除成功");
}
return YES;
}
//修改更新记录内容(姓名和密码)
-(BOOL)update:(NSString*)Name toPWS:(NSString*)Password {
//更新语句
NSString *updateString=[NSString stringWithFormat:@"update Emplovee set name='%@', password='%@' where id = 3", Name, Password];
const char *updateSql=[updateString UTF8String];
//执行更新语句
if(sqlite3_exec(database, updateSql, NULL, NULL, &errorMsg)==SQLITE_OK){
NSLog(@"更新成功");
}
return YES;
}
@end