注意:在建立數據庫時:要在工程中添加sql
.h文件數據庫
---------------------------------------------------------------數組
#import <Foundation/Foundation.h>spa
#import "sqlite3.h".net
@interface User : NSObject3d
{orm
sqlite3 * linik;sqlite
NSString * path;ci
}rem
//添加四個數據
-(NSInteger )addNewGoods:(NSString*)addGoodname withPrice:(NSString *)addwithPrice andStorage : (NSString * )addGoodsStorage;
-(NSMutableArray *) showNewGoodsInformation;
---------------------------------------------------------------
.m文件
#import "User.h"
@implementation User
-(id)init{
self =[super init];
//根目錄
path =@"//Users/dc017/desktop/MicroMall.db";
//打開數據庫
sqlite3_open([path UTF8String], &linik);
//建立表
NSString * createGoodsTable=@"create table if not exists goods(goods_id integer primary key autoincrement,goods_name varchar(40),goods_Price varchar(7),goods_storage varchar(8) )";
//執行
sqlite3_exec(linik, [createGoodsTable UTF8String], nil, nil, nil);
return self;
}
//插數據
-(NSInteger )addNewGoods:(NSString*)addGoodname withPrice:(NSString *)addwithPrice andStorage : (NSString * )addGoodsStorage{
//輔助
sqlite3_stmt * state;
NSString * goodsId;
//建立表
NSString * insertGoods=[NSString stringWithFormat:@"insert into goods(goods_name,goods_Price,goods_storage) values(\"%@\",\"%@\",\"%@\")",addGoodname,addwithPrice,addGoodsStorage];
//若是每個表都插入成功 SQLITE_OK表明都插進了
if (sqlite3_exec(linik, [insertGoods UTF8String], nil, nil, nil)==SQLITE_OK) {
//查找新添加商品Id
NSString * selectNewGoods=[NSString stringWithFormat:@"select goods_id from goods where goods_name=\"%@\" ",addGoodname];
//預處理
sqlite3_prepare_v2(linik, [selectNewGoods UTF8String], -1, &state, nil);
// SQLITE_ROW表明每一行插進去了
while (sqlite3_step(state)==SQLITE_ROW) {
goodsId =[NSString stringWithUTF8String:( char *)sqlite3_column_text(state, 0)];
}
}
NSLog(@"jdsfhk");
return [goodsId integerValue];
}
//從數據庫中提取字段
-(NSMutableArray *)showNewGoodsInformation{
//輔助的
sqlite3_stmt *state;
//接收從數據庫中拿出來的值
NSString * goodsId;
NSString * goodsName;
NSString * goodsPrice;
NSString * goodsStorge;
//將值用可變數組接收
NSMutableArray * muarray=[[NSMutableArray alloc]initWithCapacity:10];
NSDictionary * dic;
//查看商品表
NSString * selectGoods=[[NSString alloc]initWithFormat:@"select * from goods order by goods_id desc;"];//order by goods_id desc 降序
//預編譯
sqlite3_prepare_v2(linik, [selectGoods UTF8String], -1, &state, nil);
//取出下一行0,1,2,3列字段全部的值
while (sqlite3_step(state) == SQLITE_ROW) {
//取出地一列的全部值
goodsId =[[NSString alloc]initWithCString:(char *)sqlite3_column_text(state, 0) encoding:NSUTF8StringEncoding];
//取出第二列的全部值
goodsName = [[NSString alloc]initWithCString:(char *)sqlite3_column_text(state, 1) encoding:NSUTF8StringEncoding];
//取出第三列的全部值
goodsPrice =[[NSString alloc]initWithCString:(char *)sqlite3_column_text(state, 2) encoding:NSUTF8StringEncoding];
//取出第四列的全部值
goodsStorge =[[NSString alloc]initWithCString:(char *)sqlite3_column_text(state, 3) encoding:NSUTF8StringEncoding];
//先用字典包裝
dic=@{ @"goodsId":goodsId,
@"goodsName":goodsName,
@"goodsPrice":goodsPrice,
@"goodsStorge":goodsStorge,
};
//再用數組包裝
[muarray addObject:dic];
}
return muarray;
}
@end