-2

我正在学习iOS数据库中的一些概念......我知道sqlite3(开源)用于数据库,但我正在浏览一些github代码......

并遇到这两行:

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

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

4 回答 4

5

您问:

你能告诉我我们将在sqlite3哪里使用吗?db

您可以使用任一扩展名。没关系。两者sqlite(没有 3)和db都是常用的。

你能不能也给我一些好的链接来学习 iOS 的数据库

谷歌“ios sqlite 教程”

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

如何打开 db 文件和 sqlite 文件

您以相同的方式打开数据库(即文件,通常带有dbsqlite扩展名)。这是同一种文件,只是扩展名不同。一般过程是:

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

  • 通过以下方式以编程方式创建数据库: (a) 检查它是否存在于 Documents 中,如果不存在,则创建数据库(使用sqlite3_open_v2选项SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE或仅sqlite3_open(默认使用这两个选项)),然后执行 SQLCREATE语句;或 (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 的应用程序具有一些优势。它有点复杂,但有一些优点。

于 2013-05-07T11:03:34.810 回答
2

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

1.下面一行

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

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


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


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

iPhone 中的 SQLIte 教程

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


4.用于阅读或编辑我使用一个开源工具名称“ sqlite浏览器”你可以从这里下载


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

注意:这只是一个参考,您的应用程序路径会有所不同但方式相同

/Users/RDCMac/Library/Application Support/iPhone Simulator/6.1/Applications/0975F545-E4D2-40E8-97C6-0EA7F8995315/Documents/contacts.db

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

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

于 2013-05-07T11:23:00.530 回答
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 的第三个问题吗?

于 2013-05-07T10:57:17.007 回答
0

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

参考:SO

2)教程:

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

4) SQLite Manager是 Firefox 的免费插件。哪个是创建 sqlite 数据库的便捷工具

于 2013-05-07T11:04:49.257 回答