iOS之数据库小应用--从数据库取值,传值和跳转界面功能

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


增删改查的.h文件


//

//  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];

    

    

}


接下来还会写一些我遇到的有关数据库的简单问题


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值