项目接口的设计思想

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

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

posted @ 2020-11-18 17:19  娜豆  阅读(198)  评论(0编辑  收藏  举报