每日记载内容总结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 不需要特殊的操作,他直接返回一个月中的第几天
posted @ 2018-10-19 19:05  CalronLoveRonnie  阅读(121)  评论(0编辑  收藏  举报
AmazingCounters.com