项目接口的设计思想

以注册为例(使用maven来依赖管理,springboot项目)

https://www.jianshu.com/p/d59411918b6d

总结
  • 一般来说,若需要多次创建实例,可以使用工厂模式
  • 密码存入数据库中需要加密,通常使用Md5Utils(Md5是不可逆的;为了不轻易使其破解,可以再加一个"盐String salt",进行混合加密(多加密几次),越复杂越好)进行加密
  • 项目接口的设计思想
    1. 从Controller层写到Dao层(从上往下),一般先写需求/设计逻辑,写完一个类再写另一个类中的代码实现
    2. 设计路线:
      ① 需求分析
      ② 逻辑设计
      ③ 代码实现
      ④ 代码调试
    3. 一般来说,客户端传输的数据,Controller层进行接收的时候,使用自定义类封装数据(XxxParam类);springboot中controller层的注解为@RestController
    4. 通用的代码可以抽取出来,封装在工具类
    5. 使用逆向工程可以生成对应数据库中对应表的pojo类、mapper类和mapper.xml文件(一般是一个个生成的,项目中不建议批量生成;由于项目是多人协同完成的)
      数据库中的表一般都有id、creat_time、update_time这三个字段,可以将这三个字段封装在一个类中,该类需要实现序列化Serializable(便于json数据的转换),并且给与一个序列化Id;id字段需要注解(注明是主键,以及自动增长;这样,在生成动态sql语句的时候,自动增长就不用插入(id为Integer类型时)),生成的pojo类再去继承该类即可
    6. 由于插入语句的字段有可能发生改变,若写死sql语句,不便于后期的维护;因此,让mapper.java继承通用mapper,可以使用通用mapper中的插入方法dong
    7. 在resources包中定义一个mybatis_config.xml文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
    PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>

    <!-- 全局的设置信息-->
    <settings>
        <!-- 配置用生成的主键值 -->
        <setting name="useGeneratedKeys" value="true"/>
        <!-- 启用缓存 -->
        <setting name="cacheEnabled" value="true"/>
        <!-- 启用延迟加载功能 -->
        <setting name="lazyLoadingEnabled" value="true"/>
        <!-- 按需要延迟加载-->
        <setting name="aggressiveLazyLoading" value="false"/>
        <!-- 开启驼峰命名(方便自动映射) -->
        <setting name="mapUnderscoreToCamelCase" value="true"/>
        <!-- 打印查询语句,开发时开启,等项目上线是关闭-->
        <setting name="logImpl" value="STDOUT_LOGGING" />
        <!-- 开启sql语句字段为null值也封装回来 -->
        <setting name="callSettersOnNulls" value="true"/>
    </settings>
    
</configuration>

其中,开启驼峰命名;可以自动将表中的create_time转为类中的createTime,这样,就不需要在该成员变量上加上注解@Column(name="create_time")
当然了,封装表中数据的类上需要加入注解@Table(name="表名"),指定是哪张表

通用mapper官网 https://mapperhelper.github.io/docs/

数据校验
标准校验(非空、长度)
业务校验(根据业务需求而定)

账号用于判断用户数据唯一的标识,相当于数据库的ID字段

为了减少并发压力,一般sql语句尽可能一条搞定;而客户端需要什么数据,服务器再进行拆除去获取

不是用户操作的数据,而是服务器进行操作的;返回友好提示的时候不要返回提示信息

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,161评论 1 32
  • 一步一步的搭建JAVA WEB项目,采用Maven构建,基于MYBatis+Spring+Spring MVC+B...
    叶子的翅膀阅读 12,758评论 5 25
  • 1. 简介 1.1 什么是 MyBatis ? MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的...
    笨鸟慢飞阅读 5,734评论 0 4
  • IDEA创建maven项目 使用IDEA创建maven项目,勾选从模板原型构建,这里选择maven-archety...
    Java耕耘者阅读 2,825评论 0 0
  • 原来爱情真的伤不起,体会着狂野热烈的感觉,最后也掩不住分离的落寞忧伤。 我曾经遇见了温柔的你,留...
    冥裎阅读 460评论 1 19