반응형
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};
반응형