SQLite基本操作-----IOS(如有雷同,纯属巧合)

一、常用方法

sqlite3          *db, 数据库句柄,跟文件句柄FILE很类似

sqlite3_stmt      *stmt, 这个相当于ODBC的Command对象,用于保存编译好的SQL语句
sqlite3_open(),   打开数据库,没有数据库时创建。
sqlite3_exec(),   执行非查询的sql语句
Sqlite3_step(), 在调用sqlite3_prepare后,使用这个函数在记录集中移动。
Sqlite3_close(), 关闭数据库文件
还有一系列的函数,用于从记录集字段中获取数据,如
sqlite3_column_text(), 取text类型的数据。
sqlite3_column_blob(),取blob类型的数据
sqlite3_column_int(), 取int类型的数据

二、创建表

创建表的时候需要预处理和执行创建两个过程

执行创建的时多选择sqlite3_step

三、相关代码

1、打开或者创建数据库

sqlite3 *sqlDataBase;

-(BOOL)createOrOpen:(NSString *)dbName

{

//获取用户域覆径信息

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentationDirectory, NSUserDomainMask, YES);

NSString *documentsDirectory = [paths objectAtIndex:0];

/**

*Users/admin/Library/Application Support/iPhone Simulator/7.1/Applications/8E23557E-AAA6-471A-AAFE-E036BF1B7E4C/Library/Documentation

*判断用户域是否有数据库dbNmae

*/

NSString *path = [documentsDirectory stringByAppendingPathComponent:dbName];

NSFileManager *fileManageer = [NSFileManager defaultManager];

//如果用户域内有该数据库,则返回yes,否则返回NO

BOOL find = [fileManageer fileExistsAtPath:path];

if(find)   //对找到进行处理,如果找到了,并且打开了,则返回yes

{

//打开该数据库,如果打开失败,则返回NO,否则返回yes

if(sqlite3_open([path UTF8String], &sqlDataBase)!= SQLITE_OK)

{

//关闭sqlDataBase,实际是释放了它

sqlite3_close(sqlDataBase);

return NO;

}

return YES;

}

NSLog(@"%d",sqlite3_open([path UTF8String], &sqlDataBase));

//创建数据库,创建返回yes,并且打开数据库,否则返回NO

if(sqlite3_open([path UTF8String], &sqlDataBase)==SQLITE_OK)

{

return YES;

}else

{

//关闭sqlDataBase,实际是释放了它

sqlite3_close(sqlDataBase);

return NO;

}

return NO;

}

2、插入数据

//向表中插入数据

-(void)insertMBkey:(NSString *)key

{

BOOL isOK = NO;

sqlite3_stmt *statement;

static char *sql = "INSERT INTO user VALUES (‘1‘, ‘Bill‘, ‘河南‘, ‘ssss‘,‘2‘)";

int success = sqlite3_prepare_v2(sqlDataBase, sql, -1, &statement, NULL);

if(success !=SQLITE_OK)

{

isOK = NO;

}else

{

sqlite3_bind_text(statement, 1, [key UTF8String], -1, SQLITE_TRANSIENT);

success = sqlite3_step(statement);

sqlite3_finalize(statement);

}

if(success ==SQLITE_ERROR)

{

isOK = NO;

}else

{

isOK=YES;

}

return;

}

3、查询数据

//查询数据

-(void)GetList:(NSMutableArray *)KeysList

{

BOOL  isOK = NO;

sqlite3_stmt *statement;

static char *sql = "select id,address from user";

int success = sqlite3_prepare_v2(sqlDataBase, sql, -1, &statement, NULL);

if(success !=SQLITE_OK)

{

isOK = NO;

}else

{

//查询结果集中一条一条地遍历所有记录,这里的数字对应的时列值

while (sqlite3_step(statement)==SQLITE_ROW) {

int kid = sqlite3_column_int(statement, 0);

char *key = (char  *)sqlite3_column_text(statement, 1);

UserInfo *userModel = [[UserInfo alloc] init];

userModel.userId =kid;

if (key) {

userModel.userAddress = [NSString stringWithUTF8String:key];

}

[KeysList addObject:userModel];

sqlite3_finalize(statement);

}

NSLog(@"%@",KeysList);

if(success==SQLITE_ERROR)

{

isOK = NO;

}else

{

isOK = YES;

}

return;

}

}

SQLite基本操作-----IOS(如有雷同,纯属巧合)

时间: 2024-08-29 03:55:30

SQLite基本操作-----IOS(如有雷同,纯属巧合)的相关文章

瑞柏匡丞——选择合适的程序“猿”(个人简介,如有雷同,纯属巧合)

在互联网时代,花样繁多的软件,网站的层出不穷,因而所需要的技术人才也就相应变得炙手可热.程序员往往在新媒体开发中担当着重要的角色.瑞柏匡丞在这跟大家分享一下在程序员选择上的一点经验. 一个优秀的程序员,首当其冲的条件便是扎实的基础.数据结构.离散数学.编译原理,这些是所有计算机科学的基础,如果不掌握它们,很难写出高水平的程序.倘若基础不够扎实,一旦开发难度到了一定的高度,很可能因为一些简单的算法而被拦住. 除去好的算法,不断的学习和追求答案的韧劲也非常重要.习惯阅读和尝试新鲜的事物,学习其优点和

IOS SQLite基本操作

再所有操作之前先添加libsqlite这个库以及引入sqlite3.h头文件 一,创建数据库打开数据库,关闭数据库 NSString *sqlPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject]; sqlPath = [_sqlPath stringByAppendingPathComponent:@"students.sqlite"]; s

iOS数据库SQLite基本操作

数据库操作几点建议: 注意sql执行语句的字符串的拼写.(一定要注意拼写,深受其害  T_T  ) Obj-C中SQLite常用函数. (没几个,sqlite3_open,sqlite3_close,sqlite3_exec,sqlite3_perpare_v2,sqlite3_step,sqlite3_column_*,……)(外加两个对象:sqlite,sqlite_stmt) SQLite语法.(一般的数据库操作都一样) 如果做大一点的项目的话,数据库操作还是尽可能的封装吧. 善用搜索.(

SQLite基本操作总结

sqlite提供的是一些C函数接口,你可以用这些函数操作数据库.通过使用这些接口,传递一些标准 sql 语句(以 char * 类型)给 sqlite 函数,sqlite 就会为你操作数据库.sqlite 跟MS的access一样是文件型数据库,就是说,一个数据库就是一个文件,此数据库里可以建立很多的表,可以建立索引.触发器等等,但是,它实际上得到的就是一个文件.备份这个文件就备份了整个数据库. sqlite 不需要任何数据库引擎,这意味着如果你需要 sqlite 来保存一些用户数据,甚至都不需

Android的SQLite基本操作

涉及SQLite的增删改查,结果用log显示 package com.example.sqlconnecttest; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteDatabase.CursorFactory; import android.database.sqlite.SQLiteOpenHelper; im

练习一:SQLite基本操作

一.基础知识: 运用场景: 1>应用运行需要保存一系列有一定关系有一定结构的数据(文本也可以但是存储效率低) 2>文件类型:.db(一个数据库就是一个.db文件) 3>路径:/data/data/projectPackage/databases/xxx.db 4>默认其他应用不能访问 5>应用卸载时会删除数据 SQLite: 一款轻型关系数据库服务器,安装文件小(几百k,嵌入Android),支持多操作系统,支持多语言,处理速度快. 二.Android单元测试: 1.测试类继

SQLite基本操作

1.创建一个数据库,并且打开 SQLite db = OpenOrCreateDatabase("user.db",MODE_PRIVATE,null); 2.创建一个表 db.execSQL("create table Book(_id integer primary key autoincrement,author text,price real,pages integer ,name text)"); 3.插入数据 SQLiteDatabase db = db

android Sqlite基本操作

新建一个类(ex:UserDBHelper)继承SQLiteOpenHelper 构造函数里面建数据库 public UserDBHelper(Context context, int version) { super(context, DB_NAME,null,version); } onCreate方法里面建表 /** * 只在数据库生成的时候调用,一般我们会在 * 这个方法里建表 * @param sqLiteDatabase */ @Override public void onCrea

【转】C# 对sqlite基本操作,带批量插入

原文地址:https://download.csdn.net/download/mic_gary/10154869 public class SQLiteHelper { //数据库连接字符串 public static string connectionString; public SQLiteHelper() { } #region 公用方法 public static int GetMaxID(string FieldName, string TableName) { string str