1. 程式人生 > 資料庫 >Java 避免多次查詢資料庫獲取相同的值 減少查詢資料庫的小技巧

Java 避免多次查詢資料庫獲取相同的值 減少查詢資料庫的小技巧

文章目錄

通過Map集合儲存資料

1、使用場景

多次訪問資料庫,但查詢的資料結果集是不變的。
比如:1、新增記錄到資料庫
這條記錄中有一個唯一標識,這時候需要查詢資料庫,進行判斷是否資料庫中已經存在該值。
2、新增資料時,給的是名稱,但要求存的是主鍵,需要到另一個表去查詢這些資料。

2、使用方法

// Map<key, value> map = new HashMap<key, value>();
// key是唯一的,後面加入的key會把相同的前面的值覆蓋
// key和value 的資料型別是Object
Map<Object, Object> map = new HashMap<Object, Object>();// jdk版本不同,new HashMap()初始化不一樣
...
	// 把查出來的資料存放到map中
	// 需要的時候再用對應的值取出
	// 常用的方法
	map.getKey();// 通過key獲取value,返回value值
	map.containsKey(key);// 是否包含key,返回true/false
	map.containsValue(value);// 是否包含value,返回true/false
	// 遍歷
	for(Map.Entry<Object, Object> m: map.entrySet()){
		Object = m.getkey();// 獲取key
		Object = m.getValue();// 獲取value
	}
...

3、舉例說明

班上來了幾位新同學,需要把同學的資訊新增到學生表裡面
學號作為唯一標識,新增資料的時候就要校驗

	// 語句
	String sql_query= "select 學號 from student";
	String sql_insert= "";
	
	// 方法呼叫
	QueryValue(sql_query);
		
	// 存值
	Map<Integer, Object> map = new HashMap<Object, Object>();
	for(int i = 0; i< QueryValue(sql_query).length){
		...
			//map.put(key,value);
			map.put(i,queryValue[i]);
		...
	}
	// 取值判定,value 表示要新增的學號
	if(map.containsValue(value)){
		throw new Exception("資料表中已經存在這個學號!\n"+ value);// 丟擲錯誤,中斷執行
	}else{
		InsertValue(sql_insert);// 新增資料,一般也要做異常處理
	}