sqlite的创建数据库,表,插入查看数据
IOS sqlite数据库操作。步骤是: 先加入sqlite开发库libsqlite3.dylib, 新建或打开数据库, 创建数据表, 插入数据, 查询数据并打印 1、新建项目sqliteDemo,添加使用sqlite的库libsqlite3.dylib 2、sqlite 的方法 sqlite3 *db, 数据库句柄,跟文件句柄FILE
IOS sqlite数据库操作。步骤是:
先加入sqlite开发库libsqlite3.dylib,
新建或打开数据库,
创建数据表,
插入数据,
查询数据并打印
1、新建项目sqliteDemo,添加使用sqlite的库libsqlite3.dylib
2、sqlite 的方法
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类型的数据
3、获取沙盒目录,并创建或打开数据库。
viewController.h头文件添加一个成员变量,并包含头文件sqlite3.h
[cpp] view plain copy
-
#import
-
#import
- @interface ViewController : UIViewController
- {
- sqlite3 *db;
- }
- @end
在.m文件 定义宏,方面后面使用
[cpp] view plain copy
- #define DBNAME @”personinfo.sqlite”
- #define NAME @”name”
- #define AGE @”age”
- #define ADDRESS @”address”
- #define TABLENAME @”PERSONINFO”
[cpp] view plain copy
- NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
- NSString *documents = [paths objectAtIndex:0];
- NSString *database_path = [documents stringByAppendingPathComponent:DBNAME];
- if (sqlite3_open([database_path UTF8String], &db) != SQLITE_OK) {
- sqlite3_close(db);
- NSLog(@”数据库打开失败”);
- }
sqlite3_open,如果数据不存在,则创建。运行。这是在沙盒目录下能看到数据库文件(如何打开模拟器沙盒目录请参考:IOS学习之IOS沙盒(sandbox)机制和文件操作(一))
4、创建数据表
创建一个独立的执行sql语句的方法,传入sql语句,就执行sql语句
[cpp] view plain copy
- -(void)execSql:(NSString *)sql
- {
- char *err;
- if (sqlite3_exec(db, [sql UTF8String], NULL, NULL, &err) != SQLITE_OK) {
- sqlite3_close(db);
- NSLog(@”数据库操作数据失败!”);
- }
- }
创建数据表PERSONINFO的语句
[cpp] view plain copy
- NSString *sqlCreateTable = @”CREATE TABLE IF NOT EXISTS PERSONINFO (ID INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER, address TEXT)”;
- [self execSql:sqlCreateTable];
运行程序,数据表创建了。怎么知道数据表创建了呢?我们用火狐的Sqlite Manager插件工具打开数据库文件看看。可以在火狐浏览器里安装这个插件。打开
四个字段都出现是表中了。
5、插入数据:
[cpp] view plain copy
- NSString *sql1 = [NSString stringWithFormat:
- @"INSERT INTO '%@' ('%@', '%@', '%@') VALUES ('%@', '%@', '%@')",
- TABLENAME, NAME, AGE, ADDRESS, @"张三", @"23", @"西城区"];
- NSString *sql2 = [NSString stringWithFormat:
- @"INSERT INTO '%@' ('%@', '%@', '%@') VALUES ('%@', '%@', '%@')",
- TABLENAME, NAME, AGE, ADDRESS, @"老六", @"20", @"东城区"];
- [self execSql:sql1];
- [self execSql:sql2];
运行程序,插入两条数据,用火狐的sqlite工具查看
6、查询数据库并打印数据
[cpp] view plain copy
- NSString *sqlQuery = @”SELECT * FROM PERSONINFO”;
- sqlite3_stmt * statement;
- if (sqlite3_prepare_v2(db, [sqlQuery UTF8String], -1, &statement, nil) == SQLITE_OK) {
- while (sqlite3_step(statement) == SQLITE_ROW) {
- char *name = (char*)sqlite3_column_text(statement, 1);
- NSString *nsNameStr = [[NSString alloc]initWithUTF8String:name];
- int age = sqlite3_column_int(statement, 2);
- char *address = (char*)sqlite3_column_text(statement, 3);
- NSString *nsAddressStr = [[NSString alloc]initWithUTF8String:address];
- NSLog(@”name:%@ age:%d address:%@”,nsNameStr,age, nsAddressStr);
- }
- }
- sqlite3_close(db);
打印结果:
[cpp] view plain copy
- 2012-06-29 13:25:32.205 sqlitDemo[3587:f803] name:张三 age:23 address:西城区
- 2012-06-29 13:25:32.206 sqlitDemo[3587:f803] name:老六 age:20 address:东城区
最后关闭数据库。例子代码:http://download.csdn.net/detail/totogo2010/4400911
http://iosshare.cn/?p=1115

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

更新:Saunders Tech 已将教程上传到他的 YouTube 频道(下面嵌入视频),解释如何在欧盟境外的 iPad 上安装 Fortnite 和 Epic Games Store。然而,该过程不仅需要特定的 iO 测试版

7月31日消息,苹果公司昨日(7月30日)发布新闻稿,宣布推出新的开源Swift包(swift-homomorphic-encryption),用于在Swift编程语言中启用同态加密。注:同态加密(HomomorphicEncryption,HE)是指满足密文同态运算性质的加密算法,即数据经过同态加密之后,对密文进行特定的计算,得到的密文计算结果在进行对应的同态解密后的明文等同于对明文数据直接进行相同的计算,实现数据的“可算不可见”。同态加密技术可以计算加密数据,而且不会向操作过程泄露底层的未加

感谢网友末6_、嗯嗯嗯哼哼、吃猫的咸鱼、瑶池青莲、香辣鸡腿堡、思燕、蒂姆Apple的线索投递!7月30日消息,苹果今日面向iPhone和iPad用户推出了iOS18和iPadOS18公测版Beta2版本更新,距离上个公测版本过了两周时间。该公测版的更新内容类似开发者预览版Beta4,新增CarPlay壁纸、梳理设置选项、增强相机控制、深色/浅色模式图标等,具体可以看此前详细报道内容。##如何升级iOS/iPadOS/watchOS/macOS开发版和公测版?iOS/iPadOS升级iOS/iPa

根据业内人士MarkGurman的消息指出,苹果的AppleIntelligence将会跳票至10月份。也就是说将会在iOS18.1上首发推送。苹果iPhone16预计9月份发布,因此将不会预装AppleIntelligence。1.AppleIntelligenceAppleIntelligence是一套个人智能化系统,采用强大的生成式模型,旨在为iPhone、iPad和Mac提供新功能,辅助用户沟通、工作和表达。2.自然语言理解AppleIntelligence内嵌的大模型具备对语言含义的深

感谢网友吉茵珂丝的线索投递! 7月30日消息,苹果公司今天发布iOS/iPadOS18.1首个开发者测试版、iOS/iPadOS18第2个公测版之外,还面向旧款iPhone发布了iOS16.7.9和iOS15.8.3更新。苹果公司在两个版本更新日志中,均写道:“本更新提供了重要安全性修复,建议所有用户安装”,但并未提及修复了哪些内容。 iOS16.7.9注:iOS16.7.9适用于苹果iPhoneX、iPhone8以及iPhone8Plus三款机型,根据苹果官方披露的文档细节,上述三款机型预估将支持

今天凌晨,苹果向开发者推送了iOS18.1、iPadOS18.1、macOSSequoia15.1的首个开发者测试版。同时,苹果还推送了iOS17.6、iPadOS17.6、visionOS1.3、macOS14.6、tvOS17.6、watchOS10.6的正式版系统。iOS18.1Beta1终于上线了通话录音功能,在中国和欧盟以外的地区还上线了AppleIntelligence功能。iOS18.1Beta1的版本号为22B5007p,OTA升级大约637MB(不同机型更新包大小略有差异)|更

感谢网友瑶池青莲、DREAMM_、寂某人e的线索投递! 【点此直达升级教程】8月21日消息,苹果今日向iPhone和iPad用户推送了iOS/iPadOS18开发者预览版Beta7更新(内部版本号:22A5346a),本次更新距离上次发布Beta/RC间隔8天。苹果公司的Beta5、Beta6更新趋于稳定,未引入显着新功能(主要调整控制中心细节),苹果专注于修复BUG和改善体验,为9月正式发布做准备。因此,苹果今天发布的Beta7更新理论上应是iOS/iPadOS18的最后一个Beta版本更新,后

感谢网友kkkkkkkkkayd、束刀克狗、吉茵珂丝、DingHao、小贤的手抓饼、软媒新友2170538、最萌双马尾、景枫、Traccnn、寂某人e、Slades、Freddy123、末6 _的线索投递! 【点此直达升级教程】8月13日消息,苹果今日向iPhone和iPad用户推送了iOS/iPadOS18.1开发者预览版Beta2更新(内部版本号:22B5023e),本次更新距离上次发布Beta/ RC间隔7天。本地化AppleIntelligence语言扩充苹果在iOS18.1Beta2更新中扩
