728x90
반응형
서버와 DB가 Connection을 어떻게 구성하는지 설명해 주세요.
- 웹 어플리케이션 서버(WAS)와 데이터베이스 간의 연결은 일반적으로 JDBC(Java Database Connectivity) 드라이버를 사용하여 구성된다.
- JDBC는 자바 언어로 다양한 종류의 관계형 데이터베이스에 접속하고 SQL문을 수행하여 처리하고자 할 때 사용되는 표준 SQL 인터페이스 API이다.
- DBMS 종류(MySQL, MsSQL, Oracle 등)에 상관 없이 하나의 JDBC API를 사용해서 데이터베이스 작업을 처리할 수 있게 된다.
1. 드라이버 로드
- DB 종류에 맞는 드라이버를 로드합니다.
- Class.forName("driver")을 사용해서 Driver Class를 로딩하여 객체를 생성합니다.
- 생성된 객체는 DriverManager에 등록됩니다.
- DriverManager 클래스는 로드된 JDBC드라이버를 통해서 Connection을 활성화해주는(만드는) 객체입니다.
- Oracle JDBC_DRIVER : Class.forName("oracle.jdbc.driver.OracleDriver");
- MSSQL JDBC_DRIVER : Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
- MySQL JDBC_DRIVER : Class.forName("org.git.mm.mysql.Driver"); OR Class.forName("com.mysql.jdbc.Driver");
2. 데이터베이스 계정 연결
- DriverManager.getConnection() 메소드로 Connection 객체 생성해줍니다.
- DB_URL, DB_ID, DB_PW 을 매개변수로 갖습니다.
- Connection은 DB와 연결하는 객체입니다.
- Connection conn = DriverManager.getConnection(DB_URL, ID, PW);
- Oracle DB_URL = jdbc:oracle:thin:@ip:1521:ORCL
- MSSQL DB_URL = jdbc:sqlserver:ip:1433;DatabaseName=DB명
- MySQL DB_URL = jdbc:mysql://ip:3306/DB명
3. SQL문 실행을 위한 객체 생성
3.1 파라미터를 입력 받아 동적인 쿼리문을 실행할 경우
- PreparedStatement pstmt = conn.prepareStatement();
3.2 정적인 쿼리문을 실행할 경우
- Statement stmt = conn.createStatement();
4. SQL문 실행
String SQL = "insert into modell values(?,?,?)";
4.1 executeUpdate()
- insert, update, delete등 리턴 값이 필요 없는 쿼리문일 때 사용
- pstmt.executeUpdate(SQL);
- stmt.executeUpdate(SQL);
4.2 executeQuery()
- select등 리턴 값이 필요한 쿼리문일 때 사용
- pstmt.executeQuery(SQL);
- stmt.executeQuery(SQL);
4.3 쿼리실행 후 값을 받아올 경우
- ResultSet rs = null;
- rs = pstmt.executeQuery();
- 또는
- rs = stmt.executeQuery();
- 그 다음
- while(rs.next()){
- String name = rs.getString("name");
- }
- rs.next()는 boolean을 리턴하는데 다음 레코드가 존재하면 true를 반환
5. DB 연결 해제 (리소스 반납)
- finally 블럭에서 close()를 이용하여 리소스를 생성한 역순으로 반납
- conn.close()
- pstmt.close()
- stmt.close()
https://hsunnystory.tistory.com/160
https://cobook.tistory.com/6#--%--Statement%--SQL%EC%BF%BC%EB%A-%AC%--%EC%-B%A-%ED%--%--
728x90
반응형
'DB' 카테고리의 다른 글
[postgreSQL] 포스트그레스 설치하기(windows) (0) | 2024.01.08 |
---|---|
도커를 이용한 mongDB 설치하기 (0) | 2023.09.21 |
[DB] ORM, 장단점, 종류 질문, 답변 (0) | 2023.05.10 |
[DB] 트랜잭션, Lock, ACID, 격리 수준 질문, 답변 (0) | 2023.05.10 |
[DB] JOIN, 종류, ON, HAVING, 쿼리수행순서 질문, 답변 (0) | 2023.05.10 |
댓글