iOS 中SQLite数据库操作

在iOS中实现SQLite数据库的操作:1.导入框架(libsqlite3.0.tbd) 2.导入头文件<sqlite3.h> 3.实现数据的增删改查

实现简单 SQLite数据库操作 的 demo 具体过程:

1.创建名为 SQLite_Manage 的.h .m 文件,导入头文件 <sqlite3.h>

2.数据库在一个app中只有一个,使用单例模式:(代码如下)

1 + (SQLite_Manager *)sharedManager{
2     static SQLite_Manager *manager = nil;
3     static dispatch_once_t onceToken;
4     dispatch_once(&onceToken, ^{
5         manager = [[SQLite_Manager alloc]init];
6     });
7     return manager;
8 }

3.打开数据库,代码如下:

 1 - (void)open{
 2     //document路径
 3     NSString *docment = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];
 4     //sqlite 路径
 5     NSString *sqlitePath = [docment stringByAppendingPathComponent:@"database.sqlite"];
 6     //打开数据库
 7     int result = sqlite3_open(sqlitePath.UTF8String, &db);
 8     //判断数据库是否打开成功
 9     if (result == SQLITE_OK) {
10         UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"数据库执行结果" message:@"打开成功" delegate:nil cancelButtonTitle:nil otherButtonTitles:@"确定", nil];
11         [alertView show];
12     }else {
13         UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"数据库执行结果" message:@"打开失败" delegate:nil cancelButtonTitle:nil otherButtonTitles:@"确定", nil];
14         [alertView show];
15     }
16 }

4.创建表,代码如下:

 1 - (void)creatTable{
 2     //sql语句
 3     NSString *sqlString = @"create table Person (id integer primary key,name text,age integer)";
 4     //执行SQL语句
 5     char *error = nil;
 6     sqlite3_exec(db, sqlString.UTF8String, nil, nil, &error);
 7
 8     //判断是否出现了错误
 9     if (error == nil){
10         UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"数据库执行结果" message:@"创建表成功" delegate:nil cancelButtonTitle:nil otherButtonTitles:@"确定", nil];
11         [alertView show];
12     }else {
13         UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"数据库执行结果" message:@"创建表失败" delegate:nil cancelButtonTitle:nil otherButtonTitles:@"确定", nil];
14         [alertView show];
15     }
16 }

5.插入数据,代码如下:

 1 - (void)insert{
 2     //sql语句
 3     NSString *sqlString = @"insert into Person (‘name‘,‘age‘) values (‘Ager‘,18)";
 4     //执行SQL语句
 5     char *error = nil;
 6     sqlite3_exec(db, sqlString.UTF8String, nil, nil, &error);
 7     //判断是否出现了错误
 8     if (error == nil){
 9         UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"数据库执行结果" message:@"插入数据成功" delegate:nil cancelButtonTitle:nil otherButtonTitles:@"确定", nil];
10         [alertView show];
11     }else {
12         UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"数据库执行结果" message:@"插入数据失败" delegate:nil cancelButtonTitle:nil otherButtonTitles:@"确定", nil];
13         [alertView show];
14     }
15
16 }

6.修改数据,代码如下:

 1 - (void)update{
 2     //sql语句
 3     NSString *sqlString = @"update Person set ‘name‘ = ‘Arun‘ where id = 1";
 4     //执行sql语句
 5     char *error = nil;
 6     sqlite3_exec(db, sqlString.UTF8String, nil, nil, &error);
 7
 8     //判断是否出现了错误
 9     if (error == nil){
10         UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"数据库执行结果" message:@"数据更新成功" delegate:nil cancelButtonTitle:nil otherButtonTitles:@"确定", nil];
11         [alertView show];
12     }else {
13         UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"数据库执行结果" message:@"数据更新失败" delegate:nil cancelButtonTitle:nil otherButtonTitles:@"确定", nil];
14         [alertView show];
15     }
16 }

7.查询数据,代码如下:

 1 - (void)select{
 2     //sql语句
 3     NSString *sqlString = @"select * from Person";
 4     //准备sql
 5     sqlite3_stmt *stmt = nil;
 6     sqlite3_prepare(db, sqlString.UTF8String,-1, &stmt, nil);
 7     //单步执行语句
 8     while (sqlite3_step(stmt) == SQLITE_ROW) {
 9         int ID = sqlite3_column_int(stmt, 0);
10         const unsigned char *name = sqlite3_column_text(stmt, 1);
11         int age = sqlite3_column_int(stmt, 2);
12         NSLog(@"%d,%s,%d",ID,name,age);
13     }
14     sqlite3_finalize(stmt);
15 }

8.删除数据,代码如下:

 1 - (void)deleteData{
 2     //sql语句
 3     NSString *sqlString = @"delete from Person where id = 1";
 4     //执行sql语句
 5     char *error = nil;
 6     sqlite3_exec(db, sqlString.UTF8String, nil, nil, &error);
 7     //判断是否出现了错误
 8     if (error == nil){
 9         UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"数据库执行结果" message:@"删除成功" delegate:nil cancelButtonTitle:nil otherButtonTitles:@"确定", nil];
10         [alertView show];
11     }else {
12         UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"数据库执行结果" message:@"删除失败" delegate:nil cancelButtonTitle:nil otherButtonTitles:@"确定", nil];
13         [alertView show];
14     }
15 }

9.关闭数据库,代码如下:

 1 - (void)close{
 2     //关闭数据库
 3     int result = sqlite3_close(db);
 4     //判断数据库是否关闭成功
 5     if (result == SQLITE_OK) {
 6         UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"数据库执行结果" message:@"关闭成功" delegate:nil cancelButtonTitle:nil otherButtonTitles:@"确定", nil];
 7         [alertView show];
 8     }else {
 9         UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"数据库执行结果" message:@"关闭失败" delegate:nil cancelButtonTitle:nil otherButtonTitles:@"确定", nil];
10         [alertView show];
11     }
12 }
时间: 2025-01-01 06:33:02

iOS 中SQLite数据库操作的相关文章

IOS中sqlite数据库利用bold类型存储与读取字典

我在做app收藏时, 发现我的数据有的是字典, 字典怎么向数据库中保存呢? 就看了好多博客, 字典应该利用数据库中的bold类型来保存,可是添加到数据库之后,读取不出来, 为此伤透了脑筋,为了解决这个问题, 花费了好时间. 以前认为bold类型就是用来存放二进制的,可以存放图片等, 而我的数据存到数据库中的确是二进制,所以读的时候全是二进制, 以致不能转换成字典.后来发现我保存数据的方法就是错的, bold类型不仅可以放二进制也可以放数据,简直颠覆了我对bold类型的看法,BLOB,只是一个数据

在安卓开发中使用SQLite数据库操作实例

前段时间写了个安卓平台下SQLite数据库操作的实例 ,一直没得时间总结 ,今天把它弄出来了. 在Android 运行时环境包含了完整的 SQLite. 首先介绍一下SQLite这个数据库: SQLite,是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了.它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tc

android中SQLite数据库的增删改查

1.数据库帮助类PersonSQLiteOpenHelper package com.wzw.sqllitedemo.db; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteDatabase.CursorFactory; import android.database.sqlite.SQLiteOpenHelper

C# SQLite 数据库操作

C# SQLite 数据库操作学习 运行环境:Window7 64bit,.NetFramework4.61,C# 7.0: 编者:乌龙哈里 2017-03-19 参考: SQLite 官网 SQL As Understood By SQLite System.Data.SQLite 菜鸟教程 SQL 教程 章节: 1.下载安装 2.数据类型 3.创建数据库 4.删除数据库 5.创建表 6.删除表 7.查询表结构 8.更改表名 9.增加列(字段) 10.读取创建表的 SQL 语句 11.更改列名

用Python进行SQLite数据库操作

用Python进行SQLite数据库操作 -----转自:http://www.cnblogs.com/yuxc/archive/2011/08/18/2143606.html 简单的介绍 SQLite数据库是一款非常小巧的嵌入式开源数据库软件,也就是说没有独立的维护进程,所有的维护都来自于程序本身.它是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了.它能够支持Windows/L

android中的数据库操作(转)

android中的数据库操作 android中的应用开发很难避免不去使用数据库,这次就和大家聊聊android中的数据库操作. 一.android内的数据库的基础知识介绍 1.用了什么数据库   android中采用的数据库是SQLite这个轻量级的嵌入式开源数据库,它是用c语言构建的.相关简介可以从链接查看. 2.数据库基本知识观花   对于一些和我一样还没有真正系统学习数据库技术的同学来说,把SQL92标准中的一些基本概念.基本语句快速的了解一下,是很有必要的,这样待会用Android的da

跟我学Android之十三 SQLite数据库操作

本章内容 第1节  SQLite数据库概述 第2节  SQLite建库建表 第3节 管理数据库连接 第4节  操作数据库数据 第5节  数据绑定 本章目标 掌握SQLite数据的基本特点与工具使用. 熟练掌握SQLite建库建表的方法. 熟练掌握连接SQLite数据库的方法. 熟悉SQLite数据库的升级与建立方法. 掌握通过数据绑定完成数据显示的方法. SQLite数据库简介 SQLite是一种非常流行的嵌入式数据库,是由C语言编写而成,是一款轻型关系型数据库,支持SQL,支持多种操作系统,完

【Android】实验8 SQLite数据库操作2016.5.13

实验8  SQLite数据库操作 [目的] 设计一个个人通讯录,掌握Android平台下的数据库开发,该个人通讯录主要包括联系人列表和联系人详细信息等界面. [要求] 程序主界面是通讯录的目录显示手机上联系人的名称.点击联系人的姓名可以显示联系人的详细信息.在按了MEMU键之后会弹出菜单栏.单击菜单栏上的按钮可以添加联系人和删除联系人 [过程] (1)确定数据库的数据结构.本程序只要一张表,该表的内容及说明如下表所示 字段名称 数据类型 说明 字段名称 数据类型 声明 _id Integer 所

[python]用Python进行SQLite数据库操作

用Python进行SQLite数据库操作 1.导入Python SQLITE数据库模块 Python2.5之后,内置了SQLite3,成为了内置模块,这给我们省了安装的功夫,只需导入即可~ import sqlite3 2. 创建/打开数据库 在调用connect函数的时候,指定库名称,如果指定的数据库存在就直接打开这个数据库,如果不存在就新创建一个再打开. cx = sqlite3.connect("E:/test.db") 也可以创建数据库在内存中. con = sqlite3.c