FMDB----SQL----数据库
#pragma mark -- 数库
- (void)createDatabase{
//路径
NSString *path = [NSString stringWithFormat:@"%@/Documents/maxueshan.db",NSHomeDirectory()];
//创建
_database = [[FMDatabase alloc]initWithPath:path];
//打开
[_database open];
NSLog(@"%@",path);
}
//重写析构方法 , 不能写 [super dealloc]
- (void)dealloc{
//关闭数据库
[_database close];
}
#pragma mark -- 创建表格
- (void)createTable{
NSString *sql = @"create table if not exists Student(stuName text,stuAge text, stuSex text)";
BOOL isSuccess = [_database executeUpdate:sql];
if (isSuccess) {
NSLog(@"table表格创建成功");
}else {
NSLog(@"table表格创建失败");
}
}
//增
- (void)insertDataWithArray:(NSArray *)array{
if (array.count == 0) {
//数组为空,没有模型
return;
}
//1.SQL语句 拼接
NSString *sql = @"insert into Student values(?,?,?)";
//2.遍历数组
for (StudentModel *model in array) {
//
[_database executeUpdate:sql,model.stuName,model.stuAge,model.stuSex];
}
}
//删
- (void)deleteDataWithArray:(NSArray *)array{
if (array.count == 0) {
return ;
}
NSString *sql = @"delete from Student where stuName=? and stuAge=? and stuSex=?";
for (StudentModel *model in array) {
[_database executeUpdate:sql,model.stuName,model.stuAge,model.stuSex];
}
}
//改
- (BOOL)updateDataWithSourceModle:(StudentModel *)sourceModel andNewModel:(StudentModel *)newModel{
if (sourceModel && newModel) {
//两个模型都不为空时,才执行 数据的修改
NSString *sql = @"update Student set stuName=? , set stuAge=? , set stuSex=? where stuName=? and stuAge=? and stuSex=?";
BOOL isSuccess = [_database executeUpdate:sql,newModel.stuName,newModel.stuAge,newModel.stuSex,sourceModel.stuName,sourceModel.stuAge,sourceModel.stuSex];
return isSuccess;
}
return NO;
}
//查
- (NSArray *)selectAllDatas{
//1.数组,接收模型
NSMutableArray *dataArr = [NSMutableArray array];
//2.sql 语句
NSString *sql = @"select *from Student";
//3.查询
FMResultSet *set = [_database executeQuery:sql];
//4.遍历,分装模型
while ([set next]) {
NSString *name = [set stringForColumn:@"stuName"];
NSString *age = [set stringForColumn:@"stuAge"];
NSString *sex = [set stringForColumn:@"stuSex"];
NSDictionary *dic = @{@"stuName":name,@"stuAge":age,@"stuSex":sex};
StudentModel *model = [StudentModel createModelWithDic:dic];
[dataArr addObject:model];
}
return dataArr;
}
//姓名
- (NSArray *)selectForName:(NSString *)name {
if (name.length == 0) {
return nil;
}
NSMutableArray *dataArr = [NSMutableArray array];
NSString *sql = @"select * form Student where stuName=? ";
FMResultSet *set = [_database executeQuery:sql,name];
while ([set next]) {
NSString *name = [set stringForColumn:@"stuName"];
NSString *age = [set stringForColumn:@"stuAge"];
NSString *sex = [set stringForColumn:@"stuSex"];
NSDictionary *dic = @{@"stuName":name,@"stuAge":age,@"stuSex":sex};
StudentModel *model = [StudentModel createModelWithDic:dic];
[dataArr addObject:model];
}
return dataArr;
}
FMDB----SQL----数据库的更多相关文章
- iOS——使用FMDB进行数据库操作(转载)
iOS 使用FMDB进行数据库操作 https://github.com/ccgus/fmdb [摘要]本文介绍iOS 使用FMDB进行数据库操作,并提供详细的示例代码供参考. FMDB 使用方法 A ...
- KTV项目 SQL数据库的应用 结合C#应用窗体
五道口北大青鸟校区 KTV项目 指导老师:袁玉明 歌曲播放原理 SQL数据库关系图 C#解决方案类图 第一步:创建数据库连接方法和打开方法和关闭方法! public class DBHelper { ...
- jquery autocomplete实现读取sql数据库自动补全TextBox
转自我本良人 原文 jquery autocomplete实现读取sql数据库自动补全TextBox 项目需要这样子一个功能,其他部门提的意见,只好去实现了哦,搞了好久才弄出来,分享一下. 1.前台页 ...
- SQL数据库
SQL是Structured Query Language(结构化查询语言)的缩写.SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言.在使用它时,只需要发出“做什么”的命令,“怎么做” ...
- 基于Qt5.5.0的sql数据库、SDK_tts文本语音朗读的CET四六级单词背诵系统软件的编写V1.0
作者:小波 QQ:463431476 请关注我的博客园:http://www.cnblogs.com/xiaobo-Linux/ 我的第二款软件:CET四六级单词背诵软件.基于QT5.5.0.sql数 ...
- matlab连接sql数据库
最近项目还涉及到matlab连接数据库,下面我就记录如何进行配置使得matlab能够连接sql数据库.由于最近工程做的多一些,所以分享的都在工程配置上,当初为了这些配置可是反复卸载与重装,算法其实也有 ...
- SQL SERVER 2008配置Database Mail –用SQL 数据库发邮件
SQL SERVER 2008配置Database Mail –用SQL 数据库发邮件 https://blogs.msdn.microsoft.com/apgcdsd/2011/06/28/sql ...
- Eclipse连接到My sql数据库之前操作
Eclipse连接到My sql数据库之前操作 1:首先是安装My sql数据库(为了减少你的麻烦,按照下面的连接,下载即可)百度云链接:http://pan.baidu.com/s/1mitWmbm ...
- Eclipse连接到My sql数据库的操作总结/配置数据库驱动
Eclipse连接到MYSQL数据库的操作 (自己亲测,开始学习Eclipse(我的Eclipse版本是4.5.2,Jdbc驱动器的jar包版本是5.1.7,亲测可以使用)连接到数据库的时候,发现网上 ...
- 【C#】SQL数据库助手类2.0(自用)
using System; using System.Collections.Generic; using System.Configuration; using System.Data; using ...
随机推荐
- nginx 添加win 服务
https://jingyan.baidu.com/article/0964eca279aa818285f536a9.html
- H264中的SPS、PPS提取与作用<转>
牛逼的视频会议网站:http://wmnmtm.blog.163.com/blog/#m=0 ++++++++++++++++++++++++++++++++++++++++++++++++++++ ...
- 虚拟机VMware的安装以及指南
VMware是一个非常强大的虚拟软件,它的更新速度非常的快,随着软件的更新速度的加快,它的大小会越来越大,但是新的版本大多数会是给企业使用的,对于我们而言,不那么的需要,所以,我们只需要使用一些差不多 ...
- fluent仿真数值错误
- findall 、 search的使用
- ORACLE体系结构一 (实例(instance))--ORACLE_SID
数据库实例(也称为服务器Server)就是用来访问一个数据库文件集的一个存储结构及后台进程的集合.它使一个单独的数据库可以被多个实例访问(也就是ORACLE并行服务器-- OPS).实例在操作系统中用 ...
- 3-3 zookeeper的作用体现
zookeeper比较重要的一个模式:选举模式,这也是高可用的一个体现.公司的董事长.副董事长.董事会常理员以及老总和副总,他们并不会乘坐同一班飞机,而是会分为两班或者三班飞机一起去,也就是我们所谓的 ...
- 【转】手把手教你用Strace诊断问题
原博客地址:http://huoding.com/2015/10/16/474 早些年,如果你知道有个 strace 命令,就很牛了,而现在大家基本都知道 strace 了,如果你遇到性能问题求助别人 ...
- Python-黑客-004 用Python构建一个SSH僵尸网络-02 手动与SSH交互
用Python构建一个SSH僵尸网络-02 手动与SSH交互 - 登录SSH服务器端的 root 用户 我的电脑(攻击者)的系统:Ubuntu14.04 : 用户名: aobosir@ubuntu:~ ...
- Django rest-framework框架十大功能分析
rest-framework框架有哪些作用? 一共有十点. 路由 - 可以通过as_view传参数,根据请求方式不同执行相应的方法 - 可以在url中设置一个结尾,类似于: .json 视图 - 帮助 ...