zoukankan      html  css  js  c++  java
  • 项目接口的设计思想

    以注册为例(使用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语句尽可能一条搞定;而客户端需要什么数据,服务器再进行拆除去获取

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

  • 相关阅读:
    sharepoint 2010 资料
    调试 SharePoint 解决方案
    定义不同模板的网站集
    作图工具
    struts2的优点
    get load
    什么是java的事物
    session的实现方式
    final 和static的关系
    各种大神的表单验证 感谢大神的辛苦
  • 原文地址:https://www.cnblogs.com/nadou/p/14001038.html
Copyright © 2011-2022 走看看