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