1. 程式人生 > >每日記載內容總結47

每日記載內容總結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