基于FMDB的封装使用

前言

        关于数据的存储用过很多方式,FMDB是最开始使用的一种,也是使用最多的,闲来无事,把自己之前用到的东西,写下来做个纪念。

使用方法

        具体到我这里的用法是写了一个基于fmdb的数据库管理类DBManager,主要就是封装了建表,删表,以及增删改查等功能,其他的比如计数,排序等一般用不到。然后又有一个基于DBManager具体使用的基类BaseDB,把具体会用到的接口用它来包装,最后就是不同的功能需要使用数据库来做存储的就继承BaseDB,比如UserDB,然后具体实现其功能就ok了。 

具体使用

1.主要sql语句:

建表:

create table if not exists DBManager (id integer primary key autoincrement,UserGender text,UserName text);

删表:

drop table DBManager;

插入:

insert into DBManager (UserGender,UserName) values (?,?)

删除:

- delete from DBManager  删除 全部数据   

- delete from DBManager where id = 4  删除 符合条件数据

修改:

- update DBManager set UserName='Me',UserAge='28'              更新 全部数据 字段

- update DBManager set UserName='Me',UserAge='28' where id = 1  更新 符合条件数据 字段

查询:

- select count ( * ) from DBManager  全部数据

- select count (name) from DBManager

2.BaseDB方法

func createTable(keys:Array) -> Bool {}

func dropTable() -> Bool {}

func insertData(data:Dictionary) -> Bool {}

func selectData(keys:Array= [],condition:Array? = nil) -> Array? {}

func updateData(keyValues:Dictionary,condition:Array= []) -> Bool {}

func deleteData(name:String = DBManager.name,condition:Array= []) -> Bool {}

3.UserDB方法

func saveUserInfo(data: Dictionary) -> Bool {}

func modify(name:String) -> Bool {}

func modify(userImage:String) -> Bool {}

func modify(gender:String) -> Bool {}

更多sql语句

-统计查询

select count(*) from DBManager;

--分页功能, limit从第几条记录开始(起始条数是0),返回的记录行数

select id, name, height, age from DBManager limit 0, 2;

-排序功能,默认是升序ASC 、降序DESC,排序是按照指定的条件,由左至右依次排列

select id, name, height, age from DBManager order by name desc, age asc;

--模糊查询, %可以匹配任何内容, %内容%表示只要出现内容,都会被搜索出来,逻辑判断and or not

select id, name, height, age from DBManager where (name like '%a%' age > 20) or name = 'li';

其他

SQL中的常用关键字

select、insert、update、delete、from、create、where、desc、order、by、group、table、alter、view、index等等数据库中不可以使用关键字来命名表、字段

字段类型,SQLite将数据划分为以下几种存储类型:

integer : 整型值

real : 浮点值

text : 文本字符串

blob : 二进制数据(比如文件)

条件语句的常见格式

段落与之前的段落中间预留一行,并且加4个空格就可以进入黑文本状态了

where 字段 = 某个值 ;   // 不能用两个 =


where 字段 is 某个值 ;   // is 相当于 =

where 字段 != 某个值 ;

where 字段 is not 某个值 ;   // is not 相当于 !=

where 字段 > 某个值 ;

where 字段1 = 某个值 and 字段2 > 某个值 ;  // and相当于C语言中的 &&

where 字段1 = 某个值 or 字段2 = 某个值 ;  //  or 相当于C语言中的 ||

过多的就不赘述了,感兴趣的可以查看demo

参考:

https://github.com/ccgus/fmdb

http://www.cnblogs.com/wendingding/p/3868926.html

你可能感兴趣的:(基于FMDB的封装使用)