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. NAT&Port Forwarding&Port Triggering

    NAT     Nat,网络地址转换协议.主要功能是实现局域网内的本地主机与外网通信.     在连接外网时,内部Ip地址须要转换为网关(一般为路由器Ip地址)(port号也须要对应的转换)     ...

  2. Linux 网卡驱动学习(六)(应用层、tcp 层、ip 层、设备层和驱动层作用解析)

    本文将介绍网络连接建立的过程.收发包流程,以及当中应用层.tcp层.ip层.设备层和驱动层各层发挥的作用. 1.应用层 对于使用socket进行网络连接的server端程序.我们会先调用socket函 ...

  3. 【POJ 2311】 Cutting Game

    [题目链接] http://poj.org/problem?id=2311 [算法] 博弈论——SG函数 [代码] #include <algorithm> #include <bi ...

  4. 15.Linux的文件结构

    linux的文件结构和windows不同,没有分区,是树形的结构: /etc:存放配置文件 /lib:编译程序需要的函数库 /usr:包含所有其他内容,比如内核在/usr/src中,/usr/bin存 ...

  5. 对MySQL交换分区的实践

    前言 在介绍交换分区之前,我们先了解一下 mysql 分区. 数据库的分区有两种:水平分区和垂直分区.而MySQL暂时不支持垂直分区,因此接下来说的都是水平分区.水平分区即:以行为单位对表进行分区.比 ...

  6. Oracle 复合索引设计原理——前缀性和可选性

    前缀性: 复合索引的前缀性是指只有当复合索引的第一个字段出现在SQL语句的谓词条件中时,该索引才会被用到.如复合索引为(ename,job,mgr),只要谓词条件中出现第一个字段ename,就可以用复 ...

  7. form&method【POST~GET】

    <form.../>中method属性指定了该表单是以哪种方式提交请求,有两种方式:GET请求方式和POST请求方式,默认是GET请求方式.两种方式的区别:get方式的请求是在浏览器地址栏 ...

  8. Linux学习日记——字符处理

    (菜鸡学习日记 各种使用命令只列举了常用几种,发现错误望指正) 一.管道 在Linux 中,管道就是一个固定大小的缓冲区,大小为一页4K.它是一种通信的机制,可以使用管道符“ | ” 来连接进程,连接 ...

  9. 跨域-jsonp、cors、iframe、document.domain、postMessage()

    同源策略 概念:同源: 协议.域名.端口号 完全相同 同源策略是浏览器的一种安全策略:且浏览器不会将违反同源策略的响应信息返回 http://127.0.0.1:3000/index.html     ...

  10. oracle导入导出操作

    1,获取oracle导入导出帮助: imp help=y 2,导出命令 exp 用户名/密码@数据库实例 file=文件路径名 如: exp sys/password@orcl file=d:\dat ...