-
반응형
RDB -> 데이터가 서로 관계가 있는 DB형태
Table - 데이터가 저장될 형태Colum - 테이블에 들어갈 데이터 목록, 열
Row - 행, Colum에 들어가는 데이터, 레코드, 행이 아닌 Row라고 부른다.
Primary Key (PK) - 하나이상의 키, 테이블의 한 Row를 대표하는 키, Null값이 올 수 없다.
중복검사를 한다. 중복되면 안된다.
특정 행을 참조하기 위해 사용된다.
PK없이는 특정 행을 업데이트하거나 삭제하는것이 힘들다.
Foriegn Key (FK) - 외부 테이블에서 오는 키, 다른 테이블에서의 PK를 참조한다.
SQL - CRUD -> Create, Read, Update, Delete
Create -> Insert into
Read -> Select
Update -> Update set
Delete -> Delete
SELECT 하고 Tab으로 여백 맞추기
DAO - Data Access Object -> 데이터에 접근하는 오브젝트1. DB에 접근한다.
2. Query 준비 및 실행
3. Query 결과 출력
package com.ktds;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;public class HRDao {public static void main(String[] args) {new HRDao().run();}public void run() {/** DB에 접근해 EMPLOYEES 테이블의 정보를 출력한다.*/// 1. DB에 접근한다.// 오라클에 접근하기 위한 객체 Loadtry {// ExceptionClass.forName("oracle.jdbc.driver.OracleDriver");} catch (ClassNotFoundException e) {System.out.println( e.getMessage() );}// Oracle 접속Connection conn = null;PreparedStatement pstmt = null;ResultSet rs = null;try {conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE" // DB에 접근하기 위한 url, "DB_ID", "DB_PW");// 2. Query 준비 및 실행// Query만 적는다. 세미콜론 제외// Query를 만들어서 DB한테 요청해주는 역할pstmt = conn.prepareStatement("SELECT * FROM EMPLOYEES");// 3. Query 결과 출력rs = pstmt.executeQuery();// 결과 출력while ( rs.next() ) {int employeeID = rs.getInt("EMPLOYEE_ID");String firstName = rs.getString("FIRST_NAME");String lastName = rs.getString("LAST_NAME");String hireDate = rs.getString("HIRE_DATE");double commissionPct = rs.getDouble("COMMISSION_PCT");System.out.printf("%d, %s, %s, %s, %f\n",employeeID,firstName,lastName,hireDate,commissionPct);}} catch (SQLException e) {System.out.println( e.getMessage() );}}}// 메모리 누수 문제가 있다.연결을 끊지 않는 이상 메모리가 계속 쌓인다.
연결을 하고 볼일을 다 봤으면 연결을 끊어야 한다.
그래서 catch이후에 finally에 코드를 작성한다.
package com.ktds;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;public class HRDao {public static void main(String[] args) {new HRDao().run();}public void run() {/** DB에 접근해 EMPLOYEES 테이블의 정보를 출력한다.*/// 1. DB에 접근한다.// 오라클에 접근하기 위한 객체 Loadtry {// ExceptionClass.forName("oracle.jdbc.driver.OracleDriver");} catch (ClassNotFoundException e) {System.out.println( e.getMessage() );}// Oracle 접속Connection conn = null;PreparedStatement pstmt = null;ResultSet rs = null;try {conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE" // DB에 접근하기 위한 url, "HR", "alqaeda7");// 2. Query 준비 및 실행// Query만 적는다. 세미콜론 제외// Query를 만들어서 DB한테 요청해주는 역할pstmt = conn.prepareStatement("SELECT * FROM EMPLOYEES");// 3. Query 결과 출력rs = pstmt.executeQuery();// 결과 출력while ( rs.next() ) {int employeeID = rs.getInt("EMPLOYEE_ID");String firstName = rs.getString("FIRST_NAME");String lastName = rs.getString("LAST_NAME");String hireDate = rs.getString("HIRE_DATE");double commissionPct = rs.getDouble("COMMISSION_PCT");System.out.printf("%d, %s, %s, %s, %f\n",employeeID,firstName,lastName,hireDate,commissionPct);}} catch (SQLException e) {System.out.println( e.getMessage() );} finally {// 연결을 하고 있다면// DB 연결 해제 - DB를 연 역순으로 closeif ( rs != null ) {try {// DB 연결 해제rs.close();} catch (SQLException e) {}}if ( pstmt != null ) {try {// DB 연결 해제pstmt.close();} catch (SQLException e) {}}if ( conn != null ) {try {// DB 연결 해제conn.close();} catch (SQLException e) {}}}}}반응형'DB' 카테고리의 다른 글
MySQL Driver (0) 2018.08.28 DB Study2 - Ariticle (0) 2018.08.10 Java, DB 작성 - DB Study (0) 2018.08.10 INSERT - COMMIT, ROLLBACK (0) 2018.08.08 요구사항 설계 - 테이블 설계 (0) 2018.08.07 댓글