IOS Sqlite3和db中的数据库

时间:2013-05-07 10:48:55

标签: iphone ios database sqlite

我正在学习iOS数据库中的一些概念......我发现sqlite3(开源)用于数据库, 但是我正在阅读一些github代码...

并遇到这两行:

NSString *sqLiteDb = [[NSBundle mainBundle] pathForResource:@"banklist" 
        ofType:@"sqlite3"]

 NSString *databaseFilename =@"abc.db"
  1. 您能否告诉我在哪里使用sqlite3以及db
  2. 你能否为我提供一些很好的链接来学习iOS的数据库(当我在textedit中打开db文件时从示例项目中我无法理解它?)
  3. 如何打开db文件和sqlite文件?
  4. iOS中是否有可用于读取这些数据库文件的免费工具?

4 个答案:

答案 0 :(得分:5)

你问:

  

您能告诉我在哪里使用sqlite3db

您可以使用任一扩展程序。没关系。通常使用sqlite(不含3)和db

  

你能为我提供一些学习iOS数据库的好链接

Google“ios sqlite tutorial”

我一般喜欢Ray Wenderlich教程,他的SQLite教程在这里:SQLite 101 for iPhone Developers: Making Our App。我对该教程的唯一批评是,我不喜欢他从捆绑包中打开数据库的事实。在打开Documents文件夹中的数据库之前,应始终先将数据库从bundle复制到Documents文件夹。

  

如何打开db文件和sqlite文件

您以相同的方式打开数据库(即,传统上使用dbsqlite扩展名的文件)。它是同一种文件,只是一个不同的扩展名。一般过程是:

  • 在您的mac上创建数据库,并将其包含在项目和结果包中。然后,以编程方式检查Document文件夹中是否已存在数据库,如果没有,则从bundle复制到Documents文件夹(如果这样做,您可能希望sqlite3_open_v2SQLITE_OPEN_READWRITE一起使用选项,但不是SQLITE_OPEN_CREATE选项,因此如果找不到数据库,则不会创建数据库);或

  • 以编程方式创建数据库:(a)检查文档是否存在,如果不存在,则创建数据库(sqlite3_open_v2使用SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE选项或仅sqlite3_open (默认情况下使用这两个选项))然后执行SQL CREATE语句;或者(b)如果它已经存在于Documents文件夹中,只需使用它即可。

如果你浏览了你找到的各种教程,他们会引导你走近或接近或者接近。这两种技术都是有效的。

  

iOS中是否有可用于读取这些数据库文件的免费工具

我认为没有iOS工具(因为应用程序会在各自的沙箱中保留其文件(以及数据库只是一种文件类型),因此一个应用程序无法在另一个应用程序的Documents文件夹中打开数据库)。但是在开发过程中会使用很多Mac工具。

  • sqlite3命令行界面中提供的Terminal程序。

  • 我使用Base,一个不错的,相当基本的工具

  • 我认为很多人都使用FireFox SQLite Manager工具


您没有问,但如果您正在开始SQLite开发,使用FMDB可以极大地简化您的Objective-C代码。如果我没有注意到Core Data是iOS开发的首选数据库技术,那将是我的疏忽。使用SQLite(例如通过FMDB)可能有令人信服的理由,但Apple设计了丰富的Core Data框架,这对于仅支持iOS的应用程序具有一些优势。它有点复杂,但有一些优点。

答案 1 :(得分:2)

让!我试着逐一回答你的所有问题

1.以下行

NSString *sqLiteDb = [[NSBundle mainBundle] pathForResource:@"banklist" 
        ofType:@"sqlite3"]

表示我们将创建 banklist.sqlite3 文件来存储我们的数据库。


2.我们使用sqlite数据库,每当我们需要在本地存储应用程序的信息时,它都可以作为您的选择。


3. 为了学习sqlite,我创建了简单的一步一步的教程,带有示例代码

  

SQLIte in iPhone Tutorial

我建议你好!阅读并自己完成,你将得到你的问题的所有答案。


4.用于阅读或编辑我使用一个开源工具名称“ sqlite browser ” 您可以从here

下载

5.您可以找到您的应用程序db文件,并使用我提到的工具打开。 这是您可以在系统中找到的db文件路径。

注意:这只是您的应用路径的参考,但会以不同的方式

/ Users / RDCMac / Library / Application Support / iPhone  模拟器/ 6.1 /应用/ 0975F545-E4D2-40E8-97C6-0EA7F8995315 /文档/ contacts.db

-----------------

请!如果您需要任何帮助,请告诉我,很高兴帮助!!

答案 2 :(得分:1)

A.1。您可以随意命名文件。但保持.sqlite3的扩展更合理。 根据上面的例子,可能会发生两件事。在第一种情况下,对于iPhone应用程序,可以在项目包中添加数据库文件,并在应用程序中使用该数据库。该数据库是只读的。

或者,在第二种情况下,您可以在应用中存储和修改数据。在这种情况下,您命名一个sqlite文件,稍后在数据库操作中操作该文件。通常,此数据库文件应存储在设备的文档文件夹中。 此外,coredata可以使用sqlite文件存储并对数据库文件进行操作。

在捆绑包中具有可修改数据库的有用技术是在第一次运行时将数据库复制到文档文件夹。请记住,捆绑中的任何内容都不可修改。

A.3。您可以使用firefox插件打开,创建和修改sqlite文件。 https://addons.mozilla.org/En-us/firefox/addon/sqlite-manager/

A.4。不清楚。你想要像iOS的第三个问题。

答案 3 :(得分:0)

1)sqlite3是用于sqlite数据库文件的扩展。 db通常用于数据库文件。您可以使用sqlite3或db。这没有问题。

参考:SO

2)教程:

3)要打开db或sqlite文件,您可以使用任何sqlite工具。

4)SQLite Manager是firefox的免费插件。这是一个用于创建sqlite数据库的便利工具