이번 포스팅에선 자바를 사용하여 데이터베이스(DB)에 데이터를 저장하는 방법에 대해서 소개하겠습니다.
오라클(Oracle)에서 작성했던 쿼리를 문자열에 담아서 DB에 접속하고 쿼리문을 날리는 방식입니다.
쿼리문 작성법을 모르시는 분은 아래 글을 참고하시길 바랍니다.
2017/11/03 - [IT/Language] - 오라클 쿼리문(INSERT, DELETE, UPDATE) 작성하는 법
DB는 오라클을 예시로 하겠습니다.
private String ip = "127.0.0.1"; //ip 주소 private int port = 1521; //port 번호 private String id = "user"; // 사용자 계정 private String password = "123"; //패스워드
DB 접속에 필요한 정보들을 세팅합니다. ip주소, port번호, 계정, 패스워드가 필요합니다.
물론 직접 넣어도 상관없지만 변수에 할당해서 사용하는 것을 추천합니다.
이렇게 계정 정보를 하드코딩하는 것은 절대로 피해야하는 위험한 방법이지만 예시기 때문에 하드코딩해서 하겠습니다.
어차피 우리같이 배우는 단계의 사람들은 암호화를 하는 수준까지는 아니니까요.
이제 DB에 접속해서 쿼리를 날려보도록 하겠습니다.
try { Connection conn = null; Statement stmt = null; conn = DriverManager.getConnection("jdbc:oracle:thin:@" + ip + ":" + port + ":" + sid, id, password); stmt = conn.createStatement(); stmt.executeQuery(sql); stmt.close(); conn.close(); } catch(Exception e) { e.printStackTrace(); }
먼저 DB 접속 정보로 Connection 객체를 생성합니다. 생성한 Connection객체로 DB에 연결을 하고 executeQuery로 생성한 쿼리를 보내면 되겠습니다.
Statement보다 PreparedStatement를 사용하는 것이 더 좋지만 예시에선 Statement를 사용했습니다.
모든 작업이 끝나면 반드시 statement와 connection을 close해주셔야됩니다.
DB에 연결하고 쿼리를 날리는 부분까지 알아봤습니다. 정말 짧은 코드로 수행되죠.
이제 쿼리문을 작성해보도록 하겠습니다.
문자열 형태로 쿼리문을 만들어주면 됩니다.
단, 여기서 주의할 점은 오라클 쿼리문 작성시처럼 문자열 값엔 ''이 필요하다는 것입니다.
그럼 예시를 보여드리겠습니다.
sql = "INSERT CUSTOMER (NAME, AGE, ADDRESS) VALUES('" + name +"'," + age + ",'" + address +"')";CUSTOMER 테이블의 NAME칼럼에 name을, AGE칼럼에 age를 ADDRESS칼럼에 address 값을 INSERT하는 쿼리문입니다.
sql = "INSERT BLACKLIST (NAME, AGE, ADDRESS, DATE) VALUES('" + name +"'," + age + ",'" + address + "',sysdate)";
BLACKLIST 테이블의 NAME칼럼에 name을, AGE칼럼에 age를 ADDRESS칼럼에 address를 DATE칼럼에 시스템 상의 시간 을 INSERT하는 쿼리문입니다.
sql = "DELETE FROM CUSTOMER WHERE AGE="+age;
CUSTOMER테이블에서 AGE칼럼의 값이 age인 행을 DELETE하는 쿼리문입니다.
sql = "INSERT ALL " + "INTO CUSTOMER (NAME, AGE, ADDRESS) VALUES('" + name +"'," + age + ",'" + address +"')" + "INTO BLACKLIST (NAME, AGE, ADDRESS, DATE) VALUES('" + name +"'," + age + ",'" + address + "',sysdate)" + "SELECT * FROM DUAL";
CUSTOMER테이블과 BLACKLIST테이블에 동시에 INSERT하는 쿼리문입니다.
sql = "UPDATE CUSTOMER SET NAME = '"+ name +"', AGE = "+ age +", ADDRESS = '"+address+"' WHERE NAME = '"+"Hong'";
CUSTOMER테이블의 NAME이 Hong인 행을 찾아서 NAME칼럼을 name으로, AGE칼럼을 age로, ADDRESS칼럼을 address로 수정하는 쿼리문입니다.
사실 쿼리문을 작성하는 것은 오라클에서 사용하는 것과 똑같습니다.
다만, 문자열 형태로 작성하다보니 조금 더 복잡하게 느껴지는 것 뿐입니다.
기본적인 부분이지만 도움이 될까 싶어서 포스팅해봤습니다. 모두 잘되시길 바랍니다.
'IT > Language' 카테고리의 다른 글
JAVA - PreparedStatement 사용하기 (2) | 2017.12.13 |
---|---|
오라클 쿼리문(INSERT, DELETE, UPDATE) 작성하는 법 (0) | 2017.12.08 |
JAVA - 오라클 트랜잭션(Transaction) 명령어 - COMMIT, ROLLBACK, SAVEPOINT (0) | 2017.12.06 |
Java DOM파서 3편 - "<"를 가진 xml파일 파싱하기(특수문자 치환) (0) | 2017.12.05 |
오라클 시퀀스(Sequence) 사용 및 .NEXTVAL 초기화 (0) | 2017.12.03 |