首頁 資料庫 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教學
1664
14
CakePHP 教程
1422
52
Laravel 教程
1316
25
PHP教程
1267
29
C# 教程
1239
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