sqlite--代码操作
1.创建数据库
NSString * docPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)lastObject];
NSLog(@"%@",docPath);
NSString * filePath = [docPath stringByAppendingPathComponent:@"stu.sql"];
if (sqlite3_open([filePath UTF8String], &_mySQL)!=SQLITE_OK) {
NSLog(@"open error");
return 0;
}
NSLog(@"open ok");
2.创建表
NSString *createTablesql = @"create TABLE IF NOT EXISTS Student (id integer primary key autoincrement,name varchar(20),address varchar(20),icon blob)";
char *error = nil;
if (sqlite3_exec(_mySQL, [createTablesql UTF8String], nil, nil, &error)!=SQLITE_OK) {
NSLog(@"creat table error");
return 0;
}
NSLog(@"creat table ok");
3.插入数据
NSString *insertSql = @"insert into Student (name,address,icon) values (?,?,?)";
sqlite3_stmt *statement;
if (sqlite3_prepare_v2(mysql, [insertSql UTF8String], -1, &statement, NULL) != SQLITE_OK) {
NSLog(@"insert prepare error");
return;
}else{
NSLog(@"insert prepare ok");
NSData * imageData = UIImagePNGRepresentation(self.iconImageView.image);
sqlite3_bind_text(statement, 1, [_nameTextField.text UTF8String], -1, NULL);
sqlite3_bind_text(statement, 2, [_addTextField.text UTF8String], -1, NULL);
sqlite3_bind_blob(statement, 3, [imageData bytes], (int)[imageData length], NULL);
if(sqlite3_step(statement)!=SQLITE_DONE){
NSLog(@"insert error");
}else{
NSLog(@"insert ok");
}
}
sqlite3_finalize(statement);
4.查询数据
NSString *selectSql = @"select * from Student";
sqlite3_stmt *statement;
if (sqlite3_prepare_v2(mysql, [selectSql UTF8String], -1, &statement, NULL) != SQLITE_OK) {
NSLog(@"read prepare error");
return;
}else{
NSLog(@"read prepare ok");
while (sqlite3_step(statement)==SQLITE_ROW) {
Student * stu = [[Student alloc]init];
char * name = (char *)sqlite3_column_text(statement, 1);
char * address = (char *)sqlite3_column_text(statement, 2);
Byte * bytes = (Byte *)sqlite3_column_blob(statement, 3);
int length = sqlite3_column_bytes(statement, 3);
NSData * data = [NSData dataWithBytes:bytes length:length];
UIImage * image = [UIImage imageWithData:data];
stu.name = [NSString stringWithUTF8String:name];
stu.address = [NSString stringWithUTF8String:address];
stu.icon = image;
[_studentArray addObject:stu];
}
}
sqlite--代码操作的更多相关文章
- Unity3D连接sqlite数据库操作C#版
unity3d有自己对应的sqlite.dll分别需要三个文件 1.Mono.Data.Sqlite.dll 在unity安装文件“Unity\Editor\Data\MonoBleedingEdge ...
- 实验8 SQLite数据库操作
实验报告 课程名称 实验8 SQLite数据库操作 实验日期 2016.5.6 实验项目名称 多媒体应用开发 实验地点 S30010 实验类型 □验证型 √设计型 □综合型 学 时 一 ...
- 我的Android六章:Android中SQLite数据库操作
今天学习的内容是Android中的SQLite数据库操作,在讲解这个内容之前小编在前面有一篇博客也是讲解了SQLite数据库的操作,而那篇博客的讲解是讲述了 如何在Window中通过DOM来操作数据库 ...
- SQLite CRUD操作
SQLite CRUD操作代码实例: 1:首先创建一个继承了SQLiteOpenHelper类的MyDatabaseHelper类.实现他的onCreate(SQLiteDatabase db) on ...
- iOS 中SQLite数据库操作
在iOS中实现SQLite数据库的操作:1.导入框架(libsqlite3.0.tbd) 2.导入头文件<sqlite3.h> 3.实现数据的增删改查 实现简单 SQLite数据库操作 的 ...
- 安卓SQLite数据库操作,半小时开发新闻管理系统,纯干货
本教程致力于可以快速的学习安卓软件开发,希望能通过一系列自己手写的教程,帮助正在学习或想要学习安卓开发的同仁. 本教程由今日头条-全栈攻城狮号首发,都是一个字一个字码的.请尊重劳动成果,转载请注明出处 ...
- 实验八 sqlite数据库操作
实验报告 课程名称 基于Android平台移动互联网开发 实验日期 2016年5月3日 实验项目名称 SQLite数据库操作 实验地点 S30010 实验类型 □验证型 √设计型 □综合型 ...
- windows phone 8.1开发SQlite数据库操作详解
原文出自:http://www.bcmeng.com/windows-phone-sqlite1/ 本文小梦将和大家分享WP8.1中SQlite数据库的基本操作:(最后有整个示例的源码)(希望能通过本 ...
- 【Android】实验8 SQLite数据库操作2016.5.12
实验8 SQLite数据库操作 [目的] 设计一个个人通讯录,掌握Android平台下的数据库开发,该个人通讯录主要包括联系人列表和联系人详细信息等界面. [要求] 程序主界面是通讯录的目录显示手机 ...
- SQLite C++操作类
为了方便SQLite的使用,封装了一个SQLite的C++类,同时支持ANSI 和UNICODE编码.代码如下: 头文件(SQLite.h) [cpp] view plaincopy /***** ...
随机推荐
- angular 引入 component 报错
每天抽出一些时间学习 Angular2 ,并准备把手头上的项目移植为 Angular2 , 不过今天又遇到了一些小问题. 准备写一个导航类适于管理后台常见的右边导航,如博客园的这种: ! 使用 g g ...
- [Python笔记]第一篇:基础知识
本篇主要内容有:什么是python.如何安装python.py解释器解释过程.字符集转换知识.传参.流程控制 初识Python 一.什么是Python Python是一种面向对象.解释型计算机程序设计 ...
- OC 代码规范
我们写出来的代码会给很多人看,为了使代码清晰简洁,方便阅读理解,都会统一遵从一定的代码规范,Objective-C同样如此. 主要参考规范: 1. Google Objective-C Sty ...
- Qt中 QString 和int, char等的“相互”转换,关键是QString.toLocal8Bit().data();
Qt中 int ,float ,double转换为QString 有两种方法 1.使用 QString::number(); 如: long a = 63; QString s = QString:: ...
- 【HDOJ】2585 Hotel
字符串水题. #include <cstdio> #include <cstring> #include <cstdlib> #define MAXN 55 cha ...
- 使用MapReduce将HDFS数据导入到HBase(二)
package com.bank.service; import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.conf. ...
- UVa 116: Undirectional TSP
简单动态规划题.用取模实现第一行与最后一行连续,注意取字典序即可. 我的解题代码如下: #include <iostream> #include <cstdio> #inclu ...
- BeanstalkClient学习
针对BeanstalkClient-1.4.6.jar 生产者 示例代码: package com.lky.test; import java.io.UnsupportedEncodingExcept ...
- Beanstalkd(ubuntu安装)
安装Beanstalkd # apt-get install beanstalkd Unubtu 开启beanstalkd的持久化选项 #vim /etc/default/beanstalkd 把S ...
- 组播MAC地址转换关系及唯一性处理
组播地址与其对应的组播MAC换算关系如下: 组播MAC=组播MAC标识+组播IP后23位对应的二进制位(32位的IP地址取后23位导致32组IP地址对应的多播IP相同) (IANA把01:00:5 ...