iOS开发中sqlite数据库的基本使用
来源:互联网 发布:相册软件哪个好 编辑:程序博客网 时间:2024/05/16 13:44
在开发中,我们都会听说过”数据库持久化“这一词。怎么做到数据的持久化呢,无非就是把一些数据保存起来,在应用关闭后(不是卸载),下次再次启动应用程序时能够读取到上次保存的数据。这样就做到了数据的持久化。在iOS开发中,对数据的持久化有写文件,归档,NSUserDefaults ,SQLite,coreData。本博文主要介绍SQLite的基本使用。有时间再对coreData做基本的介绍。对于写文件,归档,NSUserDefaults就不做介绍。至于为什么要讲这个先,做过iOS开发都应该清楚,SQLite用得比较多,虽然苹果也有coreData,但coreData不如SQLite量级轻。苹果的coreData数据库做了一层包装,有自己的规则,在使用时会默认创建一些东西。SQLite是真正轻量级的关系型数据库。
个人感觉,iOS前段开发用到的数据库并不是很多,跟后台当然是没发比。除非项目要求,无非就是保存一些界面数据,在应用刚启动,由于网络缓慢时不至于界面上一片空白。在用户体验上好一些。其实做前端开发在数据库上熟悉数据库的 “增”,“删”,“改”,“查”的使用,基本也就够了。
既然讲到SQLite数据库,先爆料一个第三方 FMDB 。其实这里讲SQLite也是主要讲这个第三方的使用。我们并非需要专门的操作数据库,只要会使用,能到达目的就好(纯属个人见解)。FMDB在上可以下载。
先对SQLite的增删改查的基本语法做个简单介绍。接着讲解FMDB的使用。
SQL基本语法
1.修改操作关键字
(1)增:insert
(2)删:delete
(3)改:update
(4)查:select
2.常使用关键字
(1)在哪里执行操作:from+数据表
(2)加在哪个位置into +数据表(与insert一起使用)
(3)条件语句:where
3.修饰关键字
(1)top +条数(前面十条数据)
(2)order by + 字段名 (按照这个名来排序)
(3)[desc]升降序标示
(4)like (与这个字段相似)
(5)in+多个值(选取这几个值)
(6)between +两个值(两个值之间的所有值)
FMDB的使用。
二话不说,先将下下来的FMDB拖到项目工程中。然后添加二进制库 sqlite3.dylib(.tdb)
使用方法(里面会有SQL语法,也是必须的,因为得写SQL语句啊。这里不说了(有的东西自己学习自己摸索出来的也不知道怎么说得专业点。),要想 “增删改查”? 直接拷代码呗)
1)创建一个数据库
- (void)createDataBase{
//获取沙盒路径
//确定数据库路径
NSString*filePath = [NSStringstringWithFormat:@"%@/Documents/data.sqlite",NSHomeDirectory()];
NSLog(@"%@",filePath);
//创建数据库
/*
如果该文件路径已经有这个db,那么就直接打开
如果没有db,那么就创建一个新的db,然后打开
*/
self.dataBase = [[FMDatabasealloc]initWithPath:filePath];
//把数据库打开
if (self.dataBase.open) {
NSLog(@"数据库打开成功");
}
}
2)创建一个表单
- (void)createTable{
//通过sql语句创建表单
//sql语句后接表单的名称(studentInfo)
//表单名后面接表单结构
NSString*sql = @"CREATE TABLE IF NOT EXISTSstudentInfo(sid INTEGER,name varchar(32),age varchar(32),gendervarchar(32))";
//通过dataBase使用sql语句
BOOLisCreate = [self.dataBaseexecuteUpdate:sql];
if(isCreate) {
NSLog(@"创建表单成功");
}
}
方法一:insert插入数据
- (void)insertData{
//sql插入语句INSERT INTO
//sql语句后接表单名(studentInfo)
//设置插入语句的表单结构
//设置表单结构的值(value)
NSString*sql = @"INSERT INTOstudentInfo(sid,name,age,gender)VALUES(?,?,?,?)";
NSString*sid = @"1";
BOOLisInsert = [self.dataBaseexecuteUpdate:sql,sid,@"hjh",@"10",@"0"];
if(isInsert) {
NSLog(@"插入sql数据成功");
}
}
方法二:update修改表单中的数据
- (void)updateData{
制作一个修改name的sql语句,使用SQL修改语句UPDATE,SQL语句后跟表单名,SET设置需要修改的属性,WHERE提供筛选的条件
sid条件使用的字段名(当sid等于某个值的时候,就进行更换)
NSString*sql = @"UPDATE studentInfo SET name = ? WHEREsid = ?";
BOOLisUpdate = [self.dataBaseexecuteUpdate:sql,@"hjj",@"1"];
if(isUpdate) {
NSLog(@"修改数据成功");
}
}
方法三:delete删除操作
- (void)deleteData{
制作一个删除操作的sql语句,sql语句后跟随表单名,WHERE添加删除的条件,当sid等于某个值的时候,删除掉
NSString*sql = @"DELETE FROM studentInfo WHERE sid =?";
BOOLisDelete = [self.dataBaseexecuteUpdate:sql,@"1"];
if(isDelete) {
NSLog(@"删除该数据成功");
}
}
方法四:查询数据表中的数据
- (void)selectData{
//sql的查询语句
NSString*sql = @"SELECT * FROM studentInfo WHERE sid =?";
//通过FMResultSet获取查询回来的数据
FMResultSet*result = [self.dataBaseexecuteQuery:sql,@"1"];
//获取result集合中的下一个元素作为判断条件
//相当于是一个for循环把result中的所有元素都获取出来
while([result next]) {
//获取数字类型的元素属性
NSIntegersid = [resultintForColumn:@"sid"];
//获取字符类型的元素属性
NSString*name = [resultstringForColumn:@"name"];
NSString*age = [resultstringForColumn:@"age"];
NSString*gender = [resultstringForColumn:@"gender"];
NSLog(@"sid = %ld,name = %@,age = %@, gender = %@",(long)sid,name,age,gender);
}
}
三.关闭数据库
- (void)closeDataBase{
//关闭数据库
BOOLisClose = [self.dataBaseclose];
if(isClose) {
NSLog(@"关闭数据库成功");
}
}
- iOS开发中sqlite数据库的基本使用
- iOS中sqlite的基本使用
- iOS开发数据库SQLite的使用
- iOS开发数据库SQLite的使用
- iOS中Sqlite轻量级数据库的使用
- IOS中数据库SQLite的简单使用
- Android 开发中 SQLite 数据库的使用
- iOS中使用SQLite数据库
- ios Sqlite 的基本使用
- SQLite数据库的基本使用
- sqlite数据库的基本使用
- SQLite 数据库的基本使用
- android中使用sqlite的数据库的基本操作
- android中sqlite数据库的基本使用和添加多张表
- iOS-数据库sqlite的使用
- 【ios开发】使用FMDB封装类的sqlite数据库操作
- ios sqlite数据库的基本操作
- iOS sqlite数据库的基本使用方法
- Android学习笔记之ListView
- html5 制作
- [BZOJ3626] LCA - 离线 - 树链剖分/动态树/分块
- Nutch:skipped. Content of size 91280 was truncated to 59131
- Android 发布开源项目到jcenter
- iOS开发中sqlite数据库的基本使用
- ButterKnife--View注入框架
- c语言:递归求最大公约数
- 基于Redux架构的单页应用开发总结(二)
- solrj操纵CloudSolrServer的一般步骤
- ubuntu下crontab 定时执行php脚本
- css3选择器
- 【Android开发细节】之【@id与@+id区别】
- Spring的IOC原理[通俗解释一下]