如果你阅读过本主其他的 Swift 文章,你会发现我们是 Swift 服务器端开发的忠实拥护者。
今天我们将继续研究这个主题,使用 Vapor 封装的 MySQL wrapper 来操作 MySQL 数据库。
说明:这并不是一篇介绍 MySQL 或 SQL 的文章,如果你对数据库还不熟悉,网上有大量的教程可供学习。本篇我们将焦聚在 Linux 上使用 Swift 3.0 来操作 MySQL 数据库。
开始
在这篇教程中,我们采用 Ubuntu 16.04 系统和 MySQL 5.7。MySQL 5.7 引入了一系列的新特性。其中一个就是提供了更加高效的存储 JSON 数据的能力,同时提供了查询 JSON 数据内部的能力。稍后如果 MySQL 5.7 成为了 Ubuntu 16.04 上默认的 MySQL 版本以后,我们将使用 Ubuntu 16.04 作为我们的操作系统。
如果你还没有安装 Swift, 你可以使用 apt-get 方式来安装。参见这篇文章的说明安装。2016 年 9 月底,苹果也开始在 Ubuntu16.04 上编译 Swift 的镜像。请查看 Swift.org 获取更多的信息。
创建数据库
我们把数据库命名为 swift_test, 分配的用户是 swift, 密码是 swiftpass,如果你熟悉 MySQL,你应该知道需要执行 GRANT ALL ON swift_test.* 进行授权。
下面是这部分的命令:
# sudo mysql
...
mysql> create user swift;
Query OK, 0 rows affected (0.00 sec)
mysql> create database swift_test;
Query OK, 1 row affected (0.00 sec)
mysql> grant all on swift_test.* to 'swift'@'localhost' identified by 'swiftpass';
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> quit
Bye
创建 Swift 包
现在开始正式进行编码,首先创建一个包:
# mkdir swift_mysql
# swift package init --type executable
编写 Package.swift 文件:
import PackageDescription
let package = Package(
name: "swift_mysql",
dependencies:[
.Package(url:"https://github.com/vapor/mysql", majorVersion:1)
]
)
第二步,我们使用一些辅助的工具代码来生成一些随机的数据,填充到数据库中。
<