错误汇总
- 1. sql查询出来的字段必须严格和dto对应
- 2. 分页操作时,page和pageNo统一一下
- 3. 时间代码:
- 4. 关于编号自增:
- 5. 有关返回字段信息转化为所需信息
- 6. 处理异常:
- 7. 获取外键:
- 8.undefined
- 9. 404原因:
- 10.处理异常-99原因:
- 11.空对象中不能调用方法
- 12.'%#{name}%' 是无法正确运行
- 13.直接在sql语句中获取当前时间
- 14.部分值插入,部分未插入,显示保存成功,一定是占位符的问题
- 15. id直接在数据库中生成:
- 16. 字符串比较不能用== 用.equal(“”);
- 17.json解析---两层
- 18.日期比较
- 19.null不能.toString!!!
- 20.service=null的时候,对象创建不成功,所以要检查@Reference 会报错500,java.lang.NullPointerException
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));//合并且去重