1.案例简单介绍

对SQLite操作进行了简单的封装,将对数据表操作转变成对对象的操作,并通过UI界面完毕对用户表的增、删、改、查,执行界面例如以下图所看到的
a

2.项目project文件夹



UserModel类为用户对象模型。与数据库表中字段一一相应
BaseDB类为对sqlite简单封装,抽象出对数据库操作的三个方法。详细内容看http://blog.csdn.net/whzhaochao/article/details/38865535博文
UserDB继承于BaseDB。主要是完毕UserModel对象的增、删、改、查,其内容例如以下
UserDB.h
//
// UserDB.h
// SqliteDemo
//
// Created by 赵超 on 14-8-27.
// Copyright (c) 2014年 赵超. All rights reserved.
// #import "BaseDB.h"
#import "UserModel.h" @interface UserDB : BaseDB{ }
//单例
+(id)shareUserDB;
//创建User表
-(void)creatTableWithDataBaseName:(NSString*) dbName;
//添加一个UserModel
-(BOOL)addUser:(UserModel*)userModel dbName:(NSString*)dbName;
//改动一个UserModel
-(BOOL)updateUser:(UserModel*)userModel dbName:(NSString*)dbName;
//查询全部
-(NSArray*)findAllUser:(NSString*)dbName;
//删除一个对象
-(BOOL) deleteUser:(UserModel*)userModel dbName:(NSString*)dbName; @end

UserDB.m

//
// UserDB.m
// SqliteDemo
//
// Created by 赵超 on 14-8-27.
// Copyright (c) 2014年 赵超. All rights reserved.
// #import "UserDB.h" @implementation UserDB static UserDB * db; +(id) shareUserDB{
if (db==nil) {
db= [[UserDB alloc] init];
}
return db;
} -(void)creatTableWithDataBaseName:(NSString*) dbName{
NSString *sql=@"create table user( userName text primary key,passWord text, userEmail text)";
[self createTable:sql dataBaseName:dbName]; } -(BOOL) deleteUser:(UserModel*)userModel dbName:(NSString*)dbName{
NSString *sql=@"delete from user where userName =?";
NSArray *params=@[ userModel.userName];
return [self execSql:sql parmas:params dataBaseName:dbName];
} -(BOOL)addUser:(UserModel *)userModel dbName:(NSString *)dbName{
NSString *sql=@"insert into user (userName,passWord,userEmail) values (?,?,? )";
NSArray *params=@[userModel.userName,userModel.passWord,userModel.userEmail];
return [self execSql:sql parmas:params dataBaseName:dbName];
}
-(NSArray*) findAllUser:(NSString *)dbName{
NSString *sql=@"select userName,passWord,userEmail from user";
NSArray *result= [self selectSql:sql parmas:nil dataBaseName:dbName];
NSMutableArray *users=[NSMutableArray array];
for (NSDictionary *dic in result) {
UserModel *user=[[UserModel alloc] init];
user.userName=[dic objectForKey:@"userName"];
user.passWord=[dic objectForKey:@"passWord"];
user.userEmail=[dic objectForKey:@"userEmail"];
[users addObject:user];
} return users; } -(BOOL)updateUser:(UserModel *)userModel dbName:(NSString *)dbName{
NSString *sql=@"update user set userName=? ,passWord=?,userEmail=? where userName=?";
NSArray *params=@[userModel.userName,userModel.passWord,userModel.userEmail,userModel.userName]; return [self execSql:sql parmas:params dataBaseName:dbName]; } @end

MainViewController是用户显示全部用户列表
AddViewController用于添加和改动用户界面的显示












IOS Sqlite用户界面增删改查案例的更多相关文章

  1. IOS sqlite数据库增删改查

    1.简单介绍 简单封装sqlite数据库操作类 BaseDB 用于完毕对sqlite的增删改查.使用前先导入libsqlite3.0.dylib库 2.BaseDB.h // // BaseDB.h ...

  2. 转:ios Sqlite数据库增删改查基本操作

    研究了几天的数据库,终于把它给搞出来了.Sqlite是ios上最常用的数据库之一,大家还是有必要了解一下的.这是仿照网上的一个例子做的,有些部分写的不好,我稍作了修改,以讲解为主,主要让大家能够明白如 ...

  3. iOS CoreData (一) 增删改查

    代码地址如下:http://www.demodashi.com/demo/11041.html Core Data是iOS5之后才出现的一个框架,本质上是对SQLite的一个封装,它提供了对象-关系映 ...

  4. (转)SQLite数据库增删改查操作

    原文:http://www.cnblogs.com/linjiqin/archive/2011/05/26/2059182.html SQLite数据库增删改查操作 一.使用嵌入式关系型SQLite数 ...

  5. Android SQLite 数据库 增删改查操作

    Android SQLite 数据库 增删改查操作 转载▼ 一.使用嵌入式关系型SQLite数据库存储数据 在Android平台上,集成了一个嵌入式关系型数据库--SQLite,SQLite3支持NU ...

  6. 快速入门GreenDao框架并实现增删改查案例

    大家的项目中不可避免的使用到SQLite,为此我们要花费心思编写一个增删改查框架.而一个好的ORM框架则能够给我们带来极大的方便,今天给大家讲解一个非常火热的ORM-GreenDao. 基本概念 Gr ...

  7. iOS 数据库的增删改查(OC版)

    自己写了几个方法来实现数据的增删改查功能: 首先在TARGETS--->>Build phases里面添加数据库所关联的库文件libsqlite3.tbd 添加完以后,在控制器上添加 #i ...

  8. 一步一步教你用c# entity framework6 连接 sqlite 实现增删改查

    使用entity framework6 连接 SQLite 数据库 前言 很多小型应用程序中,都要使用数据库,而现在比较流行的本地数据库非SQLite莫属. 第一步:前期准备 开发环境:vs2015 ...

  9. 一、Android四大框架之ContentProvider的学习与运用,实现SQLite的增删改查。

    本文系原创博客,文中不妥烦请指出,如需转载摘要请注明出处! ContentProvider的学习与运用 Alpha Dog 2016-04-13  10:27:06 首先,项目的地址:https:// ...

随机推荐

  1. MySQL 5.7.10最新版本号源码安装具体过程

    ,重置密码 利用mysqladmin重置密码 [root@wgq_idc_mon_1_12 mysql5710]#./bin/mysqladmin -h localhost -uroot passwo ...

  2. POJ 1201 & HDU1384 & ZOJ 1508 Intervals(差分约束+spfa 求最长路径)

    题目链接: POJ:http://poj.org/problem?id=1201 HDU:http://acm.hdu.edu.cn/showproblem.php? pid=1384 ZOJ:htt ...

  3. 四、基于HTTPS协议的12306抢票软件设计与实现--水平DNS并发查询分享

    一.基于HTTPS协议的12306抢票软件设计与实现--实现效果 二.基于HTTPS协议的12306抢票软件设计与实现--相关接口以及数据格式 三.基于HTTPS协议的12306抢票软件设计与实现-- ...

  4. UVA 11825 Hackers’ Crackdown 状压DP枚举子集势

    Hackers’ Crackdown Miracle Corporations has a number of system services running in a distributed com ...

  5. 0x02 枚举、模拟、递推

    1.TYVJ1266(这站是不是已经倒闭了啊) USACO陈年老题,对于这种开关问题啊,最多只按一次,而且第一行随便按完下面的就全确定了,类似的还有固定翻转一个长度的区间,这个也是最多翻一次的而且翻的 ...

  6. 利用keytool颁发https证书方法

    1.首先生成私有认证机构 命令:keytool -genkeypair -alias CAname   补充:keytool -list 命令增加 -v 可以查看CA详细信息 2.然后生成私有证书 命 ...

  7. ubuntu下安装VMware

    1 用apt-get命令更新系统 loginname@localhost:~$ sudo apt-get update 2 从官方网站下载Workstation11(Bundle Script) lo ...

  8. Android 高大上的侧滑菜单DrawerLayout,解决了不能全屏滑动的问题

    DrawerLayout预览 DrawerLayout主要功能就是 实现侧滑菜单效果的功能,并且可以通过增加一些设置来实现高大上的效果,那么就请看动态图:   注意左上角那个图标,有木有很好玩,哈哈. ...

  9. 在APP开发设计中,为什么APP开发公司要慎用左右横滑设计?

    移动端屏幕越来越大,但用户对内容量的要求也水涨船高.如何在有限的屏幕内透出更多的内容,是设计师们研究的重点. 常用的内容拓展设计有:Y 方向 List 滑动.Z 方向 3D Touch .入口式内容折 ...

  10. python 一句话输出26个英文字母

    chr(i) # return i character ord(c) # return integer >>> [chr(i) for i in range(97,123)] ['a ...