MySQL数据库的连年与操作,0服务端开辟

本篇博客我们来聊聊MySQL数据库的连年与操作。假若你本地未有MySQL数据库的话,需求您先安装MySQL数据库。在Mac OS中运用brew包管理器实行MySQL的装置是会同方便的。安装MySQL的命令为:brew
install mysql。本篇博客大家就要动用Perfect框架来连接操作数据库了,首先大家供给创设贰个测试数据库,然后在测试数据库中开创一张测试表用来增加和删除改查操作。

本篇博客大家来聊聊MySQL数据库的总是与操作。即使您本地没有MySQL数据库的话,需求你先安装MySQL数据库。在Mac OS中采纳brew包管理器进行MySQL的装置是会同方便的。安装MySQL的指令为:brew
install mysql。本篇博客大家将要采纳Perfect框架来再三再四操作数据库了,首先大家必要创建3个测试数据库,然后在测试数据库中创建一张测试表用来增加和删除改查操作。

前方以及六陆续续的牵线了运用斯威夫特叁.0开拓的服务端应用程序的Perfect框架。本篇博客就做3个阶段性的下结论,做叁个完好无损的实例,其实这么些实例在《斯维夫特三.0服务端开垦(一)》那篇博客中壹度轻便的介绍过了,本篇博客就来详细的聊一下以此工程的求实落成细节。当然包涵iOS端和服务端的代码。本篇博客的牵线顺序依据功能模块来划分的,如登六注册模块、记事本列表,记事本的增加和删除改查等职能。在每一个成效模块,我们先提交服务端代码的贯彻,然后交到客户端代码的落到实处。

目前以及陆6续续的介绍了采纳Swift三.0开荒的服务端应用程序的Perfect框架。本篇博客就做一个阶段性的下结论,做一个总体的实例,其实那几个实例在《斯威夫特3.0服务端开辟(一)》那篇博客中曾经简单的牵线过了,本篇博客就来详细的聊一下这么些工程的切切实实贯彻细节。当然包含iOS端和服务端的代码。本篇博客的牵线顺序依据效能模块来划分的,如登入注册模块、记事本列表,记事本的增加和删除改查等功用。在各样功用模块,大家先交给服务端代码的完毕,然后交给客户端代码的兑现。

在博客的伊始呢,先来推荐壹款Mac上比较好用又无需付费的MySQL可视化管理工科具Sequel
Pro。那款工具用的是一定的随手呢,应用的Logo如下所示:

在博客的初阶呢,先来推荐壹款Mac上相比较好用又无需付费的MySQL可视化管理工具Sequel
Pro。那款工具用的是1对一的随手呢,应用的Logo如下所示:

本篇博客的前几片段重大介绍任何工程的公用模块,为工程的落到实处做筹划,下方便是大家前几天博客要做的事物。本篇博客iOS端的网络请求主要运用的NSU逍客LSession来贯彻的,关于U翼虎LSession更详尽的介绍请参见以前公布的博客《NSURLSession全家桶》

本篇博客的前几部分至关心注重要介绍任何工程的公用模块,为工程的贯彻做企图,下方正是大家后天博客要做的东西。本篇博客iOS端的网络请求主要采取的NSU安德拉LSession来落到实处的,关于UOdysseyLSession更详细的牵线请参考从前发表的博客《NSURLSession全家桶》

  澳门葡京备用网址 1

  澳门葡京备用网址 2

  澳门葡京备用网址 3

  澳门葡京备用网址 4

 

 

 

 

壹、测试数据库的始建

1、测试数据库的开创

1、记事本数据库的宏图

壹、记事本数据库的布署

本有的与Perfect框架非亲非故,完全是MySQL的内容,是Perfect操作数据库的策画职业。前提是您曾经设置好了MySQL数据库了。

本有的与Perfect框架无关,完全是MySQL的内容,是Perfect操作数据库的计划职业。前提是您早就设置好了MySQL数据库了。

数据库的规划以及数额库表的创制自身都应用Sequel Pro来落成的,关于Sequel
Pro的运用请看上篇博客的介绍,本篇博客关于Sequel
Pro的介绍就不做过多废话了。首先大家先付给记事本数据库表的安排性,以备使用。大家先创立1个名字为perfect_note的数据库(步骤略),然后再创造相应的多寡库表。因为大家的记事本相比简单,主要不外乎登6、注册以及记事本的增加和删除改查。所以我们的数据库结构也是相比轻易的,perfect_note数据库中唯有多个表,二个是user表,一个是content表,下方会付出详细的牵线进度。

数据库的统一图谋以及数额库表的始建本身都选拔Sequel Pro来完结的,关于Sequel
Pro的选拔请看上篇博客的介绍,本篇博客关于Sequel
Pro的介绍就不做过多废话了。首先大家先交付记事本数据库表的安排,以备使用。大家先创立1个名称叫perfect_note的数据库(步骤略),然后再成立相应的数据库表。因为大家的记事本相比轻松,首要包涵登入、注册以及记事本的增加和删除改查。所以我们的数据库结构也是比较轻巧的,perfect_note数据库中只有八个表,二个是user表,贰个是content表,下方会付给详细的牵线进度。

 

 

1.user表的成立

1.user表的开创

一、运维MySQL的服务器

壹、运转MySQL的服务器

率先大家来创建user表,user表担任存款和储蓄用户消息,当用户注册和登入时都会操作这几个表。注册用户时便是往该表中插入用户,登六时正是查询相应的用户音信。当然,为了德姆o的简洁性,大家的user表中的字段也是比较少的。下方正是创立user表的SQL语句。个中有三个字段,主键id是整型而且是自增的,是用户的唯1象征。username字段存款和储蓄的是用户名,password存款和储蓄的就是用户密码。register_date存款和储蓄的是用户注册时间,是岁月戳,并且暗中同意值是现阶段时刻。

第三大家来创立user表,user表负担存款和储蓄用户音信,当用户注册和登入时都会操作那么些表。注册用户时正是往该表中插入用户,登陆时正是询问相应的用户新闻。当然,为了德姆o的简洁性,大家的user表中的字段也是相比少的。下方正是创立user表的SQL语句。当中有多少个字段,主键id是整型而且是自增的,是用户的绝无仅有代表。username字段存款和储蓄的是用户名,password存款和储蓄的就算用户密码。register_date存款和储蓄的是用户注册时间,是岁月戳,并且暗中同意值是现阶段时光。

那或多或少即便轻易,但毫无忘记运转你的MySQL服务吗,不然Sequel
Pro是无力回天连接你的MySQL数据库的。具体开发银行方式如下。

那点就算轻易,但毫无遗忘运维你的MySQL服务吗,不然Sequel
Pro是力不从心连接你的MySQL数据库的。具体开发银市价势如下。

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;
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;

  澳门葡京备用网址 5

  澳门葡京备用网址 6

 

 

启航是start,那么关闭MySQL数据库便是stop了,如下所示:

运转是start,那么关闭MySQL数据库正是stop了,如下所示:

二.content表的创办

二.content表的创建

  澳门葡京备用网址 7

  澳门葡京备用网址 8

创造完user表后,接下去就要创设大家的content表了。content表用来存款和储蓄用户录入的笔记,下方就是content表的创制SQL语句。从尘寰的SQL语句中轻便看出content表的字段包罗自增的主键id,记录的标题title,记录的始末content,以及外键userID和开创时间create_time。

开创完user表后,接下去将要创造大家的content表了。content表用来存款和储蓄用户录入的笔记,下方正是content表的创办SQL语句。从下方的SQL语句中轻易看出content表的字段包蕴自增的主键id,记录的标题title,记录的内容content,以及外键userID和创办时间create_time。

 

 

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;
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;

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

二.利用Sequel
Pro连接操作数据库

 

 

(1)、连接MySQL数据库

(1)、连接MySQL数据库

 

 

开采Sequel Pro,输入你MySQL的主机名,用户名以及密码。具体连接那么些数据库能够不选,然后填上实际的端口,暗中同意是3306。点击连接就可以。具体如下所示:

开荒Sequel Pro,输入你MySQL的主机名,用户名以及密码。具体连接那多少个数据库可以不选,然后填上具体的端口,暗许是330六。点击连接就能够。具体如下所示:

2、iOS端基于NSUXC90LSession网络请求类的包装

二、iOS端基于NSULX570LSession网络请求类的包装

  澳门葡京备用网址 9

  澳门葡京备用网址 10

创制完数据库后,接下去我们来封装iOS端网络请求的共用代码。也正是说,iOS端的互连网请求就会调用本有的包装的剧情。当然本有的包装的网络请求类是利用NSU途睿欧LSession类封装的。

始建完数据库后,接下去我们来封装iOS端网络请求的共用代码。也正是说,iOS端的互联网请求就会调用本有的包装的始末。当然本有的包装的网络请求类是利用NSUOdysseyLSession类封装的。

 

 

 

 

(二)、创制测试数据库

(二)、创制测试数据库

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

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

接下来点击添加数据库,创立新的数据库就可以,下方大家成立的是test数据库,编码形式用的是utf八。如下所示。

下一场点击增多数据库,创立新的数据库就能够,下方大家创设的是test数据库,编码格局用的是utf8。如下所示。

首先大家先来定义一些包裹网络请求类要利用的字符串常量以及枚举闭包回调。下方代码段做的就是那件事情,第2个框中定义了分析响应数据时利用到的字符串常量。“SUCCESS”表示请求成功,“FAILE”表示请求失利等等。

第3我们先来定义一些卷入互连网请求类要采纳的字符串常量以及枚举闭包回调。下方代码段做的正是那件职业,首个框中定义了剖析响应数据时利用到的字符串常量。“SUCCESS”表示请求成功,“FAILE”表示请求退步等等。

  澳门葡京备用网址 11澳门葡京备用网址 12

  澳门葡京备用网址 13澳门葡京备用网址 14

第3个框中定义的是三个闭包变量,用来将呼吁结果回调给调用者。RequestStart便是初步请求要调用的闭包类型,RequestSuccess则是呼吁成功后调用的闭包类型,RequestFailed则是伸手失败要调用的闭包类型。那叁者是请求类对外调换的桥梁。

其次个框中定义的是五个闭包变量,用来将请求结果回调给调用者。RequestStart正是开头请求要调用的闭包类型,RequestSuccess则是伸手成功后调用的闭包类型,RequestFailed则是伸手战败要调用的闭包类型。那叁者是请求类对外交换的大桥。

 

 

其八个框则是请求格局的枚举,首要包含GET、POST、PUT、DELETE,当然还留了CUSTOM()自定义的增添项目。在该枚举中的description总括属性负担将近日的枚举对象转变到其对于的字符串,具体如下所示:

其四个框则是请求方式的枚举,首要包蕴GET、POST、PUT、DELETE,当然还留了CUSTOM()自定义的恢宏类型。在该枚举中的description计算属性担当将日前的枚举对象转变来其对于的字符串,具体如下所示:

(3)、创建user表

(3)、创建user表

  澳门葡京备用网址 15

  澳门葡京备用网址 16

创制完数据库后,接下去大家要开创2个user表用来进展测试。点击左下方的加号来创建新的数量库表,下方便是大家创建的数目库表的具体步骤以及实际的参数配置。如下所示:

始建完数据库后,接下去大家要创立二个user表用来拓展测试。点击左下方的加号来成立新的数码库表,下方正是我们创设的数码库表的具体步骤以及具体的参数配置。如下所示:

 

 

MySQL数据库的连年与操作,0服务端开辟。  澳门葡京备用网址 17

  澳门葡京备用网址 18

二、网络请求基类的创建

2、网络请求基类的始建

创立完user表后,大家需求往表里边增添一些测试字段,下方就是我们加多的局地字段。在我们的user表中有江湖七个字段,id是主键,用户的唯1标示。username-用户名,password-用户密码,create_time是成立时间,create_time的品类是岁月戳,而且暗许值是日前光阴。具体如下所示。

创设完user表后,咱们须要往表里边增多一些测试字段,下方便是我们增添的有个别字段。在我们的user表中有世间多少个字段,id是主键,用户的绝无仅有标示。username-用户名,password-用户密码,create_time是开创时间,create_time的档案的次序是时刻戳,而且暗中认可值是目前岁月。具体如下所示。

接下去互联网请求的基类,全数与互连网请求相关的类都要继续自此类,下方的BaseRequest便是大家互联网请求的基类。该类比较简单,主要注明了地点定义的四个闭包类型的变量,然后交到了相应的构造器。具体如下所示。

接下去互连网请求的基类,全数与互连网请求相关的类都要继续自此类,下方的BaseRequest正是我们互联网请求的基类。该类比较轻便,首要证明了上边定义的多少个闭包类型的变量,然后交由了对应的构造器。具体如下所示。

  澳门葡京备用网址 19

  澳门葡京备用网址 20

  澳门葡京备用网址 21

  澳门葡京备用网址 22

 

 

 

 

 

 

三.互连网请求类的包裹

三.网络请求类的卷入

2、Perfect数据库连接

2、Perfect数据库连接

接下去大家选择NSU冠道LSession来封装大家的互连网请求类,下方的Request类正是大家封装的网络请求类,该类承继自BaseRequest。下方是Request的一对代码,下方每种方法对应着GET、POST、PUT等请求,能够结合者REST一同利用。在各类具体请求的点子中会调用sessionDataTaskRequest()方法。会给这一个法子传入分裂的伸手格局以及路线和参数。稍后大家会给出sessionDataTaskRequest()方法的有血有肉落到实处,sessionDataTaskRequest()方法在那之中就使用了NSUOdysseyLSession相关的内容提倡了互连网请求,具体请看下方对sessionDataTaskRequest()方法的详尽介绍。

接下去大家选取NSURAV四LSession来封装我们的网络请求类,下方的Request类便是大家封装的互联网请求类,该类承接自BaseRequest。下方是Request的有的代码,下方各样方法对应着GET、POST、PUT等请求,能够结合者REST一同使用。在种种具体请求的法子中会调用sessionDataTaskRequest()方法。会给这几个措施传入差别的伸手格局以及路线和参数。稍后我们会给出sessionDataTaskRequest()方法的切切实实贯彻,sessionDataTaskRequest()方法其中就利用了NSU奥迪Q3LSession相关的始末提倡了互联网请求,具体请看下方对sessionDataTaskRequest()方法的详实介绍。

万事俱备只欠东风,上边准备完MySQL数据库后,我们就要开头开始展览Perfect框架连接数据库的始最后。

齐全只欠东风,下边计划完MySQL数据库后,大家将要起来进行Perfect框架连接数据库的剧情了。

  澳门葡京备用网址 23

  澳门葡京备用网址 24

一.引进注重库

一.引进正视库

凡间这些代码段就是sessionDataTaskRequest()方法的总体结构,首先大家依据函数的乞请路线和参数拼接UOdysseyL字符串,也便是首先个框中的部分。在该有的中的query()函数是将参数实行U奥德赛L编码调换,这几个函数是从AlamoFire框架中摘过来的。然后创立请求用的UMuranoLRequest对象。最终是开创Session对象发起DataTask职务了。当然请求的结果是在completionHandler闭包中张开始拍片卖,稍后会付给completionHandler闭包中的管理格局。

人尘寰那些代码段就是sessionDataTaskRequest()方法的欧洲经济共同体结构,首先大家依照函数的伏乞路线和参数拼接UBMWX三L字符串,也正是率先个框中的部分。在该片段中的query()函数是将参数进行UPAJEROL编码转变,这些函数是从AlamoFire框架中摘过来的。然后创立请求用的U路虎极光LRequest对象。最后是开创Session对象发起DataTask职分了。当然请求的结果是在completionHandler闭包中实行拍卖,稍后会交到completionHandler闭包中的管理格局。

遵从惯例,Perfect框架连接数据库照旧须要包的帮衬。首先大家必要引进操作MySQL相关的包。

遵从惯例,Perfect框架连接数据库依旧亟待包的帮助。首先大家需求引进操作MySQL相关的包。

  澳门葡京备用网址 25

  澳门葡京备用网址 26

 //MySql数据库重视包

.Package(url: “”,
majorVersion: 2, minor: 0)

 //MySql数据库注重包

.Package(url: “”,
majorVersion: 2, minor: 0)

随之,我们提交请求成功后,对json数据的辨析以及对回到结果的管理。下方就是completionHandler闭包中的代码片段。首先对服务器重返的json数据开始展览解析,解析后将json数据转换到对应的数据类型。然后依据响应报文的result字段来拓展相应的操作。假若报文响应符合规律,就调用success()闭包,不然调用failure()闭包,如下所示:

澳门葡京备用网址 ,跟着,我们付出请求成功后,对json数据的剖析以及对回到结果的拍卖。下方正是completionHandler闭包中的代码片段。首先对服务器重回的json数据开始展览分析,解析后将json数据转变来对应的数据类型。然后依照响应报文的result字段来开展对应的操作。假设报文响应日常,就调用success()闭包,不然调用failure()闭包,如下所示:

红尘是加多完上述的借助包后,重新开始展览编写翻译的结果:

人世间是加多完上述的信赖包后,重新开始展览编写翻译的结果:

  澳门葡京备用网址 27

  澳门葡京备用网址 28

  澳门葡京备用网址 29

  澳门葡京备用网址 30

至此大家iOS客户端的互连网请求部分就封装完了,其余实际业务逻辑的互联网请求调用上述的Request类就能够,稍后会用到Request。

于今大家iOS客户端的网络请求部分就封装完了,其余实际事务逻辑的网络请求调用上述的Request类就能够,稍后会用到Request。

 

 

 

 

二、数据库连接

贰、数据库连接

3、登入注册模块的支付

叁、登陆注册模块的付出

红尘代码段中的MySQLConnnet类就担任数据库的连天并且选取相应的数据库。下方是MySQLConnnet类的总体结构,host,port,user,password都以只读的持筹握算属性,担任安排连接数据库的参数。而mysql属性就是连接数据库后的操作句柄。下方首要有多个艺术,三个是一连数据库的格局connectDataBase()和采纳数据库的方法selectDataBase()。MySQLConnnet类对外是以单例的款型存在的,然则对外暴漏的不是MySQLConnnet类的目的,而是MySQL类的靶子。

人凡尘代码段中的MySQLConnnet类就担当数据库的连接并且选取相应的数据库。下方是MySQLConnnet类的完好布局,host,port,user,password都是只读的计量属性,担负安插连接数据库的参数。而mysql属性就是接连数据库后的操作句柄。下方首要有多个形式,2个是连连数据库的措施connectDataBase()和选用数据库的艺术selectDataBase()。MySQLConnnet类对外是以单例的款型存在的,可是对外暴漏的不是MySQLConnnet类的对象,而是MySQL类的对象。

上面的功底专门的学业甘休后,接下去大家即未来做大家相应的事情模块了。首先大家来进行登入注册模块的成本工作。
首先付诸服务端相应模块的代码,然后在提交相应模块的iOS端的达成。关于Swift三.0连接和操作MySQL的详尽内容请参见上壹篇博客《Swift叁.0服务端开荒(四)
MySQL数据库的总是与操作》,数据库的两次三番在本有的就不做过多废话了。

上边的基础专门的职业落成后,接下去我们即未来做咱们相应的业务模块了。首先大家来拓展登六注册模块的支付职业。
首先付诸服务端相应模块的代码,然后在付给相应模块的iOS端的达成。关于Swift三.0连接和操作MySQL的详细内容请参考上一篇博客《Swift三.0服务端开辟(肆)
MySQL数据库的连日与操作》,数据库的接连在本有的就不做过多废话了。

  澳门葡京备用网址 31

  澳门葡京备用网址 32

一、服务端代码

1、服务端代码

接下去提交具体的代码落成,下方正是MySQLConnnet类的单例和个体构造器。具体落到实处如下所示:

接下去提交具体的代码落成,下方正是MySQLConnnet类的单例和村办构造器。具体贯彻如下所示:

(一)、登陆或注册的率先步:接收用户名

(一)、登陆或注册的率先步:接收用户名

  澳门葡京备用网址 33

  澳门葡京备用网址 34

江湖代码是用户登陆依然注册的第壹步,通过用户名来查询用户音信,从而来判别该用户是或不是注册,如若未注册则去注册,假使注册过就去登录。借使查询成功,那么就将查询的用户ID和UserName重返给客户端。用户登陆的代码和尘凡大致,就是通过Select语句来协作该用户名的密码是还是不是与用户输入的均等,在此就不做过多废话了。

江湖代码是用户登入如故注册的率先步,通过用户名来查询用户新闻,从而来剖断该用户是不是注册,假如未注册则去登记,如若注册过就去登录。如若查询成功,那么就将查询的用户ID和UserName再次回到给客户端。用户登6的代码和俗尘差不离,正是通过Select语句来同盟该用户名的密码是还是不是与用户输入的同1,在此就不做过多废话了。

俗尘是数据库的连天,宗旨语句正是下方红框中的内容。主要仍旧调用MySQL类中的connect()方法,在调用该措施时传出相应的参数就能够。借使老是退步了会回到相应的errorMessage。具体代码如下所示:

人人间是数据库的连年,主旨语句便是下方红框中的内容。主要照旧调用MySQL类中的connect()方法,在调用该方法时传出相应的参数就能够。假若三番五次失败了会回来相应的errorMessage。具体代码如下所示:

  澳门葡京备用网址 35

  澳门葡京备用网址 36

  澳门葡京备用网址 37

  澳门葡京备用网址 38

(二)、用户注册

(二)、用户注册

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

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

江湖便是用户注册是调用的接口达成,首如若插入相应的用户新闻,具体如下所示:

江湖正是用户注册是调用的接口达成,主倘诺插入相应的用户音讯,具体如下所示:

  澳门葡京备用网址 39

  澳门葡京备用网址 40

  澳门葡京备用网址 41

  澳门葡京备用网址 42

 

 

下边那几个代码写完后,配置完相应的路由调用上述格局,我们的服务端代码就马到成功了。具体路由的配备因为篇幅有限,本篇博客就不做过多废话了。

地点那些代码写完后,配置完相应的路由调用上述措施,大家的服务端代码就成功了。具体路由的布署因为篇幅有限,本篇博客就不做过多废话了。

 

 

 

 

三、数据库操作

叁、数据库操作

二、iOS客户端代码落成

二、iOS客户端代码达成

接下去大家将在调用上边包车型大巴数据库操作类类操作实际数据库中的表了。在第3局地大家早已创办好了test数据库,并且创立好了对应的user表。接下来大家就要动用斯维夫特代码来对User表实行增加和删除改查操作了。

接下去我们就要调用上边包车型大巴数据库操作类类操作实际数据库中的表了。在第三有的我们早就创造好了test数据库,并且创办好了相应的user表。接下来我们就要选拔斯威夫特代码来对User表进行增删改查操作了。

接下去大家来兑现iOS客户端的登入和挂号的代码,下方便是登入仍然注册的相关UI。用户输入用户后,点击下一步,会调用后台接口推断用户是或不是注册过,假设已登记输入密码登陆,就算未注册就输入密码注册和登入。右侧的UIViewController是集体的,多个页面,二个让用户输入用户名,贰个则承担接收密码。UI相比较简单,如下所示:

接下去我们来落成iOS客户端的登6和挂号的代码,下方正是登入依然注册的相关UI。用户输入用户后,点击下一步,会调用后台接口推断用户是或不是注册过,倘诺已登记输入密码登入,如果未注册就输入密码注册和登入。左侧的UIViewController是国有的,八个页面,一个让用户输入用户名,一个则担当接收密码。UI比较简单,如下所示:

 

 

  澳门葡京备用网址 43

  澳门葡京备用网址 44

1.营造数据库操作基类

1.营造数据库操作基类

 看完UI, 大家来看一下报到或注册的相关互联网请求的代码。下方的UserInfoRequest类就承担全数与用户消息有关的网络请求,从凡尘的代码截图中,大家能够看看UserInfoRequest的基类是BaseRequest。下方的queryUserInfo(userName)正是地方左边的页面所调用的主意,用来剖断该用户是还是不是是注册过的用户。在queryUserInfo()中对Request类进行了实例化,并且调用了相应的乞请方法。并且对相应的风云回调做了拍卖,具体如下所示。

 看完UI, 大家来看一下记名或注册的有关网络请求的代码。下方的UserInfoRequest类就担任全数与用户音讯相关的网络请求,从下方的代码截图中,我们得以阅览UserInfoRequest的基类是BaseRequest。下方的queryUserInfo(userName)正是上面左侧的页面所调用的格局,用来推断该用户是还是不是是注册过的用户。在queryUserInfo()中对Request类举行了实例化,并且调用了对应的伸手方法。并且对相应的风云回调做了管理,具体如下所示。

人凡尘截图正是我们塑造的数据库操作的基类,全体数据库表的操作都要一而再自该基类,在基类中定义了操作数据库的名字dataBaseName,MySQL操作句柄mysql,以及响应json的格式responsJson。具体如下所示。

江湖截图正是我们营造的数据库操作的基类,全部数据库表的操作都要继续自该基类,在基类中定义了操作数据库的名字dataBaseName,MySQL操作句柄mysql,以及响应json的格式responsJson。具体如下所示。

  澳门葡京备用网址 45

  澳门葡京备用网址 46

  澳门葡京备用网址 47

  澳门葡京备用网址 48

在我们相应的ViewController中会调用上述的点子,下方正是用户在输入相应的用户音信后点击next所调用的诀要。通过相应的闭包事件,最后将互连网请求的结果回调到了VC中。

在我们相应的ViewController中会调用上述的法子,下方便是用户在输入相应的用户音信后点击next所调用的办法。通过相应的闭包事件,末了将互联网请求的结果回调到了VC中。

 

 

  澳门葡京备用网址 49

  澳门葡京备用网址 50

二.创设user表的操作类

2.创设user表的操作类

时至前几日大家iOS客户端的报到就落成完工了。
别的的代码和上面的思绪类似,在此就不做过多废话了。

由来大家iOS客户端的登入就贯彻竣事了。
其余的代码和方面包车型地铁思绪类似,在此就不做过多废话了。

江湖的UserOperator类就是大家创制的专门来操作user表的类,主倘若对user表的增加和删除改查操作。insertUserInfo()担负“增”,即插入用户音讯。deleteUser()担当“删”,通过userId来删除用户。updateUserInfo()就背负“改”,更新用户音信。queryUserInfo()就担任“查”了,负担从user表中经过用户名来查询新闻。

人人间的UserOperator类正是大家创立的尤其来操作user表的类,首要是对user表的增加和删除改查操作。insertUserInfo()肩负“增”,即插入用户音信。deleteUser()担任“删”,通过userId来删除用户。updateUserInfo()就背负“改”,更新用户消息。queryUserInfo()就担任“查”了,担任从user表中经过用户名来查询音讯。

 

 

  澳门葡京备用网址 51

  澳门葡京备用网址 52

本篇博客,就先到此时吧,其余代码和上述的思绪一向,依据上述的思绪去贯彻笔记的增加和删除改查就能够,在此就不多废话了。完整德姆o请移步github相关链接。

本篇博客,就先到那儿吧,其余代码和上述的笔触一直,根据上述的笔触去达成笔记的增加和删除改查就能够,在此就不多废话了。完整德姆o请移步github相关链接。

 

 

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

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

(1)、InsertUserInfo()—-“增”

(1)、InsertUserInfo()—-“增”

红尘正是插入数据的现实代码,第贰个框正是大家要实行的SQL语句,然后采纳mysql操作句柄调用query()方法开始展览SQL语句的施行。试行成功后,查询插入的数量并赶回查询的结果,如下所示。

江湖正是插入数据的现实代码,第一个框正是我们要奉行的SQL语句,然后选拔mysql操作句柄调用query()方法举办SQL语句的推行。试行成功后,查询插入的数码并赶回查询的结果,如下所示。

  澳门葡京备用网址 53

  澳门葡京备用网址 54

 

 

(2)、deleteUserInfo()—-“删”

(2)、deleteUserInfo()—-“删”

接下去我们来看一下去除的具体操作,下方截图就是deleteUserInfo()的现实落到实处。下方的艺术与插入大约,先给出delete的SQL语句,然后再调用mysql操作句柄的query()操作,具体代码如下所示:

接下去大家来看一下去除的具体操作,下方截图就是deleteUserInfo()的现实贯彻。下方的诀要与插入大致,先给出delete的SQL语句,然后再调用mysql操作句柄的query()操作,具体代码如下所示:

  澳门葡京备用网址 55

  澳门葡京备用网址 56

 

 

(3)、updateUserInfo—-更新用户消息

(三)、updateUserInfo—-更新用户音信

江湖是翻新用户信息的代码,与上四个代码差不离,只可是是因此mysql操作句柄调用query()方法施行的是update的SQL语句。更新时我们应用了MySQL的now()函数来更新时间,具体代码如下所示。

凡间是立异用户音讯的代码,与上五个代码大概,只可是是通过mysql操作句柄调用query()方法实行的是update的SQL语句。更新时大家运用了MySQL的now()函数来更新时间,具体代码如下所示。

  澳门葡京备用网址 57

  澳门葡京备用网址 58

 

 

(4)、queryUserInfo—-查询

(4)、queryUserInfo—-查询

随即大家来达成一下询问用户消息的代码。下方正是询问用户消息的代码,查询的代码稍微复杂一些,在推行完询问的SQL语句后,还索索要的价格格查询结果实行仓库储存。在蕴藏后,会回到查询的结果results。我们能够通过results的forEachRow()函数的随从闭包来获得每行的数量。在收取数据后,将其转变来相应的字典,然后将存有查询结果的字典存入到responseJson中,然后将responseJson转变为json字符串再次回到给用户就能够。具体做法如下所示。

随着我们来得以完毕一下询问用户新闻的代码。下方便是查询用户音讯的代码,查询的代码稍微复杂一些,在实践完询问的SQL语句后,还索开价格查询结果进行仓库储存。在仓库储存后,会回来查询的结果results。大家能够透过results的forEachRow()函数的随行闭包来获取每行的多少。在抽出数据后,将其调换来相应的字典,然后将存有询问结果的字典存入到responseJson中,然后将responseJson调换为json字符串重返给用户就能够。具体做法如下所示。

  澳门葡京备用网址 59

  澳门葡京备用网址 60

 

 

 

 

四、测试用例

肆、测试用例

上面大家写完操作User表的应和的格局后接下去大家就来测试一些有血有肉的结果。为了便于测试,我们安插多个路由专门用来对User表的增加和删除改成进行操作。每一个路由对应着方面每一个方法。本有的就交付相应的测试用例。为了便于测试,大家在路由布置时,钦命请求方法全是GET请求。

地方大家写完操作User表的应和的法子后接下去大家就来测试一些切实可行的结果。为了有利于测试,我们陈设多少个路由尤其用来对User表的增加和删除改成开始展览操作。各样路由对应着上面各种方法。本有的就交给相应的测试用例。为了有利于测试,大家在路由安插时,钦赐请求方法全是GET请求。

 

 

1、对“增”的测试

1、对“增”的测试

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

接下去大家对InsertUserInfo()的的测试,首先大家抬高2个请求格局为GET的“/create”路由,然后拿走用户提交的userName和password。获取落成后,调用UserOperator对象的insertUserInfo()方法将数据插入到数据库中。当然插入后,会随着将数据查询出来再次回到给客户端的。

  澳门葡京备用网址 61

  澳门葡京备用网址 62

咱俩在浏览器里拜访“

我们在浏览器里拜访“

  澳门葡京备用网址 63

  澳门葡京备用网址 64

 

 

2.对“改”的测试

2.对“改”的测试

接下去大家将在测试一下updateUserInfo()这几个函数,该有的与上述的代码差不离,也是必要安顿二个伸手格局为GET的立异路由“/update”。然后在该路由中拿走请求参数,然后调用updateUserInfo()那个函数就能够。具体代码就不做过多废话了,直接看下方的测试结果吧。通过结果轻松看出,用户名被改换成准确的Hello了,而且时间也被更新了。

接下去我们将要测试一下updateUserInfo()那些函数,该有的与上述的代码差不多,也是须要布署1个请求方式为GET的翻新路由“/update”。然后在该路由中取得请求参数,然后调用updateUserInfo()那些函数即可。具体代码就不做过多废话了,直接看下方的测试结果吗。通过结果轻巧看出,用户名被更动成正确的Hello了,而且时间也被更新了。

  澳门葡京备用网址 65

  澳门葡京备用网址 66

 

 

剩余的查与删,和上边的以身作则大致,在此就不做过多废话了,我们的MySQL数据库的操作就先聊到那吗。官方上还介绍了有个别数据库的O揽胜极光M操作,个中就有MySQL的OOdysseyM操作,能够简化一些数目操作。那一点就留给读者自个儿去看吗。

结余的查与删,和上边的以身作则差不离,在此就不做过多废话了,大家的MySQL数据库的操作就先谈到那吗。官方上还介绍了有的数据库的OOdysseyM操作,在那之中就有MySQL的OOdysseyM操作,能够简化一些数量操作。这点就留下读者本身去看呢。

 

 

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*
*
Website