DB connection

devlsn96·2024년 9월 6일
0

1. DB connection

✔ DB connection을 위한 사전 설정

  • Oracle DB서버에 연결할 계정이 필요하다.
    (최고관리자 계정을 통해 계정을 생성한다)
  • DBeaver에서 서버에 생성된 계정을 connection한 후, jsp프로젝트에 연결할 test테이블을 생성한다.

1-1. jdbc

: java DataBase Connectivity

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

1-2. ojdbc

  • Oracle에서 제공하는 Oracle DB를 관리할수 있도록 도와주는 jdbc이다.
  • Oracle DB를 설치할때 만들어지는 라이브러리인 ojdbc를 다음 경로에서 찾아 jsp프로젝트 라이브러리폴더에 등록한다.

2. DB connection 코드 구현하기

  • 커넥션을 위해서는 기본적으로 필요한 자바 코드들이 있다.

    DB connection 코드정보

    • Connection 객체 생성한다.
      Connection conn = null;
    • Oracle드라이버의 이름과 url경로, 유저정보 등 DB connection에 기본적으로 필요한 정보를 작성한다.
      String driver = "oracle.jdbc.driver.OracleDriver";
      String url = "jdbc:oracle:thin:@localhost:1521:xe";
      String user = "jsp";
      String password = "jsp";
    • Connection 객체를 DriverManager객체로 실제 db서버와 연결해준다.
    • sql 쿼리구문을 선언해주고, PreparedStatement객체로 그 값을 연결한다.
    • 그리고 실행될 수 있도록 완료명령을 주면 된다. (이 과저에 혹시 오류가 없는 지 try catch구문으로 예외처리해준다.)
      	int check = 0;
          try {
       		Class.forName(driver);
       		conn = DriverManager.getConnection(url, user, password);
        		String sql = "";	
        		PreparedStatement pstm = conn.prepareStatement(sql);
        		check = pstm.executeUpdate();
      	} catch(Exception e) {
        		System.out.println("예외상황발생");
      		e.printStackTrace();
      	}

2-1. sql구문을 작성하기

  • dbeaver에서 테이블을 CRUD작업을 할수 있지만, 자바언어로 다음과 같이 표현할 수 있다.
String sql = "INSERT INTO CAR c VALUES ('3', 'k7', 'White', 700000000)";
  • insert, update, delete로 작성된 구문은 테이블에 적용된 건수를 return한다.
String sql = "INSERT INTO CAR c VALUES ('3', 'k7', 'White', 700000000)";
PreparedStatement pstm = conn.prepareStatement(sql);
check = pstm.executeUpdate();
if (check != 0) {
   			System.out.println("데이터 삽입 성공!");
} else {
   			System.out.println("데이터 삽입 실패!");
}
  • 반면, select쿼리 실행 시에는, 조회된 건수를 리턴하기 때문에 , executeQuery()를 호출해서, 실행결과로 ResultSet형으로 리턴하고, 조회된 건수를 리턴한다.

    resultset

    • select 쿼리 실행 시 executeQuery()를 호출해서, 실행 결과로 ResultSet형으로 리턴한다.

String sql = "SELECT SYSDATE FROM DUAL";
PreparedStatement pstm = conn.prepareStatement(sql);
ResultSet rs = pstm.executeQuery();
if(rs.next()){ out.print(rs.getDate(1)); }
  • 조건이 추가된 테이블 조회를 하는 경우
    만약에, carnum = 2라고 한다면, 변수 sql에 해당 조건과 ?(변수)를 대입한 후, setString(n번째, ?의 매개변수)
String carnum = "2";
String sql = "SELECT COLOR FROM  CAR WHERE CARNUM = ?";
PreparedStatement pstm = conn.prepareStatement(sql);
pstm.setString(1, carnum);
ResultSet rs = pstm.executeQuery();
if (rs.next()) {
		out.print("컬러 : " + rs.getString(1));
}
profile
Quantum Jump to class for java….

0개의 댓글