SQLite3

记录一个基础的IOS下SQLite的例子:

复制代码
@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    
    NSString *filename = @"test-db";
    NSString *dictionary = [paths objectAtIndex:0];
    NSString *dbPaths = [dictionary stringByAppendingPathComponent:filename];
    int result = sqlite3_open([dbPaths UTF8String], &_db);
    
    char *errMsg;
    
    const char *sql_create_stmt = "CREATE TABLE t_user(username varchar(50), password varchar(50));";
    
    if(result == SQLITE_OK){
        
        if (sqlite3_exec(_db, sql_create_stmt, NULL, NULL, &errMsg) != SQLITE_OK)
        {
            NSLog(@"Failed to create table: %s", errMsg);
            return;
        }
        
    }else{
        NSLog(@"Failed to open database");
        return;
    }
    
    const char *sql_insert_stmt1 = "INSERT INTO t_user(username, password) VALUES('fredric','123')";
    const char *sql_insert_stmt2 = "INSERT INTO t_user(username, password) VALUES('sinny','123')";
    
    if(sqlite3_exec(_db, sql_insert_stmt1, NULL, NULL, &errMsg) != SQLITE_OK){
        NSLog(@"Failed to insert table");
    }
    
    if(sqlite3_exec(_db, sql_insert_stmt2, NULL, NULL, &errMsg) != SQLITE_OK){
        NSLog(@"Failed to insert table");
    }
    
    const char *sql_select_stmt = "SELECT * FROM t_user";
    sqlite3_stmt *stemt = NULL;

    sqlite3_prepare_v2(_db, sql_select_stmt, -1, &stemt, NULL);
    // 判断有没有查询结果
    while (sqlite3_step(stemt) == SQLITE_ROW) {
        // 取出第一个字段的查询得结果
        const unsigned char *username = sqlite3_column_text(stemt, 0);
        const unsigned char *password = sqlite3_column_text(stemt, 1);
        
        NSLog(@"%s %s", username, password);
    }
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end
复制代码

执行结果:

2016-04-16 11:12:19.693 ios20[1628:89155] fredric 123

2016-04-16 11:12:19.694 ios20[1628:89155] sinny 123

posted @   Fredric_2013  阅读(198)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
历史上的今天:
2015-04-16 【转】一个lucene的官网例子
2013-04-16 mongodb 入门笔记
点击右上角即可分享
微信分享提示