使用sqlite3 创建数据库

#import <sqlite3.h>


@interface DataManager : NSObject


+(instancetype)shared;

//打开数据库

-(void)openDataBase;

//关闭数据库

-(void)closeDataBase;

//创建数据表

-(void)createTable;

//插入数据

-(void)insertDataWith:(NSString*)name andInt:(int) age;

//更新数据

-(void)updateDataWith:(NSString*)name andInt:(int) age;

//删除数据

-(void)deleteDataWith:(NSString*)name;

//查询数据

-(void)select;


//

//  DataManager.m

//  sqlit3Test

//

//  Created by LiYang on 16/5/13.

//  Copyright © 2016 LiYang. All rights reserved.

//


#import "DataManager.h"


@interface DataManager (){


    sqlite3 * db;

    

}


@end

@implementation DataManager


+(instancetype)shared{


    static DataManager * manager = nil;

    

    @synchronized(self) {

        if (!manager) {

            manager = [[DataManager alloc]init];

        }

    }

    return manager;

    

}

//打开数据库

-(void)openDataBase{


    NSString * documentPath = [NSSearchPathForDirectoriesInDomains(NSDocumentationDirectory, NSUserDomainMask, YES) firstObject];

    //sqlite 路径

    NSString *sqlitePath = [documentPath stringByAppendingString:@"db.sqlite"];

    //打开数据库

  int back =  sqlite3_open(sqlitePath.UTF8String, &db);

    

    if (back == SQLITE_OK) {

        

        NSLog(@"open success");

    }else{

    

        NSLog(@"open falied");

    }

    

}

//关闭数据库

-(void)closeDataBase{


    int result = sqlite3_close(db);

    

    if (result == SQLITE_OK) {

        NSLog(@"close success");

    }else{

    

        NSLog(@"close falied");

    }

}

//创建数据表

-(void)createTable{


    NSString * sqlString = @"create table person(name text,age integer)";

    //

    char * error  = nil;

    //执行语句

    sqlite3_exec(db, sqlString.UTF8String, nil, nil, &error);

    

    if (error == nil) {

        

        NSLog(@"create success");

        

    }else{

        NSLog(@"create falied");

    }

    

}

//插入数据

-(void)insertDataWith:(NSString*)name andInt:(int) age{


 //

    NSString * sqlString = [NSString stringWithFormat:@"insert into person('name','age') values('%@','%d')",name,age];

   // NSString * sqlString = @"insert into person('name','age')values('liyang','24')";

    

    //执行语句

    char * error = nil;

    sqlite3_exec(db, sqlString.UTF8String, nil, nil, &error);

    

    if (error == nil) {

        NSLog(@"insert success");

    }else{

    

        NSLog(@"insert falied %s",error);

    }


}

 //更新数据

-(void)updateDataWith:(NSString*)name andInt:(int) age{


    NSString * sqlString = [NSString stringWithFormat:@"update person set name = '%@' where age = '%d'",name,age];

     //执行语句

    char * error = nil;

    sqlite3_exec(db, sqlString.UTF8String, nil, nil, &error);

    if (error == nil) {

        NSLog(@"update success");

    }else{

        

        NSLog(@"update falied");

    }

}

 //删除数据

-(void)deleteDataWith:(NSString*)name{


    NSString * sqlString = [NSString stringWithFormat:@"delete from person where name = '%@'",name];

    //执行语句

    char * error = nil;

    sqlite3_exec(db, sqlString.UTF8String, nil, nil, &error);

    if (error == nil) {

        NSLog(@"delete success");

    }else{

        

        NSLog(@"delete falied");

    }


}

-(void)select{


    NSString * sqlString = @"select * from person";

    

    //准备sql语句

    sqlite3_stmt * stmt = nil;

    sqlite3_prepare(db, sqlString.UTF8String, -1, &stmt, nil);

    //单步执行语句

    while (sqlite3_step(stmt) == SQLITE_ROW) {

        const unsigned char * name = sqlite3_column_text(stmt, 0);

        NSString * nameStr = [NSString stringWithUTF8String:(const char*)name];

        int age = sqlite3_column_int(stmt, 1);

        

        NSLog(@"name:::%@ and age:::%d",nameStr,age);

        

    }

    //释放

    sqlite3_finalize(stmt);

    

}

@end


demo 下载地址
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用sqlite3创建数据库,并实现增、删、查、改的代码: 创建数据库: ```python import sqlite3 conn = sqlite3.connect('test.db') print("Opened database successfully") conn.close() ``` 增加数据: ```python import sqlite3 conn = sqlite3.connect('test.db') print("Opened database successfully") conn.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \ VALUES (1, 'Paul', 32, 'California', 20000.00 )") conn.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \ VALUES (2, 'Allen', 25, 'Texas', 15000.00 )") conn.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \ VALUES (3, 'Teddy', 23, 'Norway', 20000.00 )") conn.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \ VALUES (4, 'Mark', 25, 'Rich-Mond', 65000.00 )") conn.commit() print("Records created successfully") conn.close() ``` 删除数据: ```python import sqlite3 conn = sqlite3.connect('test.db') print("Opened database successfully") conn.execute("DELETE from COMPANY where ID = 2;") conn.commit() print("Total number of rows deleted :", conn.total_changes) cursor = conn.execute("SELECT id, name, address, salary from COMPANY") for row in cursor: print("ID = ", row[0]) print("NAME = ", row[1]) print("ADDRESS = ", row[2]) print("SALARY = ", row[3], "\n") print("Operation done successfully") conn.close() ``` 查询数据: ```python import sqlite3 conn = sqlite3.connect('test.db') print("Opened database successfully") cursor = conn.execute("SELECT id, name, address, salary from COMPANY") for row in cursor: print("ID = ", row[0]) print("NAME = ", row[1]) print("ADDRESS = ", row[2]) print("SALARY = ", row[3], "\n") print("Operation done successfully") conn.close() ``` 修改数据: ```python import sqlite3 conn = sqlite3.connect('test.db') print("Opened database successfully") conn.execute("UPDATE COMPANY set SALARY = 25000.00 where ID = 1") conn.commit() print("Total number of rows updated :", conn.total_changes) cursor = conn.execute("SELECT id, name, address, salary from COMPANY") for row in cursor: print("ID = ", row[0]) print("NAME = ", row[1]) print("ADDRESS = ", row[2]) print("SALARY = ", row[3], "\n") print("Operation done successfully") conn.close() ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值