본문 바로가기

Backend/JAVA

12/04 회고

반응형

hashMap에서 key값으로 Value가져오기

hashMap.put("a", "1");
hashMap.put("b", "aa");
hashMap.put("c", "2");
hashMap.put("d", "d");
 
// value -> key
System.out.println(getKey(hashMap,"1"));
//1이라는 value 값을 통해서 얻은 key 값 -> a
System.out.println(getKey(hashMap,"2"));
//2라는 value 값을 통해서 얻은 key 값 -> d
// hashmap에서 for문으로 value -> key
public static <K, V> K getKey(Map<K, V> map, V value) {
	for (K key : map.keySet()) {
		if (value.equals(map.get(key))) {
			return key;
		}
	}
	return null;
}
 
// key -> value
String getA = (String) hashMap.get("a");
//a란 key값을 통해서 value 값은 -> 1
String getB = (String) hashMap.get("b");
//b란 key값을 통해서 value 값은 -> aa
}

 

 

SQL쿼리

한 테이블에서 상위 메뉴와 하위메뉴의 상태를 동시에 변경하려함

처음에 서브 쿼리나 조인으로 한번에 수정하려 하였으나

SQL Error [1093] [HY000]: (conn=297044) Table 'MENU' is specified twice, both as a target for 'UPDATE' and as a separate source for data

에러가 발생한다.

그래서 생각해보니 그냥 둘다 같은 값을 가지고 있으니 같은 값인 것들 찾아서 수정하면 OK였다.

<!-- 에러남 -->
<!-- UPDATE sample.MENU
SET MENU_SHOWYN = #{showYN}
WHERE MENU_ID = #{menuId}
   OR MENU_PARENT_ID IN (SELECT MENU_ID FROM sample.MENU WHERE MENU_ID = #{menuId}); -->
<!-- 사용 -->
UPDATE sample.MENU
SET MENU_SHOWYN = #{showYN}
WHERE MENU_ID = #{menuId}
   OR MENU_PARENT_ID  = #{menuId};

 

반응형

'Backend > JAVA' 카테고리의 다른 글

12/15 뻘짓  (0) 2023.12.15
12/06 회고  (0) 2023.12.06
12/01 회고  (0) 2023.12.01
12/1 회고  (0) 2023.12.01
[Java] Map의 key로 value존재 여부 확인  (0) 2023.10.04