首页 数据库 mysql教程 sqlite的创建数据库,表,插入查看数据

sqlite的创建数据库,表,插入查看数据

Jun 07, 2016 pm 03:23 PM
ios sql 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

sqlite的创建数据库,表,插入查看数据

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

  1. #import 
  2. #import 
  3. @interface ViewController : UIViewController
  4. {
  5.     sqlite3 *db;
  6. }
  7. @end

在.m文件 定义宏,方面后面使用

[cpp] view plain copy

  1. #define DBNAME    @”personinfo.sqlite”
  2. #define NAME      @”name”
  3. #define AGE       @”age”
  4. #define ADDRESS   @”address”
  5. #define TABLENAME @”PERSONINFO”

[cpp] view plain copy

  1. NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
  2.  NSString *documents = [paths objectAtIndex:0];
  3.  NSString *database_path = [documents stringByAppendingPathComponent:DBNAME];
  4.  if (sqlite3_open([database_path UTF8String], &db) != SQLITE_OK) {
  5.      sqlite3_close(db);
  6.      NSLog(@”数据库打开失败”);
  7.  }

sqlite3_open,如果数据不存在,则创建。运行。这是在沙盒目录下能看到数据库文件(如何打开模拟器沙盒目录请参考:IOS学习之IOS沙盒(sandbox)机制和文件操作(一))

sqlite的创建数据库,表,插入查看数据

 

4、创建数据表

创建一个独立的执行sql语句的方法,传入sql语句,就执行sql语句

[cpp] view plain copy

  1. -(void)execSql:(NSString *)sql
  2. {
  3.     char *err;
  4.     if (sqlite3_exec(db, [sql UTF8String], NULL, NULL, &err) != SQLITE_OK) {
  5.         sqlite3_close(db);
  6.         NSLog(@”数据库操作数据失败!”);
  7.     }
  8. }

创建数据表PERSONINFO的语句

[cpp] view plain copy

  1. NSString *sqlCreateTable = @”CREATE TABLE IF NOT EXISTS PERSONINFO (ID INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER, address TEXT)”;
  2.     [self execSql:sqlCreateTable];

运行程序,数据表创建了。怎么知道数据表创建了呢?我们用火狐的Sqlite Manager插件工具打开数据库文件看看。可以在火狐浏览器里安装这个插件。打开sqlite的创建数据库,表,插入查看数据

四个字段都出现是表中了。

5、插入数据:

[cpp] view plain copy

  1. NSString *sql1 = [NSString stringWithFormat:
  2.                      @"INSERT INTO '%@' ('%@', '%@', '%@') VALUES ('%@', '%@', '%@')",
  3.                      TABLENAME, NAME, AGE, ADDRESS, @"张三", @"23", @"西城区"];
  4.     NSString *sql2 = [NSString stringWithFormat:
  5.                       @"INSERT INTO '%@' ('%@', '%@', '%@') VALUES ('%@', '%@', '%@')",
  6.                       TABLENAME, NAME, AGE, ADDRESS, @"老六", @"20", @"东城区"];
  7.     [self execSql:sql1];
  8.     [self execSql:sql2];

运行程序,插入两条数据,用火狐的sqlite工具查看sqlite的创建数据库,表,插入查看数据

6、查询数据库并打印数据

[cpp] view plain copy

  1. NSString *sqlQuery = @”SELECT * FROM PERSONINFO”;
  2.    sqlite3_stmt * statement;
  3.    if (sqlite3_prepare_v2(db, [sqlQuery UTF8String], -1, &statement, nil) == SQLITE_OK) {
  4.        while (sqlite3_step(statement) == SQLITE_ROW) {
  5.            char *name = (char*)sqlite3_column_text(statement, 1);
  6.            NSString *nsNameStr = [[NSString alloc]initWithUTF8String:name];
  7.            int age = sqlite3_column_int(statement, 2);
  8.            char *address = (char*)sqlite3_column_text(statement, 3);
  9.            NSString *nsAddressStr = [[NSString alloc]initWithUTF8String:address];
  10.            NSLog(@”name:%@  age:%d  address:%@”,nsNameStr,age, nsAddressStr);
  11.        }
  12.    }
  13.    sqlite3_close(db);

打印结果:

[cpp] view plain copy

  1. 2012-06-29 13:25:32.205 sqlitDemo[3587:f803] name:张三  age:23  address:西城区
  2. 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

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

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

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1663
14
CakePHP 教程
1419
52
Laravel 教程
1313
25
PHP教程
1264
29
C# 教程
1237
24
更新 |黑客解释如何在欧盟以外的 iPad 上安装 Epic Games Store 和 Fortnite 更新 |黑客解释如何在欧盟以外的 iPad 上安装 Epic Games Store 和 Fortnite Aug 18, 2024 am 06:34 AM

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

苹果发布用于同态加密的开源 Swift 软件包,已部署在 iOS 18 中 苹果发布用于同态加密的开源 Swift 软件包,已部署在 iOS 18 中 Jul 31, 2024 pm 01:10 PM

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

苹果 iOS 18 和 iPadOS 18 公测版 Beta 2 更新发布 苹果 iOS 18 和 iPadOS 18 公测版 Beta 2 更新发布 Jul 30, 2024 pm 04:19 PM

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

苹果 iPhone 16 预装 Apple Intelligence 没戏了 苹果 iPhone 16 预装 Apple Intelligence 没戏了 Jul 30, 2024 pm 01:18 PM

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

苹果向旧款 iPhone / iPad 发布 iOS / iPadOS 16.7.9 和 15.8.3 更新:修复安全漏洞 苹果向旧款 iPhone / iPad 发布 iOS / iPadOS 16.7.9 和 15.8.3 更新:修复安全漏洞 Jul 30, 2024 am 10:13 AM

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

iOS 18.1 来了,通话录音上线! iOS 18.1 来了,通话录音上线! Jul 30, 2024 pm 09:35 PM

今天凌晨,苹果向开发者推送了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(不同机型更新包大小略有差异)|更

苹果 iOS / iPadOS 18 开发者预览版 Beta 7 发布 苹果 iOS / iPadOS 18 开发者预览版 Beta 7 发布 Aug 21, 2024 am 07:41 AM

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

苹果 iOS / iPadOS 18.1 开发者预览版 Beta 2 发布:简化 Photos、增强 Safari 分心控制等 苹果 iOS / iPadOS 18.1 开发者预览版 Beta 2 发布:简化 Photos、增强 Safari 分心控制等 Aug 13, 2024 am 11:38 AM

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

See all articles