OC中数据库操作

1.创建表格

+(sqlite3 *)getMySQL{

sqlite3 *mySQL;

//打开数据库,如果没有就创建

  //拼接路径

NSString *docPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];

NSString *filePath = [docPath stringByAppendingPathComponent:@"Worker.SQL"];

NSLog(@"%@",filePath);

//调用open方法

if (sqlite3_open([filePath UTF8String], &mySQL) != SQLITE_OK) {

NSLog(@"open error");

return 0;

}

NSLog(@"open OK");

//3.创建表的sql语句

NSString *createTableSql = @"create table if not exists Workers (id integer primary key autoincrement,name varchar(30),address varchar(40),image blob)";

char *errMsg = NULL;

  //写入数据库

if (sqlite3_exec(mySQL, [createTableSql UTF8String], NULL, NULL, &errMsg)) {

NSLog(@"%s",errMsg);

return 0;

}

NSLog(@"create table ok");

return mySQL;

}

2.表格里插入语句

+(void)insertSqlWithName:(NSString *)name Address:(NSString *)address Image:(UIImage *)image{

sqlite3 *database = [SQLFactory getMySQL];

NSString *insertSql = @"insert into Workers(name,address,image) values(?,?,?)";

sqlite3_stmt *statement;

if (sqlite3_prepare_v2(database, [insertSql UTF8String], -1, &statement, NULL) != SQLITE_OK) {

NSLog(@"insert prepare error");

return;

}else{

NSLog(@"insert prepare OK");

NSData *imgData = UIImagePNGRepresentation(image);

sqlite3_bind_text(statement, 1, [name UTF8String], -1, NULL);

sqlite3_bind_text(statement, 2, [address UTF8String], -1, NULL);

sqlite3_bind_blob(statement, 3, [imgData bytes], (int)imgData.length, NULL);

if (sqlite3_step(statement) != SQLITE_DONE) {

NSLog(@"执行插入语句失败");

}else{

NSLog(@"执行插入语句成功");

}

}

}

3,读取数据

+(NSMutableArray *)showSqlWithSeletType:(NSString *)selectType{

NSMutableArray *workerModelsArray = [NSMutableArray array];

sqlite3 *sql = [SQLFactory getMySQL];

sqlite3_stmt *statement;

if (sqlite3_prepare_v2(sql, [selectType UTF8String], -1, &statement, NULL) != SQLITE_OK) {

NSLog(@"read prepare error");

return 0;

}else{

NSLog(@"read prepare OK");

while (sqlite3_step(statement) == SQLITE_ROW) {

WorkerModel *model = [[WorkerModel alloc]init];

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

model.workerName = [NSString stringWithUTF8String:name];

char *address = (char *)sqlite3_column_text(statement, 2);

model.workerAddress = [NSString stringWithUTF8String:address];

Byte *bytes = (Byte *)sqlite3_column_blob(statement, 3);

int length = sqlite3_column_bytes(statement, 3);

NSData *imgData = [NSData dataWithBytes:bytes length:length];

UIImage *img = [UIImage imageWithData:imgData];

model.workerIconImage = img;

[workerModelsArray addObject:model];

}

}

return workerModelsArray;

}

时间: 2024-10-31 09:47:59

OC中数据库操作的相关文章

面向对象中数据库操作类

具体实现功能: 1.连接数据库: 2.插入数据: 3.更新数据: 4.删除数据' 5.修改数据: 6.求最大值: 7.求最小值: 8.求平均数: 9.求和: 10.指定查询: 具体代码分为三个部分: 一.config文件:主要用于连接数据库 <?php return array( 'DB_HOST' => '127.0.0.1',   //主机 'DB_USER' => 'root', //用户名 'DB_PWD' => '123456', //密码 'DB_NAME' =>

【discuzX2】/source/class/class_core.php文件中数据库操作类DB及db_mysql分析

<?php /** * Discuz MySQL 类的支持 程序中一般不直接使用此类,而是使用DB类,DB类对db_mysql类中的方法又进行了二次封装 * */ class db_mysql { var $tablepre; var $version = ''; var $querynum = 0; var $slaveid = 0; var $curlink; var $link = array(); var $config = array(); var $sqldebug = array(

2.关于QT中数据库操作,简单数据库连接操作,数据库的增删改查,QSqlTableModel和QTableView,事务操作,关于QItemDelegate 代理

 Linux下的qt安装,命令时:sudoapt-get install qt-sdk 安装mysql数据库,安装方法参考博客:http://blog.csdn.net/tototuzuoquan/article/details/39565783 如果行想进数据库开发,需要安装libqt5sql5-mysql.命令是: sudo apt-get install libqt5sql5-mysql 4 创建一个项目 要调用数据库,需要加上QT += gui widgets sql  也就是说要加

【转】ThinkPHP中数据库操作返回值总结

Thinkphp中的Think\Model类提供了数据库的基本CURD(Create.Update.Read及Delete),通过该类可以很便捷的进行操作.Model类及扩展类主要的方法有: Create操作:create()(非链式) .add().addAll()支持的链式操作有:table .data.field .relation .validate.auto .filter.scope .bind .token .comment Update操作save().setField().se

ThinkPHP中数据库操作返回值总结

转自:http://www.baiwar.com/post/thinkphp-database-operations-in-the-return-value.html Thinkphp中的Think\Model类提供了数据库的基本CURD(Create.Update.Read及Delete),通过该类可以很便捷的进行操作.Model类及扩展类主要的方法有: Create操作:create()(非链式) .add().addAll()支持的链式操作有:table .data.field .rela

第7章JSP中数据库操作

7.1 JDBC介绍 7.1.1 什么是JDBC      JDBC全称为Java DataBase Connectivity,两组分别面向应用程序开发人员和数据库驱动程序开发人员的应用程序接口 (Application Programming Interface,API),以及将前者向后者转化的内在封装逻辑     JDBC是一个面向对象的应用程序接口(API),通过它可访问各类关系数据库.JDBC也是java核心类库的一部分,由一些Java语言编写的类和界面组成.JDBC为数据库应用开发人员

浅谈.net中数据库操作事务

.net中的事务 关键几点 概念:1:什么是事务 2:什么时候用事务 3:基本的语法 (1): 事务(Transaction)是访问并可能更新数据库中各种数据项的一个程序执行单元(unit).事务通常由高级数据库操纵语言或编程语言(如SQL,C++或Java)书写的用户程序的执行所引起,并用形如begin transaction和end transaction语句(或函数调用)来界定.事务由事务开始(begin transaction)和事务结束(end transaction)之间执行的全体操

OC中iO操作相关方法

NSDictionary *dic = [NSBundle mainBundle].infoDictionary; //读取项目配置的plist文件,可以获取系统版本,系统启动图片等等信息. NSFileManager - (BOOL)createDirectoryAtPath:(NSString *)path withIntermediateDirectories:(BOOL)createIntermediates attributes:(NSDictionary *)attributes e

android中的数据库操作(转)

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