티스토리 뷰
1. JDBC를 이한 DB 접근 3단계
1) 연결하기 -> Connection 생성
2) 질문하기 -> PreparedStatement 생성 후 executeQuery()하기
3) 답변받기 -> ResultSet 이용
개인적으로 생각하는 db 접근 방법이다.
우선 JDBC를 이용한 DB접근을 하기위해서는 JDBC DRIVER가 필요하다. Oracle, MySQL, MsSQL 등 대부분의 디비에서 JDBC 드라이버를 제공해주기 때문에 알맞는 드라이버를 설치해서 Eclipse에 추가하도록 하자.
public class TestMain { public static void main(String[] args) { String serverURL = "jdbc:mysql://localhost:3306/sys"; // 주소:포트/db명 String id = "root"; // 계정명 String pw = "1234"; // 비밀번호 try { Class.forName("com.mysql.jdbc.Driver"); Connection con = DriverManager.getConnection(serverURL, id, pw); String sql = "insert into emp(empno, ename, age, deptno, mgr) values(1, '오라클', 22, 0423, 05)"; PreparedStatement pstmt = con.prepareStatement(sql); pstmt.executeUpdate(); } catch (ClassNotFoundException e) { System.out.println("드라이버가 존재하지 않습니다"); } catch (SQLException e) { e.printStackTrace(); } } }
위의 소스는 Mysql에 접속하기위한 커넥션 객체를 생성하고 Insert 문을 실행시키는 소스이다. 여기서 눈여겨 봐야할 부분은
커넥션 생성 부분, SQL 생성후 질의하는 부분 정도로 나눠볼수 있다.
Class.forName("com.mysql.jdbc.Driver");
임포트시킨 mysql connecter.jar 파일안에 있는 드라이버를클래스를 동적으로 생성후
Connection con = DriverManager.getConnection(serverURL, id, pw);
드라이버 매니저 객채를 통해 커넥션을 만든다. 이때 mysqlURL과, 계정, 비밀번호 정보를 파라메터로 넘겨준다.
String sql = "insert into emp(empno, ename, age, deptno, mgr) values(1, '오라클', 22, 0423, 05)";
그후 수행할 SQL문을 sql 변수에 입력 후
PreparedStatement pstmt = con.prepareStatement(sql); pstmt.executeUpdate();
PrepareStement 객체를 sql문을 넣어 객체를 생성한다.
pstmt.executeUpdate() 메소드를 실행시켜 sql문을 실행한다.
2. Statement
1) Statement
- Statement객체는 매개변수없는 간단한 SQL문을 질의할때 사용된다. SQL문을 실행하고 결과값을 받는데 필요한 기본적인 메소드를 제공한다.
2) PreparedStatement (Statement 상속)
- StatementStatement 객체는 IN 메개변수를 가지거나 가지지 않은 프리컴파일된 SQL문을 실행하는데 사용되고, IN 매개변수들을 다루기 위한 메소드들이 있다.
3) CallableStatement (PreparedStatement 상속)
- 데이터베이스 저장 프로시저의 호출을 실행하는데 사용되며, out 매개변수들을 다루기 위한 메소드들이 있따.
3. 쿼리에 따른 실행 메소드
1) execute()
: SQL문이 여러개의 ResultSet객체나 여러개의 갱신카운트 또는 ResultSet객체들과 갱신 카운트들의 결합을 리턴하는 것이 가능할때 사용한다.
2) executeQuery()
- 하나의 ResultSet을 만드는 SQL문에서 사용(executeQyery 메소드는 ResultSet 객체를 리턴한다.)
- 주로 SELECT문을 이용하는 조회에서 사용됨.
3) executeUpdate()
- INSERT, UPDATE, DELETE 등 (DML), CREATE, DROP 등(DDL)문들을 실행하는데 사용
실행문을 위한 모든 메소드들은 하나가 오픈되어있다면, 호출된 Statement 객체의 현재 ResultSet을 닫아야한다.
이것은 Statement 객체를 다시 실행기전에 현재 ResultSet 객체의 어떠한 처리도 완결해야 할 필요가 있다는 것을 의미한다.
'JAVA' 카테고리의 다른 글
IntelliJ 스프링부트 그래들로 생성하기 (0) | 2018.12.31 |
---|---|
[JAVA] Hwp 한글 문서 테이블 레코드 분석 (2) | 2018.04.02 |
[JAVA] Hwp 한글 문서 Section Stream 분석하기 (빈문서 분석) (1) | 2018.04.01 |
[JAVA] hwp 한글 문서 내부 구조 알아보기 (5) | 2018.03.11 |
[JAVA] hwp 한글 파일 파싱하기 (준비단계) (0) | 2018.02.22 |
- Total
- Today
- Yesterday
- EACCES: permission denied
- 다클 코드
- vite.js
- 빈파일
- HTTPie
- 구글 클라우드 플랫폼
- 합격 후기
- 대항해시대 런처
- 위대한 쇼맨 ost
- OSI 7Layer
- 대항해시대 로그인
- 폴더선택다이얼로그
- 대항해시대 넷마블 런처
- React.js
- Linux
- 위대한 쇼맨
- 위대한 쇼맨 후기
- 정보처리기사 2018 2회
- 대항해시대 다클
- JNI
- 데스큐어
- 다클 빈
- JNI 시그니처
- lxd
- 정처기 실기
- 정보처리기사 실기 후기
- 대항해시대
- JNI SIGNITURE
- 대항해시대 다음 런처
- JNI INVOKE
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |