zoukankan      html  css  js  c++  java
  • JavaEE开发之记事本完整案例(SpringBoot + iOS端)

    上篇博客我们聊了《JavaEE开发之SpringBoot整合MyBatis以及Thymeleaf模板引擎》,并且在之前我们也聊了《Swift3.0服务端开发(五) 记事本的开发(iOS端+服务端)》,在之前的案例中的服务端是我们使用了Swift3.0下的Perfect框架来实现的,本篇博客我们就用Spring Boot来做服务端,而iOS端我们不用改动。

    在后端实现时,路由以及数据格式我们都采用之前的规则,但是我们要用Spring Boot来做。当然操作数据库时,我们就使用MyBatis来进行数据的持久化了。本篇我们就来看一下这个Spring Boot完整的工程。当然,本篇博客所设计的Spring Boot是比较简单的,但是用来练手可以了。

    本篇博客所涉及的功能无非就是一些数据库表的CURD操作,没有什么多难的地方。接下来就来整体的看一下这个工程。

    一、运行效果展示

    下方这个Gif效果图,就是我们本篇博客所涉及的完整案例的运行效果。单从下方的效果,我们看不出与之前有什么效果,因为我们的iOS端没有改变。但是下方App的后台确实是使用Spring Boot来实现的。

    第一个页面让用户输入用户名,如果用户名存在,那么就让用户输入密码进行登录,如果不存在就让用户进行注册。登录或者注册后直接进入App的首页,也就是笔记的列表页面。该列表页显示了当前用户发布的所有笔记,包括笔记的Title和创建时间。点进去是该笔记的详情页面,可以对其更改操作。在列表的右上角有一个添加按钮,可以用来添加新的笔记。

    在列表页中,左滑单元格,会出现删除按钮,点击删除按钮,则对该篇笔记进行删除操作。具体运行效果如下所示。

      

    二、MyBatis的Mapper实现

    关于Spring Boot中如何引入和配置MyBatis,在此就不做过多赘述了,你可以参见上篇博客。当然,上述Demo的核心操作就是数据库的CURD操作,当然,我们使用的是Spring Boot下的Mybatis来进行的数据持久化,所以MyBatis的使用是比较重要的。本部分就详细的聊一下本篇博客所涉及的MyBatis的Mapper。下方先给出操作用户user表的Mapper, 然后在介绍操作内容content表的Mapper。

    1. UserMapper的实现

    下方代码段是UserMappper的具体实现,首先使用@Mapper注解将UserMapper接口声明为MyBatisMapper。然后在其中给出相应的操作声明。在UserMapper中主要给出了两个Select操作和一个Insert操作。

    在执行Select时,使用了#{参数}来往SQL语句中传入相应的查询条件,使用了@Results()注解来声明表字段与数据Model的属性间的对应关系。如果没有指定,那么默认情况下表字段名就等于Model的属性名。查询语句返回的是含有相应Model的ArrayList

    我们使用@Insert()注解来指定插入语句,并且使用@Param注解和#{}来绑定参数。具体如下所示。

      

    2、INoteContentMapper的实现

    看完UserMapper后,我们来看一下INoteContentMapper的具体实现。INoteContentMapper就负责操作Content表。下方截图是INoteContentMapper具体实现,其中多了两个操作,一个是使用@Delete注解声明的删除操作,另一个是使用@Update注解声明的更新操作。下方的实现也是比较简单的在此就不做过多赘述了。

      

    三、DAO层的创建

    看完相关的Mapper接下来我们来看一下DAO层的实现,DAO即Data Access Object,主要是负责操作对象的。我们就以ContentDao为例。下方代码段就是ContentDao中的具体实现。在该类中被注入了INoteContentMapper类型的对象,我们可以使用该对象来操作数据库。

    我们就以queryContent(String contentId)为例,该方法中就调用了相应Mapper对象的相应方法,根据内容的id来查询相应的内容。而该类中的方法,在获取到相应的对象信息后,对该对象进行了相关操作,并返回。具体代码如下所示。

      

    四、Controller层的实现

    DAO层实现完毕后,接下来我们就来实现我们的Controller层。当然,我们还是以Content的Controller层为例。因为我们的Controller是作为接口也就是API对外使用的,所以我们将ContentRestController使用@RestController进行注解,这样我们之间将返回的报文内容进行返回即可。下方代码片段就是我们的ContentRestController中的实现内容。

    首先我们要注入ContentDao的对象,然后在相应的路由所对应的方法中来调用DAO中的相应的方法。虽然我们返回的是Map类型,但是Spring Boot会为我们自动的转换成Json格式的数据,所以访问该API返回的都是JSON格式的数据。 

      

    我们可以对“/contentList”路由进行访问,该路由需要提供一个userId作为查询参数,下方截图就是对userId=1的用户下的所有List进行的查询。

      

    今天博客就先介绍到这儿吧,下方是本篇博客所涉及Demo的源码分享链接。

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

  • 相关阅读:
    centos7 tar.gz zip 解压命令[转]
    centos7 下 安装visual studio code ,打开运行。
    yum提示Another app is currently holding the yum lock; waiting for it to exit...
    Linux CentOS7 安装
    虚拟机 centos7 的网络与电脑所在一个网络如何设置
    django创建web项目
    uwsgi Flask web.py
    MariaDB 与 MySQL 区别
    python pymysql 与 mysqlclient
    如何提高自己的象棋水平及象棋开局的五种忌讳
  • 原文地址:https://www.cnblogs.com/ludashi/p/6674742.html
Copyright © 2011-2022 走看看