Coder Social home page Coder Social logo

lccsqlitemanager's Introduction

LCCSqliteManager

这是一个轻量级框架,可以让使用的人脱离Sql语句进行数据库的管理。
github地址:https://github.com/OldChicken/LCCSqliteManager

版本信息

  • v1.0:完成了数据库基本功能的封装,包括建、删表以及数据的增删改查。
  • v1.1:优化了建表方法,利用block建表,可以根据你的需要进行表格的建立,而不用一次性再传入多个参数。

使用明细

###1.环境搭建
将下载后的LCCSqliteManager文件夹直接拖入你的项目中,并往你的项目中导入C语言库文件libsqlite3.0后就可以直接使用了。
具体导入方法见下图: image
只需要在3处搜索libsqlite3.0,再点击add即可。这时候libsqlite3.0就添加到你的项目中,你可以在右边看到它了。


###2.基本方法 获得单例

LCCSqliteManager *manager = [LCCSqliteManager shareInstance];  
[manager openSqliteFile:@"yourSqliteFileName"];

在进行数据库操作之前,你需要在你的项目中先执行上述代码,所有操作都需要用manager对象进行调用。openSqliteFile这个方法,若Sqlite文件不存在,则会自动创建一个并打开,你不需要设置路径,只需要传入文件名即可。


接下来调用相关方法进行数据库管理

  • 建表 Objective-C [manager createSheetWithSheetHandler:^(LCCSqliteSheetHandler *sheet) { sheet.sheetName = @"Table1"; sheet.sheetField = @[@"column1",@"column2",@"column3",@"column4"]; }]; 上述代码建立了一张名为Table1,且含有四个字段的表。block中你可以进行这张表的相关设置,如果你需要建立一张带主键或者外键的表,你可以查看LCCSqliteSheetHandler类的头文件,了解如何设置一张完整的表。


  • 得到所有表名 Objective-C NSArray *sheets = [manager getAllSheetNames] 上述代码返回当前打开的sqlite数据库中的所有表名。


  • 得到表的所有字段 Objective-C NSArray *columns = [manager getSheetAttributesWithSheet:@“Table1”] 上述代码返回表Table1的所有字段。


  • 得到表的所有数据 Objective-C NSArray *dates = [manager getSheetDataWithSheet:@“Table1”] 上述代码返回表Table1的所有数据。


  • Objective-C [manager insertDataToSheet:@"Table1" withData:@[@"1",@"2",@"3",@"4"]; 向上述创建的表中添加四个数据


  • Objective-C [manager deleateDataFromSheet:@“Table1” where:@" \"column1\"=\'1\' "; 删除表Table1中,字段"column1"为'data1'的那行数据。where后面跟的字符串是删除条件,你可以输入精确条件、比较条件、模糊查找条件、组合条件等。注意,字段用“”辨识,数据用‘’辨识。具体查找条件在deleateDataFromSheet的注释中有详细介绍。


  • Objective-C [manager updateDataToSheet:@"Table1" withData:@[@"a","b",@"c",@"d"] where:@" \"column1\"=\'1\' “ ; 将表Table1中符合”column“=‘1’的所有数据更新。


  • Objective-C NSArray *result = [manager searchDataFromSheet:@"Table1" where:@" \"column1\"=\'1\' “ ; 得到表Table1中 "column1"='1' 的所有数据。


  • 说明:这里,查找条件中的 "column1"='1',仅仅是用于sqlite中区分字段和字符串的作用。希望不要与NSString中的“”搞混 ,你只需要将整个OC字符串@" "column1"='1' “ 作为查找条件传入即可。


上面介绍的方法是一些主要方法,可以完成数据库的基本操作。一些其他方法,请查看LCCSqliteManager的头文件。

注意事项

  • 所有数据都是以字符串形式存储在表中,因此,当你从表中检索到数据时,你需要自己进行类型转换。这就导致了查找条件中你进行数值时会发生一些问题,比较例如“年龄”>'8'时,字符串‘10’是小于‘8’的,你必须存入‘08’而非‘8’,才能得到正确的检索结果。也正是因为如此,有关数据的任何计算,我都没有提供方法,你可以将符合条件的数据提取到你的项目中条件转换后再进行计算。

  • 设置主键防止程序和数据库出现数据不同步而导致程序崩溃的现象,在使用TableView的deleteRowsAtIndexPaths方法时,很容易出现你删除了一个cell,数据库删除了多个数据的情况导致崩溃。解决这个问题最好的方法是给你的数据表增加一个主键。

  • Demo只展示了最简单的动态建表,如果你需要建立复杂的表,我建议你下载SqliteManager工具,该工具可以打开mac上的数据库文件,你可以直接调用函数建表,用SliteManager进行检测。

  • 因为Demo不能完整的展现数据库的管理,如果有什么bug或者建议,欢迎提出。邮箱地址[email protected],我会一直维护。

lccsqlitemanager's People

Contributors

oldchicken avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.