iOS中有写需要跳转界面,查看对应的详细信息,这里给一个简单的例子。
一、数据库准备
创建一个数据库
回忆一下后台创建数据库的方法:
ls -->cd desktop -->sqlite3 lyx.db -->create table lyxTable(name text,number integer);
创建号一个名为lyx.db,表名为lyxTable,一列是名字,一列是数量的数据库。
导入到工程中,之后导入系统自带和第三方库
导入sqlite3文件和FMDB三方库,同时用-fno-objc-arc方法关掉arc,在Globe.h中#define kDBName
@"banJi.db"更改数据库名称
在工程的代理类中引入Globle.h的头文件,然后添加一句代码
copyMainBundleResourceToCacheDir(@"banJi.db");
注意:数据库的数据调用,最好建立一个单独的保存数据的类,入下面的:baoCunData类
这里,数据库的准备工作做好,开始创建增删改查的方法,这里有模版,可直接更改使用:
增删改查的.h文件
//
// CaoZuoData.h
// shuJuKu
//
// Created by liyongxing on 13-7-31.
// Copyright (c) 2013年 liyongxing. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "FMDatabase.h"
@class baoCunData;
@interface CaoZuoData :NSObject
//创建一个数据库对象
@property (nonatomic ,strong)FMDatabase * sqlite3;
//创建一个数据中转站的对象,数据中转站就是临时存放数据,做传递用的,最好一个数据类单独创建一个
@property (nonatomic ,strong)baoCunData * baoCun;
//增添数据
-(void)insertData:(baoCunData * )data;
//删除数据
-(void)delete:(NSString *)data;
//更改数据
-(BOOL)upDate:(NSString*)name number:(NSString*)number;
//查找数据
-(NSMutableArray*) selectAll;
//按照关键字查找
-(baoCunData * ) selectAll:(NSString *)name;
@end
//
// CaoZuoData.m
// shuJuKu
//
// Created by liyongxing on 13-7-31.
// Copyright (c) 2013年 liyongxing. All rights reserved.
//
#import "CaoZuoData.h"
#import "Global.h"
#import "baoCunData.h"
@implementation CaoZuoData
-(id)init
{
if (self==[superinit])
{
self.sqlite3 = [FMDatabasedatabaseWithPath:dbPath()];
[self.sqlite3open];
}
return self;
}
#pragma mark-----增添数据
-(void)insertData:(baoCunData * )data
{
[self.sqlite3executeUpdate:@"INSERT INTO lyxShuJu(name,number) VALUES (?,?)",data.nameData,data.numberData];
NSLog(@"data.nameData == %@",data.nameData);
NSLog(@"numberData == %@",data.numberData);
}
#pragma mark-----删除数据
-(void)delete:(NSString *)name
{
//设置按照哪个关键字进行删除
NSString * string = [NSStringstringWithFormat:@"DELETE FROM lyxShuJu WHERE name=%@",name];
[self.sqlite3executeUpdate:string];
}
#pragma mark-----更改数据
-(BOOL)upDate:(NSString*)name number:(NSString*)number
{
NSString *update = [NSString stringWithFormat:@"UPDATE lyxShuJu set number = %@ WHERE name = %@",number,name];
[self.sqlite3 executeUpdate:update];
return YES;
}
#pragma mark-----查找数据--将所有数据库中查找到的值放在一个变动数组中
-(NSMutableArray*) selectAll
{
//从数据库中调出所有值赋给字符串
NSString * query =@"SELECT * FROM lyxShuJu";
//将数据库中的数据放到一个集合类FMResultSet中
FMResultSet *set = [self.sqlite3executeQuery:query];
//创建一个动态数组
NSMutableArray *dataArr = [[NSMutableArrayalloc]init];
//将集合中的数据循环取出,并赋给变动数组,返回值为这个变动数组
while ([set next])
{
baoCunData * data = [[baoCunDataalloc]init];
data.nameData =[setstringForColumn:@"name"];
data.numberData = [setstringForColumn:@"number"];
[dataArraddObject:data];
}
return dataArr;
}
#pragma mark----按照关键字查找
-(baoCunData * ) selectAll:(NSString *)name
{
//从数据库中调出所有值赋给字符串
NSString * query = [NSStringstringWithFormat:@"SELECT * FROM lyxShuJu WHERE name=%@",name];
//将数据库中的数据放到一个集合类FMResultSet中
FMResultSet *set = [self.sqlite3executeQuery:query];
//将集合中的数据赋给baoCunData的对象
baoCunData * data = [[baoCunDataalloc]init];
while ([set next])
{
data.nameData =[setstringForColumn:@"name"];
NSLog(@"%@",data.nameData);
data.numberData = [setstringForColumn:@"number"];
NSLog(@"%@",data.numberData);
}
return data;
}
@end
#import "CaoZuoData.h"
@interfaceLYXViewController ()
@property (nonatomic ,strong)CaoZuoData * sqlite;
@end
@implementation LYXViewController
- (void)viewDidLoad
{
[superviewDidLoad];
//创建一个增删改查得类得对象
self.sqlite = [[CaoZuoDataalloc]init];
#pragma mark----查找所有数据
-(void)baoCunData
{
self.baoCunShuJu= [[baoCunDataalloc]init];
self.baoCunShuJu.nameData =self.nameFile.text;
self.baoCunShuJu.numberData =self.numberFile.text;
[self.sqliteinsertData:self.baoCunShuJu];
}
#pragma mark----查找数据
-(void)chaXunData
{
baoCunData * data =[baoCunDatanew];
//这个数组是CaoZuoData类中的查找方法-(NSMutableArray*) selectAll返回值
//数据库中的方法
NSMutableArray *arr = [_sqliteselectAll];
NSLog(@"arr = %@",arr);
//从数组中调用数据
data = [arrobjectAtIndex:0];
//将数据显示在相对应的位置
self.nameFile.text = data.nameData;
self.numberFile.text = data.numberData;
}
#pragma mark----按照关键字查找相应数据
-(void)chazhaoGuanJian
{
NSLog(@"self.nameFile.text == %@",self.nameFile.text);
self.baoCunShuJu1 = [self.sqliteselectAll:self.nameFile.text];
NSLog(@"self.jiHe == %@",self.baoCunShuJu1);
NSLog(@"self.jiHe.jiHeNumber == %@",self.baoCunShuJu1.nameData);
}
- (void)didReceiveMemoryWarning
{
[superdidReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (IBAction)update:(UIButton *)sender {
[self.sqliteupDate:self.nameFile.textnumber:self.numberFile.text];
}
接下来还会写一些我遇到的有关数据库的简单问题