`

第三方SQLITE封装库pldatabase的介绍

    博客分类:
  • ios
阅读更多

pldatabase的网站地址:http://plsqlite.narod.ru/http://code.google.com/p/pldatabase/ 在这里可以下载和查看文档和代码.

下面我翻译一下其最简单的入门知识,在项目过程中, 发现这些其实也够用, 但异常处理这些我还没引进来使用.

基本使用指南

创建一个链接

为存在数据库文件打开一个链接:

PLSqliteDatabase *db = [[PLSqliteDatabase alloc] initWithPath:  @"/path/to/database"];  
if (![db open])  
    NSLog(@"Could not open database"); 
 

更新操作(即没有返回记录集)

更新操作可以使用 -[PLDatabase executeUpdate:]

if (![db executeUpdate: @"CREATE TABLE example (id INTEGER)"])  
    NSLog(@"Table creation failed");  
if (![db executeUpdate: @"INSERT INTO example (id) VALUES (?)", [NSNumber numberWithInteger: 42]])  
    NSLog(@"Data insert failed");  
 

查询操作

执行查询操作可以使用 -[PLDatabase executeQuery:]. 该操作返回结果集是一个对象为PLResult的NSObject实例.使用方法如下

id<PLResultSet> results = [db executeQuery: @"SELECT id FROM example WHERE id = ?", [NSNumber numberWithInteger: 42]];  
while ([results next]) {  
    NSLog(@"Value of column id is %d", [results intForColumn: @"id"]);  
}  
// 如果没有关闭结果集不会导致内存泄漏, 但会结果集会被保留直到下一次的查询  
[results close];  
 

执行准备

PLPreparedStatement支持SQL操作的预编译和参数优先绑定. 执行准备的操作可以调用:-[PLDatabase prepareStatement:].

id<PLPreparedStatemet> stmt = [db prepareStatement: @"INSERT INTO example (name, color) VALUES (?, ?)"];
 // 绑定参数
 [stmt bindParameters: [NSArray arrayWithObjects: @"Widget", @"Blue", nil]];
 // 执行插入
 if ([stmt executeUpdate] == NO)
     NSLog(@"INSERT failed");
 

基于命名参数的绑定

当参数很多的时候, 能过命名参数绑定的可读性强很多
用法如下:

// 准备  
id<PLPreparedStatement> stmt = [db prepareStatement: @"INSERT INTO test (name, color) VALUES (:name, :color)"];  
// 使用字典绑定参数  
NSMutableDictionary *parameters = [NSMutableDictionary dictionaryWithCapacity: 2];  
[parameters setObject: @"Widget" forKey: @"name"];  
[parameters setObject: @"Blue" forKey: @"color"];  
[stmt bindParameterDictionary: parameters];  
// 执行插入  
if ([stmt executeUpdate] == NO)  
    NSLog(@"INSERT failed");  
 
分享到:
评论

相关推荐

    Nodejs操作Sqlite3数据库封装

    本篇文章将深入探讨如何使用`node-sqlite3`库来操作SQLite3数据库,并对其进行封装,以便于在实际项目中更高效地使用。 首先,`node-sqlite3`是Node.js的一个数据库驱动,它提供了与SQLite3数据库交互的接口。安装...

    SQLite 操作封装库 YFDB.zip

    SQLite 操作封装库 YFDB ,YFDB 是在FMDB基础上对sqlite数据库操作的进一步封装,以使其支持 Active Reco...

    SQLite3封装通用类库

    在C#中封装SQLite3访问类库,可以简化与SQLite数据库的交互,使得开发者能更高效地处理数据存储和检索。 SQLite3在C#中的封装通常涉及到以下关键知识点: 1. **NuGet包安装**:在C#项目中,我们通常会使用NuGet包...

    第三方操作数据库sqlite的类库 FMDB

    FMDB是iOS和macOS平台上一个非常流行的第三方库,它为SQLite数据库操作提供了一套Objective-C接口。这个库使得在iOS应用中集成SQLite数据库变得更加容易和直观,极大地简化了数据库的管理工作,尤其对于那些需要频繁...

    IOS第三方SQLite支持——FMDB

    IOS中第三方SQLite支持包,实现基本的DB操作Demo

    SQLite的第三方封装FMDB编程代码样例

    FMDB是iOS和macOS平台上对SQLite的一个流行第三方封装库,它用Objective-C编写,提供了简单易用的接口来操作SQLite数据库。 在iOS或macOS应用中,使用SQLite和FMDB可以实现高效的数据存储和检索。FMDB提供了SQL语句...

    sqlite3封装类

    封装该类的目的:统一sqlite数据库接口,以方便windows/linux平台间使用sqlite数据库。 该类封装了sqlite3常用操作(可执行 增删改查,事务,创建/增加sql函数,数据库文件压缩等) 该类的使用方法见sqldb.h,该头文件...

    sqlite封装的接口

    sqlite封装的接口,实现对数据库方便的调用

    Sqlite3封装库文件

    在这个“Sqlite3封装库文件”中,包含了在Visual Studio环境下开发C++应用程序时所需的一些关键组件,特别是针对MFC(Microsoft Foundation Classes)框架的应用。 1. **sqlite3.dll**:这是一个动态链接库文件,...

    sqlite js封装的api

    uniapp sqlite js封装的api

    cpp Sqlite c++封装库

    然而,为了方便C++开发者,有许多第三方库对SQLite进行了封装,提供了更符合C++习惯的API。本篇文章将详细讲解如何在C++中使用SQLite的C++封装库cppsqlite。 cppsqlite是一个C++库,它为SQLite提供了一个简单易用的...

    AndroidSQLite封装类

    利用Java反射机制实现Android数据库操作的封装,不用频繁对数据库进行操作,定义好一个实例类后,只需新增一行代码就能实现根据类名映射出相关的数据表名,列名,和相关的增删改查工作。类似于J2EE中的 Hibernate...

    Android 对sqlite的封装,实现CRUD

    大家好,个人觉得用Sqlite数据库时,经常需要进行机械性的CRUD操作,故对其进行了一下封装,希望能起到抛砖引玉的作用。 目的:封装共有的CRUD 下面简单的说一下使用步骤,如果觉得多余,可以无视。 1. 实现自己...

    blackberry sqlite 封装API例子

    SQLite API封装是为了简化开发人员与SQLite数据库交互的过程,提供更友好的接口。以下是对`blackberry sqlite 封装API例子`的详细说明: 1. **SQLite API封装**: 封装SQLite API主要是为了隐藏底层复杂的SQL语句...

    c++ SQLite 封装类以及例子

    这篇内容将详细介绍如何在 C++ 中封装 SQLite 并提供一个实用的例子。 一、SQLite C++ 封装类的设计 1. 类结构设计:通常,我们可以创建一个 `SQLiteDB` 类,它包含了连接、断开、执行 SQL 语句、事务处理等核心...

    SQLite sql jdbc基于java的封装类

    关于java对SQLite和sql的封装类,可以实现增删改,查,事务操作

    操作sqlite的封装类

    总结来说,这个封装库提供了易于使用的接口,简化了与SQLite3的交互,提高了开发效率,同时保持了数据库操作的灵活性和性能。通过阅读sqlite_test.cpp的源代码,我们可以深入了解这些类的具体实现和用法,进一步提升...

    SQLite操作的封装

    本工具类对SQLite的操作进行了封装,使得数据库的CRUD(创建、读取、更新、删除)操作更为简便,开发者只需关注SQL语句的编写,而无需过多关注底层实现细节。 首先,我们来看"SQLite操作的封装"这一主题。这个工具...

    cocos2d-x封装的sqlite3开源库

    总之,cocos2d-x封装的SQLite3库为游戏开发提供了方便的数据管理工具,通过合理利用,开发者可以高效地处理游戏数据,实现更丰富的功能。在实际开发过程中,结合上述知识点,可以更好地运用SQLite3进行数据存储和...

    ANDROID 开发 SQLITE封装 强力推荐

    实体与注解 实现Hibernate功能 简单方便

Global site tag (gtag.js) - Google Analytics