iOS: Sqlite数据库的功能:建表,增加,删除,修改,查找

    本篇主要介绍Sqlite数据库的功能:建表,增加,删除,修改,查找。

  采用封装的方法写的,继承于NSObject。

  需向工程中添加libsqlite3.tbd库。

#import "DataBaseHandle.h"

//引入头文件

#import <sqlite3.h>

@interface DataBaseHandle()

//用来存放数据库的路径

@property (nonatomic,strong) NSString *filePath;

@end

@implementation DataBaseHandle

//数据库指针

static sqlite3 *DB = nil;

//懒加载

- (NSString *)filePath{

  if (!_filePath){

    //拼接文件路径文件只能以DB和sqlite结尾

    _filePath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).lastObject   stringByAppendingPathComponent:@"Student.sqlite"];

  }

return _filePath;

}

//单例

+(instancetype)sharedDataBase{

  static DataBaseHandle *dataBas = nil;  

  static dispatch_once_t onceToken;

  dispatch_once(&onceToken, ^{

    dataBas = [[DataBaseHandle alloc]init];

  });

return dataBas;

}

//创建表格

- (void)createTable{

  //准备sql语句

  NSString *sqlString = @"create table if not exists Student (name text,age integer)";

  //执行sql语句

  int result = sqlite3_exec(DB, sqlString.UTF8String, NULL, NULL, NULL);

   if (result == SQLITE_OK) {

    NSLog(@"建表成功");

  }else{

    NSLog (@"建表失败");

  }

}

//打开数据库

- (void)openDataBase{

  // 如果数据存在就打开,如果不存在就创建一个再打开

  int result = sqlite3_open(self.filePath.UTF8String, &DB);

  if (result == SQLITE_OK) {

    NSLog(@"数据库打开成功");

  }else{

    NSLog(@"打开失败%d",result);

  }

}

//关闭数据库

- (void) closeDataBase{

  int result = sqlite3_close(DB);

  if (result == SQLITE_OK) {

    NSLog(@"关闭成功");

  }else{

    NSLog(@"关闭失败%d",result);

  }

}

//增

- (void)insertStudentWithName:(NSString *)name age:(NSInteger)age{

  //准备sql语句

  NSString *sqlString = @"insert into Student (name,age) Values (?,?)";

  //创建伴随指针(用来绑定参数,和获取数据)

  sqlite3_stmt *stmt = NULL;

  //预执行

  int result = sqlite3_prepare(DB, sqlString.UTF8String, -1, &stmt, NULL);

  if (result == SQLITE_OK) {

    //参数绑定

    sqlite3_bind_text(stmt, 1, name.UTF8String, -1, NULL);

    sqlite3_bind_int64(stmt, 2, age);

    //开始执行

    if (sqlite3_step(stmt) == SQLITE_DONE) {

      NSLog(@"插入成功");

    }else{

    NSLog(@"插入失败");

    }

  }else{

    NSLog(@"语句错误");

  }

//关闭伴随指针

sqlite3_finalize(stmt);

}

//改

- (void)updateWithAge:(NSInteger)age{

  //准备sql语句

  NSString *sqlString = @"update Student set age = 20 where age = ?";

  //创建伴随指针(用来绑定参数,和获取数据)

  sqlite3_stmt *stmt = NULL;

  //预执行

  int result = sqlite3_prepare(DB, sqlString.UTF8String, -1, &stmt, NULL);

  if (result == SQLITE_OK) {

    //参数绑定

    sqlite3_bind_int64(stmt, 1, age);

    //开始执行

    if (sqlite3_step(stmt) == SQLITE_DONE) {

      NSLog(@"更新成功");

    }else{

      NSLog(@"更新失败");

    }

  }else{

    NSLog(@"语句错误");

  }

//关闭伴随指针

sqlite3_finalize(stmt);

}

//查

- (void)selectWithName:(NSString *)name{

  //准备sql语句

  NSString *sqlString = @"select name,age from Student where name = ?";

  //创建伴随指针

  sqlite3_stmt *stmt = nil;

  //预执行

  int result = sqlite3_prepare(DB, sqlString.UTF8String, -1, &stmt, NULL);

  if (result == SQLITE_OK) {

    //参数绑定

    sqlite3_bind_text(stmt, 1, name.UTF8String, -1, NULL);

    //开始执行

    while (sqlite3_step(stmt) == SQLITE_ROW){

    //从伴随指针获取数据

    NSString *readName = [NSString stringWithUTF8String:(const char *)sqlite3_column_text(stmt, 0)];

    NSInteger readAge = sqlite3_column_int64(stmt , 1);

    NSLog(@"%@,%ld",readName,readAge);

    }

  }else{

  NSLog(@"语句错误");

  }

//关闭伴随指针

sqlite3_finalize(stmt);

}

//删

- (void)deleteStudentWithAge:(NSInteger)age{

  //准备sql语句

  NSString *sqlString = [NSString stringWithFormat:@"delete from Student where age = %ld",age];

  //执行

  int result = sqlite3_exec(DB, sqlString.UTF8String, NULL, NULL, NULL);

  if (result == SQLITE_OK) {

    NSLog(@"删除成功");

  }else{

    NSLog(@"删除失败%d",result);

  }

}

@end

时间: 2024-08-08 01:27:15

iOS: Sqlite数据库的功能:建表,增加,删除,修改,查找的相关文章

[JavaWeb基础] 004.用JSP + SERVLET 进行简单的增加删除修改

上一次的文章,我们讲解了如何用JAVA访问MySql数据库,对数据进行增加删除修改查询.那么这次我们把具体的页面的数据库操作结合在一起,进行一次简单的学生信息操作案例. 首先我们创建一个专门用于学生管理的ManageServlet. 接着我们需要一个展现数据的页面,也就是 UserList.jsp <%@page import="com.babybus.sdteam.vo.Student"%> <%@ page language="java" im

数据库关联映射建表图示(一对多、多对多)

~总结一下数据库的 一对多.多对一.一对一.多对多 关系 以及对应的建表方式~ 关联映射:一对多/多对一 存在最普遍的映射关系,简单来讲就如球员与球队的关系: 一对多:从球队角度来说一个球队拥有多个球员 即为一对多 多对一:从球员角度来说多个球员属于一个球队 即为多对一 数据表间一对多关系如下图: 关联映射:一对一 一对一关系就如球队与球队所在地址之间的关系,一支球队仅有一个地址,而一个地址区也仅有一支球队. 数据表间一对一关系的表现有两种,一种是外键关联,一种是主键关联.图示如下: 一对一外键

iOS sqlite数据库实现(转)

转载自:http://www.cnblogs.com/macroxu-1982/archive/2012/10/01/2709960.html 1 实现过程添加libsqlite3组件 选择项目后,在展示的xcodepro文件配置界面中配置 build phases -> Link Binary With Libraries -->+ -->libsqlite3.dylib 2 在当前项目中添加sqlite 数据库 3 实现app运行时,将sqlite文件复制到沙盒中 4 实现查询数据库

Unity3D 连接MySQL数据库笔记3-SQL建表

打开  Navicat MySQL管理工具 连接到数据库 选择 test 数据库 点击 查询 输入对应的 sql命令 create table tuser( uname varchar(20) not null primary key, upwd varchar(20) not null ); create table p_info( pkey varchar(15) not null primary key, pname varchar(20) not null, psex varchar(2

android 一个SQLite数据库多个数据表的基本使用框架 (带demo)

android 一个SQLite数据库多个数据表(带demo) 前言        demo演示        一.搭建        二.建立实体类        三.建立数据库操作类        四.配置Application        五.使用    GitHub 前言 我的上一篇博客讲的是简单的 android SQLite 数据库的基本操作如增删改查,有兴趣的朋友可以点一下这里android 简单SQLite数据库 增删改查 但是呢,一般的项目里,一个数据库也不会只有一个数据表,

19 MySQL概念 数据库 数据表 数据类型 增加删除修改查询 WHERE Order By Limit

数据库管理系统DBMS 数据库中相关概念 数据库 数据表 记录 字段 数据 登录和退出MySQL客户端 查询自己的MySQL服务器有几个数据库 二.退出MySQL客户端的命令 修改root用户的密码 在MySQL客户端来修改密码(当前账号的密码) 数据库操作 创建数据库 显示所有数据库 删除数据库 选择数据库 更改数据库默认字符集 数据表操作 显示当前数据库中的所有表 创建数据表 显示表的创建 列的常用属性 修改数据表 删除数据表 显示表结构 MySQL数据类型 整型 浮点型 字符型 文本型 日

IOS SQLite数据库

简介 在IOS中使用Sqlite来处理数据.如果你已经了解了SQL,那你可以很容易的掌握SQLite数据库的操作. 实例步骤 1.创建一个简单的View based application 2.选择项目文件,然后选择目标,添加libsqlite3.dylib库到选择框架 3.通过选择" File-> New -> File... -> "选择 Objective C class 创建新文件,单击下一步 4."sub class of"为NSObje

向MYSQL数据库中的现有表增加新的字段(列)

--题记:最近因为项目需要用到MYSQL,MYSQL从来都没使用过,虽然这属于中小型企业,网络公司使用,主要的一点是它跨平台型,并且购买成本比较低,升至开源的.所以占据了大部分的市场份额. ALTER TABLE `数据库名`.`表名` ADD COLUMN `PROCID` VARCHAR(6) DEFAULT '' AFTER `PPIDChanged`; --在MYSQL中,如果是表名,数据库名,列名,在你增加,修改,更新的时候都需要使用ESC键盘下的重音符号,才可以添加,相应的列名或者更

IOS sqlite数据库增删改查

1.简单介绍 简单封装sqlite数据库操作类 BaseDB 用于完毕对sqlite的增删改查.使用前先导入libsqlite3.0.dylib库 2.BaseDB.h // // BaseDB.h // SqliteDemo // // Created by 赵超 on 14-8-26. // Copyright (c) 2014年 赵超. All rights reserved. // #import <Foundation/Foundation.h> #import "sqli