每日记载内容总结47
1.MyBatis查询结果是null,但是返回值是int的时候,会报错
org.apache.ibatis.binding.BindingException: Mapper method 'com.XXXXX' attempted to return null from a method with a primitive return type (int).
解决办法: 使用MySQL的IFNULL函数,将返回的NULL值转换为0。
SELECT SUM(`BET_AMOUNT`- IFNULL(`PART_REFUND_AMOUNT`,0)) FROM `SINGLE_BET`
2.js set类型
var set_arr = new Set();
console.log(set_arr);
set_arr.add(3);
set_arr.delete('3');
console.log(set_arr.size);
console.log(set_arr);
var mySet = new Set();
mySet.add("foo");
mySet.has("foo"); // returns true
mySet.has("bar"); // returns false
var set_arr_keys = set_arr.keys();
for(var perStr of set_arr_keys){ {
console.log(perStr);
}
3.js map类型
var changeMap = new Map();
changeMap.set(index,ele);
changeMap.get(obj.XID);
changeMap.forEach(function (ele, index, array) {
// ele: 指向当前元素的值
// index: 指向当前索引
// array: 指向Array对象本身
changeMap.set(index,ele);
});
4.js深复制浅复制
var arr1 = new Array();
arr1.push(1);
arr1.push(2);
var arr2 = arr1;
arr1.push(3);
// 数组是复合的数据类型,直接复制的话,只是复制了指向底层数据结构的指针,而不能克隆一个全新的数据;
// 上面的代码中,a2并不是a1的克隆,而是指向同一分数据的另一个指针。修改a2,会直接导致a1的变化。
es5 可以同过下面的方法来克隆一个新的数组:
方法1:
var a1 = [1, 2, 3];
var a2 = a1.concat();
a2[0] = 90;
console.log(a1[0]) //1
方法2:
var a1 = [1, 2, 3];
var a2 = JSON.parse(JSON.stringify(a1));
a2[0] = 90;
console.log(a1[0]) //1
5.Calendar注意事项
Calendar now = Calendar.getInstance();
// 一周的开始为周日
// 1 周日 2 周一 3 周二 4 周三 5 周四 6 周五 7 周六
// 一周第一天是否为星期天
boolean isFirstSunday = (now.getFirstDayOfWeek() == Calendar.SUNDAY);
int weekDay = now.get(Calendar.DAY_OF_WEEK);
//若一周第一天为星期天,则-1
if(isFirstSunday){
weekDay = weekDay - 1;
if(weekDay == 0){
weekDay = 7;
}
}
//打印周几
System.out.println(weekDay);
//另外:
//在获取月份时,Calendar.MONTH + 1
//在获取日期时 Calendar.DAY_OF_MONTH 不需要特殊的操作,他直接返回一个月中的第几天