OHMySQL 3.3.0

OHMySQL 3.3.0

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布最后发布2023 年 9 月

Oleg Hnidets 维护。



OHMySQL 3.3.0

  • Oleg Hnidets

OHMySQL

License License CocoaPods Compatible Carthage Compatible Documentation

OHMySQL 可以连接到远程或本地 MySQL 数据库并执行 CRUD 操作。框架基于 MySQL C API,但您无需深入了解底层。以下图表表示一个通用架构。逻辑(保存、编辑、删除等)在应用程序中汇总。数据库只是一个共享存储。

⭐️ 每个星星都值得赞赏! ⭐️

功能

  • 支持 Swift 和 Objective-C
  • 只需要零散的 SQL 知识
  • 易于集成和使用
  • 许多功能特性
  • 最新的 MySQL 库
  • 文档支持

平台

平台 支持
iOS 14.0+
macOS 11.0+
macOS催化剂 14.0+
watchOS 8.0+
tvOS 15.0+

项目支持

我希望支持这个库并扩展API和功能。如果你给我一些钱💵,它会让我更有动力和快乐🙂你可以通过PayPal支持我,或者告诉我任何方便你的其他方式。

安装

阅读如何在项目中作为依赖项安装库的文档

用法

连接到数据库。

let user = MySQLConfiguration(userName: "root", 
                              password: "root", 
                            serverName: "localhost", 
                                dbName: "dbname", 
                                  port: 3306, 
                                socket: "/mysql/mysql.sock")

let coordinator = MySQLStoreCoordinator(user: user!)
coordinator.encoding = .UTF8MB4
coordinator.connect()

要结束连接

coordinator.disconnect()

查询上下文

要执行查询,您必须创建上下文

let context = MySQLQueryContext()
context.storeCoordinator = coordinator

执行查询

let dropQueryString = "DROP TABLE `MyTable`"
let dropQueryRequest = MySQLQueryRequest(queryString: dropQueryString)
try? context.execute(dropQueryRequest)

SELECT

响应包含字典数组。

let query = MySQLQueryRequestFactory.select("tasks", condition: nil)
let response = try? context.executeQueryRequestAndFetchResult(query)

INSERT

let query = MySQLQueryRequestFactory.insert("tasks", set: ["name": "Something", "desctiption": "new task"])
try? context.execute(query)

UPDATE

let query = MySQLQueryRequestFactory.update("tasks", set: ["name": "Something"], condition: "id=7")
try? context.execute(query)

删除

let query = MySQLQueryRequestFactory.delete("tasks", condition: "id=10")
try? context.execute(query)

连接 (JOINs)

你可以执行4种类型的连接 - INNERRIGHTLEFTFULL

let query = MySQLQueryRequestFactory.joinType(OHJoinInner, fromTable: "tasks", columnNames: ["id", "name", "description"], joinOn: ["subtasks": "tasks.id=subtasks.parentId"])
let result = try? context.executeQueryRequestAndFetchResult(query)

对象映射

您需要为您的模型实现 OHMappingProtocol 协议。该库只具有主要的映射逻辑,因此我建议您自己编写映射逻辑。如果您使用 Swift,则不能使用基本数字类型(IntDouble),只能使用 NSNumber(由于运行时原因)。

context.insertObject(task)
try? context.save()

您可以轻松地更新/删除对象。

let task = Task()
task.name = "sample"
context.updateObject(task)
context.deleteObject(task)

try? context.save()

通讯

授权

授权文件