您的位置:时时app平台注册网站 > 编程知识 > Swift3.0服务端开采(五) 记事本的付出(iOS端 服务

Swift3.0服务端开采(五) 记事本的付出(iOS端 服务

2019-11-08 01:35

本篇博客我们来聊聊MySQL数据库的连续几天与操作。假使您本地未有MySQL数据库的话,须要你先安装MySQL数据库。在Mac OS中应用brew包微处理机举办MySQL的设置是及其方便的。安装MySQL的命令为:brew install mysql。本篇博客大家就要选拔Perfect框架来一而再操作数据库了,首先大家需求创制八个测验数据库,然后在测量试验数据库中创建一张测量试验表用来增加和删除改查操作。

接下去网络央求的基类,全体与互连网须求相关的类都要继续从此类,下方的BaseRequest正是大家网络哀求的基类。该类比较简单,主要申明了地方定义的四个闭包类型的变量,然后提交了对应的构造器。具体如下所示。

  时时app平台注册网站 1

从那之后大家iOS顾客端的互联网诉求部分就封装完了,其余实际职业逻辑的互联网央浼调用上述的Request类就能够,稍后会用到Request。

  时时app平台注册网站 2

  时时app平台注册网站 3

1、对“增”的测试

 

(1)、InsertUserInfo()----"增"

 

1.创设数据库操作基类

 

1.引进信任库

  时时app平台注册网站 4

接下去大家就要调用上边的数据库操作类类操作实际数据库中的表了。在率先有个别大家早已创办好了test数据库,况且制造好了对应的user表。接下来我们就要动用Swift代码来对User表实行增加和删除改查操作了。

  时时app平台注册网站 5

 

  时时app平台注册网站 6

  时时app平台注册网站 7

 

 

前方以致时有时无的牵线了动用斯维夫特3.0开垦的服务端应用程序的Perfect框架。本篇博客就做贰个阶段性的下结论,做一个平安无事的实例,其实那几个实例在《Swift3.0服务端开采(风流倜傥)》那篇博客中意气风发度轻易的介绍过了,本篇博客就来详细的聊一下以此工程的切切实实贯彻细节。当然满含iOS端和服务端的代码。本篇博客的牵线顺序遵照成效模块来划分的,如登入注册模块、记事本列表,记事本的增加和删除改查等功用。在各类成效模块,大家先提交服务端代码的贯彻,然后交由客商端代码的贯彻。

  时时app平台注册网站 8

 

 

(2)、客商注册

2.使用Sequel Pro连接操作数据库

1.字符串常量、闭包回调类型以致枚举的定义

  时时app平台注册网站 9

首先我们先来定义一些装进互连网央求类要采纳的字符串常量甚至枚举闭包回调。下方代码段做的正是这件业务,第二个框中定义了深入分析响应数据时行使到的字符串常量。“SUCCESS”表示诉求成功,“FAILE”表示供给战败等等。

 

继之,我们提交需要成功后,对json数据的剖释以致对回到结果的管理。下方就是completionHandler闭包中的代码片段。首先对服务器重返的json数据开展剖判,拆解深入分析后将json数据转变到对应的数据类型。然后根据响应报文的result字段来进展对应的操作。如若报文响应日常,就调用success()闭包,否则调用failure()闭包,如下所示:

接下去我们将要测量检验一下updateUserInfo()这一个函数,该有的与上述的代码大概,也是亟需布署一个央浼方式为GET的翻新路由“/update”。然后在该路由中赢得诉求参数,然后调用updateUserInfo()这一个函数就可以。具体代码就不做过多废话了,直接看下方的测量检验结果吧。通过结果简单看出,顾客名被涂改成正确的Hello了,并且时间也被更新了。

二、iOS端基于NSUXC90LSession互联网需求类的卷入

地点大家写完操作User表的相应的艺术后接下去大家就来测量试验一些具体的结果。为了有助于测量试验,大家配备4个路由非常用来对User表的增加和删除改成开展操作。各种路由对应着方面每一种方法。本有的就提交相应的测量检验用例。为了有扶植测量检验,大家在路由安立即,钦赐央求方法全部是GET供给。

  时时app平台注册网站 10

在博客的起始呢,先来推举生机勃勃款Mac上比较好用又无偿的MySQL可视化管理工科具Sequel Pro。那款工具用的是万分的随手呢,应用的Logo如下所示:

  时时app平台注册网站 11

 

  时时app平台注册网站 12

  时时app平台注册网站 13

始建完数据库后,接下去大家来封装iOS端互连网央浼的共用代码。也正是说,iOS端的网络央求就能调用本有的包装的原委。当然本有的包装的网络请求类是采纳NSU奥德赛LSession类封装的。

(3)、updateUserInfo----更新客商消息

3.互连网诉求类的包裹

(2)、成立测验数据库

江湖代码是顾客登陆依旧注册的首先步,通过顾客名来查询顾客新闻,进而来剖断该客商是不是注册,假若未注册则去挂号,纵然注册过就去登陆。借使查询成功,那么就将查询的顾客ID和UserName重返给顾客端。客商登陆的代码和江湖差不离,正是经过Select语句来合作该客户名的密码是不是与客户输入的同样,在这里就不做过多废话了。

  时时app平台注册网站 14

本篇博客,就先到此刻吧,别的代码和上述的笔触从来,依据上述的思路去完结笔记的增加和删除改查就能够,在这里就相当的少废话了。完整德姆o请移步github相关链接。

齐全临门一脚,上边筹算完MySQL数据库后,大家将要起来进行Perfect框架连接数据库的剧情了。

创设完user表后,接下去就要创制大家的content表了。content表用来存款和储蓄客户录入的笔记,下方就是content表的创制SQL语句。从尘世的SQL语句中简单看出content表的字段包罗自增的主键id,记录的标题title,记录的源委content,以至外键userID和创办时间create_time。

2.对“改”的测试

  时时app平台注册网站 15

俗尘截图便是我们创设的数据库操作的基类,全部数据库表的操作都要持续自该基类,在基类中定义了操作数据库的名字dataBaseName,MySQL操作句柄mysql,以至响应json的格式responsJson。具体如下所示。

本篇博客的前几有些首要介绍任何工程的公用模块,为工程的得以完成做打算,下方正是我们昨日博客要做的东西。本篇博客iOS端的互连网乞请主要选拔的NSUSportageLSession来达成的,关于U揽胜极光LSession更详细的牵线请参见早先公布的博客《NSURLSession全家桶》

(4)、queryUserInfo----查询

 

 

接下去我们使用NSUHavalLSession来封装大家的互连网要求类,下方的Request类正是大家封装的互连网央求类,该类世袭自BaseRequest。下方是Request的风流倜傥部分代码,下方每一个方法对应着GET、POST、PUT等央浼,能够结合者REST一同行使。在种种具体诉求的主意中会调用sessionDataTaskRequest()方法。会给那几个法子传入分歧的伏乞情势以至路径和参数。稍后我们会给出sessionDataTaskRequest()方法的实际完毕,sessionDataTaskRequest()方法个中就动用了NSU奇骏LSession相关的剧情提倡了网络供给,具体请看下方对sessionDataTaskRequest()方法的详实介绍。

接下去提交具体的代码完结,下方正是MySQLConnnet类的单例和私家构造器。具体得以达成如下所示:

2.content表的创办

  时时app平台注册网站 16

下面的基础专门的学业甘休后,接下去我们即以往做大家相应的职业模块了。首先大家来展开登入注册模块的费用工作。 首先付诸服务端相应模块的代码,然后在交付相应模块的iOS端的达成。关于Swift3.0连接和操作MySQL的详实内容请参见上生机勃勃篇博客《Swift3.0服务端开荒(四) MySQL数据库的一而再三回九转与操作》,数据库的连续几日在本有的就不做过多废话了。

 

 

2、数据库连接

三、登陆注册模块的开荒

 

上边那些代码写完后,配置完相应的路由调用上述方法,我们的服务端代码就水到渠成了。具体路由的配置因为篇幅有限,本篇博客就不做过多废话了。

二、Perfect数据库连接

接下去大家来兑现iOS顾客端的记名和注册的代码,下方便是登陆依旧注册的相关UI。顾客输入客户后,点击下一步,会调用后台接口剖断客商是不是注册过,假使已注册输入密码登入,如若未注册就输入密码注册和登入。侧边的UIViewController是集体的,三个页面,一个让客户输入客户名,二个则担任选用密码。UI比较简单,如下所示:

  时时app平台注册网站 17

(1)、登陆或注册的第一步:接受客户名

  时时app平台注册网站 18时时app平台注册网站 19

 

 

至今我们iOS顾客端的登入就完毕竣事了。 其余的代码和方面包车型大巴思绪相似,在那就不做过多废话了。

  时时app平台注册网站 20

2、iOS客商端代码达成

 

  时时app平台注册网站 21

  时时app平台注册网站 22

1.user表的创立

 

第一个框中定义的是多个闭包变量,用来将倡议结果回调给调用者。RequestStart便是最先哀告要调用的闭包类型,RequestSuccess则是呼吁成功后调用的闭包类型,RequestFailed则是伸手退步要调用的闭包类型。那三者是乞求类对外交换的大桥。

红尘是翻新客商消息的代码,与上多少个代码大致,只不过是透过mysql操作句柄调用query()方法实行的是update的SQL语句。更新时大家使用了MySQL的now()函数来更新时间,具体代码如下所示。

人尘凡正是客户注册是调用的接口完成,主假诺插入相应的用户音讯,具体如下所示:

(2)、deleteUserInfo()----"删"

  时时app平台注册网站 23

三、数据库操作

CREATE TABLE `content` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `title` varchar(30) CHARACTER SET gb2312 NOT NULL DEFAULT '',
  `content` text CHARACTER SET gb2312 NOT NULL,
  `userID` int(11) unsigned NOT NULL,
  `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  KEY `USER_FOREIGN_KEY` (`userID`),
  CONSTRAINT `USER_FOREIGN_KEY` FOREIGN KEY (`userID`) REFERENCES `user` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=utf8;

 

1、服务端代码

 //MySql数据库重视包

.Package(url: "",
majorVersion: 2, minor: 0)

人间这么些代码段便是sessionDataTaskRequest()方法的完好布局,首先大家依照函数的乞求路线和参数拼接U智跑L字符串,也正是首先个框中的部分。在该有的中的query()函数是将参数进行U凯雷德L编码调换,那么些函数是从AlamoFire框架中摘过来的。然后创立央浼用的U君越LRequest对象。最终是开创Session对象发起DataTask职分了。当然央求的结果是在completionHandler闭包中张开始拍录卖,稍后会付给completionHandler闭包中的管理格局。

咱俩在浏览器里拜望“

 

  时时app平台注册网站 24

 看完UI, 大家来看一下记名或注册的相关网络央浼的代码。下方的UserInfoRequest类就担任全体与客商音信相关的互连网伏乞,从下方的代码截图中,大家得以看来UserInfoRequest的基类是BaseRequest。下方的queryUserInfo(userName)就是地点侧面的页面所调用的方法,用来剖断该客户是不是是注册过的客商。在queryUserInfo()中对Request类进行了实例化,并且调用了相应的呼吁方法。并且对相应的平地风波回调做了处理,具体如下所示。

(1)、连接MySQL数据库

先是大家来创制user表,user表担当存储客户消息,当客户注册和登陆时都会操作那些表。注册顾客时正是往该表中插入客户,登入时正是询问相应的用户音信。当然,为了德姆o的简洁性,大家的user表中的字段也是少之甚少的。下方正是创建user表的SQL语句。当中有多少个字段,主键id是整型而且是自增的,是顾客的天下无双象征。username字段存款和储蓄的是客商名,password存款和储蓄的正是客户密码。register_date存款和储蓄的是客商注册时间,是光阴戳,而且暗中同意值是时下岁月。

  时时app平台注册网站 25

数据库的规划以至数据库表的始建自身都施用Sequel Pro来完毕的,关于Sequel Pro的运用请看上篇博客的牵线,本篇博客关于Sequel Pro的介绍就不做过多废话了。首先大家先交付记事本数据库表的安排,以备使用。大家先创立三个名称叫perfect_note的数据库(步骤略卡塔尔,然后更创立相应的数额库表。因为大家的记事本比较轻松,紧要归纳登陆、注册以至记事本的增删改查。所以大家的数据库结构也是比较简单的,perfect_note数据库中唯有多个表,五个是user表,多个是content表,下方会付出详细的介绍进程。

 

2、网络伏乞基类的成立

  时时app平台注册网站 26

 

接下去大家对InsertUserInfo()的的测量试验,首先大家加多叁个恳求方式为GET的“/create”路由,然后拿走客户提交的userName和password。获取完结后,调用UserOperator对象的insertUserInfo()方法将数据插入到数据库中。当然插入后,会随着将数据查询出来重返给顾客端的。

github分享链接: https://github.com/lizelu/PerfectDemo 

 

  时时app平台注册网站 27

(3)、创建user表

CREATE TABLE `user` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `username` varchar(30) CHARACTER SET latin1 NOT NULL DEFAULT '',
  `password` varchar(30) CHARACTER SET latin1 NOT NULL DEFAULT '',
  `register_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;

接下来点击加多数据库,创造新的数据库就能够,下方大家创制的是test数据库,编码方式用的是utf8。如下所示。

其多少个框则是伸脚形式的枚举,主要饱含GET、POST、PUT、DELETE,当然还留了CUSTOM()自定义的恢弘项目。在该枚举中的description总括属性负担将近来的枚举对象调换来其对于的字符串,具体如下所示:

尘间代码段中的MySQLConnnet类就背负数据库的连接而且接收相应的数据库。下方是MySQLConnnet类的完好结构,host,port,user,password都以只读的计量属性,担任安排连接数据库的参数。而mysql属性正是一而再数据库后的操作句柄。下方首要有八个法子,叁个是三番一回数据库的方法connectDataBase()和抉择数据库的法子selectDataBase()。MySQLConnnet类对外是以单例的方式存在的,不过对外暴漏的不是MySQLConnnet类的目的,而是MySQL类的靶子。

风华正茂、记事本数据库的安顿

依据惯例,Perfect框架连接数据库还是供给包的支撑。首先大家必要引入操作MySQL相关的包。

在大家相应的ViewController中会调用上述的艺术,下方便是客商在输入相应的客商音信后点击next所调用的格局。通过相应的闭包事件,最终将互联网乞求的结果回调到了VC中。

人尘间是数据库的连年,主题语句就是下方红框中的内容。首要依旧调用MySQL类中的connect()方法,在调用该方法时传出相应的参数就能够。如若一而再三回九转退步了会回来相应的errorMessage。具体代码如下所示:

本有的与Perfect框架非亲非故,完全部都以MySQL的从头到尾的经过,是Perfect操作数据库的备选职业。前提是您曾经设置好了MySQL数据库了。

 

  时时app平台注册网站 28

1、运维MySQL的服务器

 

2.营造user表的操作类

接连完数据库后,然后是选取数据库,下方是选拔数据库的代码。使用mysql句柄调用selectDataBase()方法,具体代码如下所示:

起步是start,那么关闭MySQL数据库就是stop了,如下所示:

 

创设完user表后,大家须要往表里边增多一些测验字段,下方就是我们增多的有个别字段。在大家的user表中有世间多个字段,id是主键,客商的并世无双标示。username-客商名,password-客商密码,create_time是创设时间,create_time的品种是光阴戳,况兼默许值是当下时刻。具体如下所示。

 

 

  时时app平台注册网站 29

随之我们来促成一下查询顾客音信的代码。下方便是询问顾客音讯的代码,查询的代码微微复杂一些,在试行完询问的SQL语句后,还亟需价格查询结果进行仓储。在蕴藏后,会回到查询的结果results。我们能够通过results的forEachRow()函数的随从闭包来博取每行的多寡。在抽取数据后,将其调换到相应的字典,然后将存有询问结果的字典存入到responseJson中,然后将responseJson调换为json字符串再次来到给客户就可以。具体做法如下所示。

风华正茂、测量试验数据库的创制

那或多或少尽管简易,但绝不要忘运行你的MySQL服务啊,不然Sequel Pro是爱莫能助连接你的MySQL数据库的。具体开发银行情势如下。

四、测量试验用例

  时时app平台注册网站 30

 

  时时app平台注册网站 31

开发Sequel Pro,输入你MySQL的主机名,顾客名以至密码。具体连接那一个数据库能够不选,然后填上实际的端口,私下认可是3306。点击连接就可以。具体如下所示:

始建完数据库后,接下去我们要开创一个user表用来开展测量检验。点击左下方的加号来创制新的数目库表,下方正是大家成立的数码库表的具体步骤以致实际的参数配置。如下所示:

剩余的查与删,和下边包车型大巴示范大致,在这里就不做过多废话了,大家的MySQL数据库的操作就先聊起那吗。官方上还介绍了一部分数据库的ORM操作,当中就有MySQL的ORM操作,能够简化一些多少操作。那一点就留下读者本身去看呢。

人间是添加完上述的依据包后,重新开展编写翻译的结果:

  时时app平台注册网站 32

接下去咱们来看一下删减的具体操作,下方截图正是deleteUserInfo()的具体贯彻。下方的措施与插入大约,先给出delete的SQL语句,然后再调用mysql操作句柄的query()操作,具体代码如下所示:

 

人间就是插入数据的维妙维肖代码,第贰个框正是我们要试行的SQL语句,然后利用mysql操作句柄调用query()方法开展SQL语句的试行。施行成功后,查询插入的多少并重回查询的结果,如下所示。

尘间的UserOperator类正是大家创制的特别来操作user表的类,首假若对user表的增加和删除改查操作。insertUserInfo()负担“增”,即插入顾客消息。deleteUser()担当“删”,通过userId来删除顾客。updateUserInfo()就担当“改”,更新客商消息。queryUserInfo()就承受“查”了,担任从user表中通过客户名来查询消息。

  时时app平台注册网站 33

 

本文由时时app平台注册网站发布于编程知识,转载请注明出处:Swift3.0服务端开采(五) 记事本的付出(iOS端 服务

关键词: