본문 바로가기

IT/SQL24

Mybatis #{} , ${} 차이 #{} 쿼리 주입 예방, 보안 유리하다. 파라미터라 String으로 들어와 '파라미터'의 형태를 가진다. ${} 파라미터가 바로 출력된다. 해당 컬럼의 자료형에 맞춰 파라미터의 자료형이 변경된다. 쿼리 주입 예방할수 없어 보안 측면에서 불리, 사용자의 입력을 전달할때는 사용하지 않는 것이 좋다. 테이블이나 컬럼명을 파라미터로 전달할 때 사용, #{}의 경우 ''가 붙어 이용하기 어렵다. 2020. 7. 7.
Mybatis where 1=1 사용 이유와 다른 방법 mybatis 이용해서 동적으로 쿼리를 사용하다 보면 SELECT * FROM TABLE_NAME WHERE 1=1 AND a = #{a} AND b = #{b} AND c = #{c} ORDER BY a; 위와 같이 AND나 OR 을 처리하기 위해서 1=1 과 같은 조건을 사용하는 경우가 있다. 이를 방지하기 위해서 mybatis의 trim을 사용한다. SELECT * FROM TABLE_NAME a = #{a} -- 맨앞의 경우 항상 AND가 제거 되기 때문에 사용하지 않았다. AND b = #{b} AND c = #{c} ORDER BY a; SELECT * FROM TABLE_NAME WHERE a = #{a} AND b = #{b} AND c = #{c} ORDER BY a; prefix는 앞에.. 2020. 7. 3.
Oracle 테이블 정보 조회 ※ 아래의 쿼리는 public을 사용하게 된다. 그렇기에 다른 시그마에 같은 테이블 이름이 있는 경우 같이 검색된다. 1. 테이블 조회하기 테이블 유무 조회 SELECT COUNT(*) FROM ALL_TABELS WHERE TABLE_NAME = '테이블 명'; 테이블 목록 조회 SELECT * FROM ALL**_TABLES** SELECT * FROM DBA**_TABLES** SELECT * FROM ALL_OBJECTS WHERE OBJECT_TYPE = 'TABLE' 테이블 목록 조회 (접속한 계정) SELECT * FROM TABS SELECT * FROM USER_OBJECTS WHERE OBJECT_TYPE = 'TABLE' SELECT * FROM USER_TABLES 테이블 코멘트 조.. 2020. 7. 2.
테이블 전체 삭제 SELECT 'DROP TABLE ' || object_name || ' CASCADE CONSTRAINTS;' FROM user_objects WHERE object_type = 'TABLE'; 위의 코드를 실행 후 생성된커리 전체 복사 한 다음 F5 2019. 7. 30.