IT/DB7 Common DBCP 속성/옵션 이해하기 최근, 사이트로부터 오라클DB의 readTimeout이 적용되지않는다는 이슈를 받고 DataSource 생성소스를 분석했다.결과적으로 패치 미적용으로 인한 해프닝으로 일단락되었지만, DataSource를 생성할때 ip, port, sid같은 기본적인 속성들 이외에 maxWaitMillis, timeBetweenEvictionRunsMillis 같은 속성들은 어떤 의미를 지니는지 궁금하여 리서치하다가 좋은 글을 발견하여 이번기회에 정리해놓기로 했다.(참고로 readTimeout은 dbcp 라이브러리 고유설정이 아니며, JDBC 드라이버설정이다) DBCP란?데이터베이스를 연결할때는 기본적으로 효율을 위하여 커넥션 풀을 사용한다. 커넥션을 한번 맺고 끊는건 꽤나 많은 비용이 소모되기에 매순간마다 커넥션을.. 2024. 10. 9. 오라클 계정내 모든 테이블 삭제하기 개발 진행하다가 처음부터 다시 설치해보고싶은 때가 있다. (솔루션 설치라던지)그럴때마다 계정을 새로 파는것은 번거로우니, 현재 계정내에 있는 모든 테이블을 DROP하면 처음부터 할 수 있다. SELECT 'DROP TABLE ' || TABLE_NAME || ' CASCADE CONSTRAINTS;' FROM user_tables; 해당 쿼리를 실행하면 현재 계정내의 모든 테이블 정보를 확인 가능하다.쿼리 결과를 전부 복사한다음에 notePad++ 같은 툴로, 필요한 부분을 짤라서 그대로 진행시키면 모든 테이블 삭제가능. 2024. 7. 15. ORACLE 정리 계정안에있는 모든테이블 DROP문 생성 SELECT 'DROP TABLE "' || TABLE_NAME || '" CASCADE CONSTRAINTS;' FROM user_tables; - 해당 결과를 notepad등으로 필요부분 짤라서 만들면된다. 해당 테이블관련 로그확인 SELECT * FROM TABLE_NAME AS OF TIMESTAMP(SYSTIMESTAMP-INTERVAL '2880' MINUTE); - 테이블 날려먹었을때 이전 기록을 봐서 유용하게 살릴수있다. 2023. 3. 27. mysql 정리 # mysql 접속 mysql -u root -p # mysql DB 접근 mysql> use mysql # 기본 권한 조회 mysql> select * from user where user = [사용자ID] # 사용자별 권한 확인 mysql> SHOW GRANTS FOR '사용자계정'@'호스트'; # 접속된 계정 권한 확인 mysql> SHOW GRANTS FOR CURRENT_USER; db생성 : create database 디비명 default character set utf8; 권한 : grant all privileges on 디비명.* to 계정명@'%' identified by '비번'; ← 계정이랑 비번 같이 생성됨. flush privileges; 한글꺠질때 /etc/mysql/my.c.. 2023. 3. 27. mysql 도커 실행 # mysql 접속 mysql -u root -p # mysql DB 접근 mysql> use mysql # 기본 권한 조회 mysql> select * from user where user = [사용자ID] # 사용자별 권한 확인 mysql> SHOW GRANTS FOR '사용자계정'@'호스트'; # 접속된 계정 권한 확인 mysql> SHOW GRANTS FOR CURRENT_USER; db생성 : create database 디비명 default character set utf8; 권한 : grant all privileges on 디비명.* to 계정명@'%' identified by '비번'; ← 계정이랑 비번 같이 생성됨. flush privileges; 한글깨질때 /etc/mysql/my.c.. 2022. 1. 24. mybatis $ # 차이 select user_nm, user_id from user where user_id = #{user_id} and user_pwd = #{user_pwd} $ (Statement) SELECT ID FROM test WHERE num= ${num} Oracle로 넘어온 쿼리 SELECT ID FROM test WHERE num = 77 실제 수행 쿼리 SELECT ID FROM test WHERE num = 77 num값이 달라지면 다른쿼리로 인식하기때문에 새로 파싱등의작업으로 속도 저하 '$'와 같은 경우 자주 바뀌지 않거나 사용자의 입력을 받는 경우가 아닐 때 사용하면 좋습니다. 예를 들어 컬럼명. 만약 사용자의 입력을 받는 경우 SQL Injection 보안 위험이 발생합니다 # (prepared.. 2022. 1. 24. 이전 1 2 다음