DAY38(1) - DBMS 연동, ojdbc

은나현·2023년 3월 21일
0

📌 1. DBMS 계정 생성

  • DBMS에서 새로운 계정을 생성할 때는 최고 관리자인 system계정으로 생성해야 한다.
  • windows cmd창에서 생성할 수 있다.
    • sqlplus system/비밀번호
  • 계정의 아이디와 패스워드를 지정해서 생성한다.
    • create user [id] identified by [pw];
  • 생성한 계정에 허용 권한을 지정한다.
    • grant connect, resource to [id];


📌 2. ojdbc

📍 2-1. jdbc

  • jdbc : Java DataBase Connectivity
    • 자바에서 데이터베이스에 접속/관리할 수 있게 해주는 드라이버 (API)
    • 자바로 작성된 프로그램으로 DB와 관련된 작업을 처리할 수 있도록 제공되는 기능(코드)들을 모아놓은 것이다.

📍 2-2. ojdbc

  • ojdbc : Oracle jdbc
    • 오라클에서 제공하는, 오라클 DB를 관리할 수 있도록 도와주는 JDBC

📍 2-3. 프로젝트에 ojdbc 사용하기

  • ojdbc.jar는 대개 다음과 같은 경로에서 찾을 수 있다.
    C:\oraclexe\app\oracle\product\11.2.0\server\jdbc\lib
  • 원하는 jar 파일을 lib폴더 안에 붙여넣기하고 build path에 추가한다.
  • 커넥션을 생성할 때는 driver와 url이 필요하다.
    • String driver = "oracle.jdbc.driver.OracleDriver";
    • String url = "jdbc:oracle:thin:@localhost(외부주소일 경우 IP주소):1521(포트주소):xe(db)"; // (목적지:Oracle DB)

📌 3. ojdbc 주요 메서드

📍 3-1. getConnection()

  • 기본적인 커넥션 생성법
    • DriverManager.getConnection(url, user, password);
      			Connection conn = null;
      			// 활용할 드라이버
      			String driver = "oracle.jdbc.driver.OracleDriver";
      			// 목적지
      			String url = "jdbc:oracle:thin:@localhost:1521:xe";
      			// dbms 계정명, 비밀번호 
      			String user = "jsp";
      			String password = "jsp";
      			Class.forName(driver);
      			conn = DriverManager.getConnection(url,user,password);

📍 3-2. prepareStatement()

  • 생성한 커넥션에 sql문을 전송한다.
    • PreparedStatement pstm = conn.prepareStatement(sql);
  • sql문에 담을 값이 유동적일 경우 물음표?로 처리하고 PreparedStatement에 값을 set할 수 있다.
    • ptsm.setString(인덱스, 값)
    • ptsm.setInt(인덱스, 값)
      • 예시
      		String sql = "SELECT age FROM MEMBER WHERE NAME=?";
              PreparedStatement pstm = conn.prepareStatement(sql);
      		pstm.setString(1,name);

📍 3-3. executeQuery(), executeUpdate()

  • executeQuery() : select구문을 수행할 때 사용한다. ResultSet을 반환한다.
    • ResultSet rs = pstm.executeQuery();
  • executeUpdate() : select구문 외의 insert, delete, update 관련 구문을 수행할 때 사용한다. 수행 결과로 반영된 레코드 건수를 int 타입으로 반환한다.
    • int result = pstm.executeUpdate();

📍 3-4. ResultSet

  • executeQuery() 메서드로 select 쿼리 실행 시 실행 결과가 java.sql.ResultSet형으로 리턴된다.

  • next() : ResultSet 내에서 커서를 하나씩 옮긴다.

    • while(ResultSet.next())형태로 사용하면 ResultSet 내에 있는 자료를 순서대로 돌며 열람한다.
    while(rs.next(){
    	...반복할 구문...
        }
  • get자료형() : 원하는 자료형의 자료를 인덱스값이나 열이름을 통해 가져올 수 있다.

    • getInt(int columnIndex) : columnIndex번째 컬럼의 값을 가져온다.
    rs.getInt(1);
    • getString(String columnName) : columnName 값을 가져온다.
    rs.getString("name"); 

0개의 댓글