阶段性总结文档

总结文档

1.json 请求:

格式:
http://localhost:8080/ecif_admin/userManageApi/userController.json?params={"bizType":"ids","ids":[498003,498004,498010,498005,498006,498008,498009]}

2.总结数据的传输:

前端传来的数据命名最好的是驼峰式,这样便于后期其他人员看代码的时候更方便,

后台接收到前台数据的时候最好将其封装为一个类,这样不会丢数据,也便于维护,
然后将类传到后台sql语句中去。

返回值最好也是一个类,然后传到前台,不会丢失数据,也方便获取。


3.后端接收到前端的数据之后,虽然前端已经加了校验,但是为了防止有人通过抓包工具或者通过链接更改参数之后直接进入,后台也应该加一层校验,双重校验更保险;


4.返回前台的数据结果最好定一个统一的格式,比如定义一个类BaseResult 然后返回结果就在BaseResult 类的基础上添加数据即可;


5.其实不管是前台系统还是后台系统无非是增删改查CRUD这一套而已,只要把CRUD搞明白,其实就已经成功了一大半;


6.命名规范很重要,包名、方法名首字母小写后面跟着都是首字母大写,类名首字母要大写;


7.Sequence命名也应该一致,防止后期看不出来哪个是哪个,能简写的就用简写,能分类的要分类;


8.Sql语句归类

(1)查询sequence获取下一个值
select
USERSSEQUENCEGENERATOR.nextval
from
Dual
(2)如果传进来的是一个list,那么批量查询应该使用for循环【模糊查询+时间匹配,oracle上面的时间字段如果没有精度要求尽量使用date类型而不用timestamp】

<select id="selectUsersDoPagination" parameterType="java.lang.String" resultType="java.util.Map">
  select
  ID,
        IDTYPE,
        IDNUM,
        USERNAME,
        PHONENUM,
        CREATETIME,      
        LASTMODIFIED
       from (
  <foreach collection="ids" item="item" separator="union all">
   select
   ID,
           ID_TYPE IDTYPE,
           ID_NUM IDNUM,
           USER_NAME USERNAME,
           PHONE_NUM PHONENUM,
   to_char(CREATE_TIME,'yyyy-mm-dd hh24:mi:ss') CREATETIME,
   to_char(LAST_MODIFIED,'yyyy-mm-dd hh24:mi:ss') LASTMODIFIED,
   
   from ${item}
   where 1=1
   
   <!-- 支持模糊查询 -->
   <if test="IDNUM  != null and IDNUM != ''">
    and ID_NUM like CONCAT(CONCAT('%','${IDNUM}'),'%')
   </if>
   
   <if test="USERNAME != null and USERNAME != ''">
    and USER_NAME like CONCAT(CONCAT('%','${USERNAME}'),'%')
   </if>
   
   <if test="PHONENUM != null and PHONENUM != ''">
    and PHONE_NUM like CONCAT(CONCAT('%','${PHONENUM}'),'%')
   </if>
   
   <if test="CREATETIME != null and CREATETIME != ''">
    and TO_CHAR(CREATE_TIME,'YYYY-MM-DD HH24:MI:SS') between
    '${CREATETIME}' and '${CREATETIME2}'
   </if>
   
   <if test="LASTMODIFIED != null and LASTMODIFIED != ''">
    and TO_CHAR(LAST_MODIFIED,'YYYY-MM-DD HH24:MI:SS') between
    '${LASTMODIFIED}' and '${LASTMODIFIED2}'
   </if>
   
  </foreach>
  )
  where 1=1
  order by ID asc
 </select>

9.如果是一类的东西的话,应该可以放在枚举里面

package com.smp.model.enums;

public enum BizType {
 
 user_query_api("1","用户查询Api"),
 user_login_api("2","用户登录Api");
 ;
 
 private String code;
 private String bizDescription;
 
 private BizType(String code,String bizDescription){
  this.code =  code;
  this.bizDescription = bizDescription;
 }

 public String getCode() {
  return code;
 }

 public void setCode(String code) {
  this.code = code;
 }

 public String getBizDescription() {
  return bizDescription;
 }

 public void setBizDescription(String bizDescription) {
  this.bizDescription = bizDescription;
 }
 
 

}
(3)因为oracle数据库不区分大小写,所以字段可以使用_分割
10.打日志的时候应该按照日期区分来打日志,一般打两个日志,一个是全的日志,也就是所有的日志都在一起,一个异常错误日志;
11.一些可能会变动的参数不应该写死,而是应该写在配置文件里面,而且 配置文件应该写3份,一份是本机开发环境,一个是测试环境,一个是生产环境的;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值