使用spring MVC框架所遇问题汇总

1. sql查询出来的字段必须严格和dto对应

2. 分页操作时,page和pageNo统一一下

3. 时间代码:

Date date =new Date();
SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String replytime=sdf.format(date);

4. 关于编号自增:

  1.把自增字段类型改为int
  2.设置索引:ALTER TABLE `表名` ADD INDEX 索引名 ( `字段名` ) 
  3.设置该字段的自增属性 AUTO_INCREMENT
  4.设置该字段的初始值  alter `表名` AUTO_INCREMENT=默认值

5. 有关返回字段信息转化为所需信息

field:'sex',align:'center',title: '性别'
,templet: function(d){
   if(d.sex == '0'){
    return '男'
     } else if(d.sex == '1'){
       return '女'
        }
    else{
    return '未知'
   }
}

6. 处理异常:

import com.alibaba.dubbo.config.annotation.Reference;

原因:数据库字段不匹配(int和string)

7. 获取外键:

String deptid=(String) session.getAttribute("loginAccountDeptId");
params.put("deptid", deptid);

8.undefined

如果是undefined,则list.isEmpty()==false

9. 404原因:

1.url写错了,2.在impl中是XXXdao.XXX();
null:1.sql语句有问题

10.处理异常-99原因:

可能是接收的字段和url字段不匹配

11.空对象中不能调用方法

空对象中不能调用方法,所以需要在此之前先判断对象是否为空。
在这里插入图片描述

12.’%#{name}%’ 是无法正确运行

但是使用 ${} 无法防止sql注入 ,所以实际应用时使用concat函数连接字符串
如:

select * from smbms_role where roleName like  concat('%',#{name},'%')

13.直接在sql语句中获取当前时间

使用now()

14.部分值插入,部分未插入,显示保存成功,一定是占位符的问题

15. id直接在数据库中生成:

VALUES(REPLACE(UUID(),’-’,’’), 1,

16. 字符串比较不能用== 用.equal(“”);

17.json解析—两层

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
public class coursetest {
    public static void main(String[] args) {
     String date = "[{'num':'成绩', '外语':88, '历史':65, '地理':99, 'object':{'aaa':'1111','bbb':'2222','cccc':'3333'}}," + "{'num':'兴趣', '外语':28, '历史':45, '地理':19, 'object':{'aaa':'11a11','bbb':'2222','cccc':'3333'}}," + "{'num':'爱好', '外语':48, '历史':62, '地理':39, 'object':{'aaa':'11c11','bbb':'2222','cccc':'3333'}}]";
     JSONArray myJsonArray = JSONArray.parseArray(date);
      for (int i = 0; i < myJsonArray.size(); i++) {
       JSONObject json = myJsonArray.getJSONObject(i);
       String str = json.getString("object");//第一层解析
         JSONArray myjson2 = JSONArray.parseArray(str);
          int size = myjson2.size();
           for (int j = 0; j < size; j++) {
            JSONObject S = myjson2.getJSONObject(j);\
             String aaa = S.getString("aaa");//第二层解析
            }
       }
    }
}

18.日期比较

.getTime()方法就转换为long了,之后在进行日期比较!!!
首先,如何判断一个表示时间的数字的单位是秒还是毫秒?
先说结论:
10位数字,单位是秒
13位数字,单位是毫秒

why?
一般计算机中表示时间的数字是指1970年1月1日到现在一共经历了多长时间(时间戳)。以现在2017年6月30号举例,从1970年到现在大约过去了47.5年。那么以秒来计算,当前的时间戳大约为 47.5年 * 365天 * 24小时 * 60分钟 * 60 秒 = 1.49e9 ,也就是一个十位的数字。如果要变成一个十一位的数字,那大约还要花269年。所以,当你看到一个表示时间10位数字,那么单位就是秒。进一步推理,如果是毫秒值 = 秒 * 1000,所以毫秒是13位数字。

再回到你的问题,显然你是按秒为单位去处理了一个毫秒的值, 你只需要按照毫秒来处理这个数字就好了,或者先用这个毫秒值除以1000再按秒去处理,但这样会失去毫秒的精度。

19.null不能.toString!!!

在这里插入图片描述

20.service=null的时候,对象创建不成功,所以要检查@Reference 会报错500,java.lang.NullPointerException

list = new ArrayList(new HashSet(list));//合并且去重

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值