데이터베이스 46

jdbc와 dbcp차이

출처 : http://leminity.tistory.com/20문제있으면 지우겠습니다. 오늘 일과중에 예전에 학원에서 같이 교육받았던 동생한테서 연락이 와서이런 저런 얘기를 나누다가 요즘은 뭐 배우고 있냐고 물었더니, JDBC랑 DBCP를 배웠는데갑자기 DBCP가 더 빠르다고 말한다. 왠지 어감이 JDBC와 DBCP의 관계를 오해하는 것 같아, 이 글을 포스팅 하게 되었다. JDBC와 DBCP의 정의JDBC : Java Data Base Connectivity. 한글로 번역하면, 자바 데이터 베이스 연결. 정의는 DataBase와 연결하기 위한 Java Interface이다.DBCP : DataBase Connection Pool. 역시 간단하게 정리하면 DataBase와 Connection을 맺고 있는..

데이터베이스 2014.05.28

mysql 외부접속 허용하기

mysql이 외부로도 서비스가 가능하게 하려면,몇 가지의 확인사항과 그 외에 추가적인 설정을 해야 할 필요가 있습니다. mysql이 설치된 서버의 운영체제를 명시해주시지 않아서,유닉스 계열 운영체제라 가정하고 설명드리겠습니다. #1.우선, 기본적으로 mysql 은 tcp 3306 번 포트를 통해 서비스를 제공합니다.따라서, 외부에서 DB에 접근할 수 있도록 하기 위해서는서버의 tcp 3306 번 포트가 방화벽에 막혀 있지는 않은지 확인해야 하며만약 막혀 있을 경우 열어주어야 합니다. iptables -L 명령으로 차단/허용 리스트 조회가 가능합니다. 만약 포트가 막혀 있을 경우, # iptables -I INPUT -p tcp --dport 3306 -j ACCEPT 명령으로 열어주시면 됩니다. #2.그..

데이터베이스 2014.05.28

페이징처리 관련, 오라클 등 데이터베이스 적용 및 자바 예제

페이징 처리를 할때 무엇을 처리해야할지 생각해보자.일단 SELECT * FROM product ORDER BY no같은 sql로 정렬을 좌악 하는것을 생각할수 있겠다. 그런데 오라클에서는 rownum이라는 top N 쿼리를 이용할수 있는 놈이 있다. 대신 이넘은 order by 가 실행되기전에 rownum이 되므로 원하지 않는 결과값이 나올수 있다.따라서 subquery를 써야할수 있다. SELECT a.* , rownumFROM(SELECT no, name, price, image, description FROM product ORDER BY no DESC) a 근데 이건 1부터 어디전까지 가져오는 건 되도, 4~6가져와라 이런건 없다. 그래서 rownum에 별칭을 준다. SELECT b.*FROM (..

데이터베이스 2014.05.22

데이터베이스 character encoding, Error Code: 1366. Incorrect string value:

기본 우분투로 sudo apt-get install mysql-server mysql-client로 mysql 을 설치하면, 기본 문자 세팅이 latin1으로 되어있을 가능성이 높다.이를 local에서 실행하기위해 같은 구조를 백업받아 다시 튼다면, 테이블 세팅의 인코딩이 계속 latin1으로 되어있어서실행되지 않는다. 따라서, mysql을 설치하면 처음 root설정을 해주고 , 계속해서 처음의 초기 서버 디폴트 설정을 utf8세팅으로 바꾸면 된다. 이러한식의 07011:46:46insert into posting values(96,11,'한글','한글',now())Error Code: 1366. Incorrect string value: '\xED\x95\x9C\xEA\xB8\x80' for colum..

데이터베이스 2014.05.22

Oracle '&'주의

주식 데이터를 입력한다고 해보자 INSERT INTO stock_code_name VALUES(833,'035510','신세계I&C','106301','자료처리 호스팅 포털 및 기타 인터넷 정보매개서비스업',8600000000,5000,1720000 ,'원(KRW)','02-3397-1234','서울특별시 구로구 디지털로31길 61 '); 해당하는 SQL문에는 &가 포함되어있어서 스크립트로 실행할때 값을 넣으라는둥 이상한 소리를 할수있다.그때는 명령창에서 SET DEFINE OFF; 로 해당하는 기능을 꺼주고 집어넣는다. COMMIT; 잊지말자

데이터베이스 2014.05.20

Oracle 10g 원격접속

Oracle 10g에서 명령 프롬프트를 이용해 sql*plus를 이용하고 싶으면,C:\oraclexe\app\oracle\product\10.2.0\server\NETWORK\ADMIN에 네트워크 tnsnames.ora를 수정한다. 임의의 서버이름= (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 000.000.000.000)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = XE) ) ) 를 추가해주고, 이제 SQL명령줄 실행에서 conn 아이디/패스워드@임의의서버이름으로 접속하면 된다.

데이터베이스 2014.05.20

[오라클]조인 (이너조인, 아우터조인)

inner join null데이터는 비교할수없기때문에 부서가 null이면 이너조인에는 안나온다.일치하는 조건을 모두 다가지고 옴 SELECT e.empno, e.ename, d.dnameFROM emp e, dept dWHERE e.deptno = d.deptno outer join null까지 다 가지고옴(+)를 붙이고, 쁠러스가 붙지 않는쪽이 기존 테이블 (누락시키지 않고 싶은 쪽)SELECT e.empno, e.ename, d.dnameFROM emp e, dept dWHERE e.deptno = d.deptno(+) 모든 데이터베이스 공통형식인 ANSI형식으로도 써줄수있다. ANSI - inner join (INNER JOIN이라고 명시해서 써줄수도있다)SELECT e.empno, e.ename,..

데이터베이스 2014.05.12

[오라클] 유용한 명령어 - 데이터변환

TO_CHAR SELECT to_char(sysdate, 'yyyy/mm/dd hh24:mi:ss day') FROM ddong 이렇게 치면 날짜와 요일까지 잘 띄워준다. 월만 가지고오고싶으면 mm만 써주면 된다넘버로 가져오고 싶으면 TO_NUMBER로 감싸면 된다. TO_DATE응용해보자. 날짜랑 그런거는 VARCHAR타입일수도 있고 DATE타입일수도 있다. 이걸 형식일치를 시켜줘야한다.잘 비교를 해야하기 때문에 세심한 변환이 필수다. SELECT * FROM employee WHERE to_date(to_char(hiredate, 'yy/mm/dd'),'yy/mm/dd') = to_date('81/12/03','yy/mm/dd'); NVL만약 보너스가 null인 사람을 가져오고싶은데, 0과 다를바가 ..

데이터베이스 2014.05.12