본문 바로가기
JAVA

JDBC CRUD TEST

by 개폰지밥 2019. 11. 19.
반응형

l  JDBC(Java Database Connectivity)?

-       자바 프로그램 내에서 데이터베이스 시스템의 종류에 구애 받지 않고 질의문(SQL)을 실행하기 위한 표준 데이터베이스 인터페이스

-       데이터베이스 및 어플리케이션 개발자들을 위한 표준 API 제공하는 라이브러리

 

l  JDBC 라이브러리 설정하는 방법

Ex) mysql

Mysql-connector jar 파일을 프로젝트의 libs 폴더 안에 추가하고 Java Build Path을 이용하여 jar파일을 읽혀준다.

libs 폴더는 새로 생성하고 mysql-connectormysql에 홈페이지에서 다운받을 수 있다.

l  DB 접속 해제 절차

접속정보 설정 > 접속 > 접속 실패 여부 검사 > 접속 해제

접속정보

변수

DB서버 접속 주소

db_hostname

“localhost”

포트번호

db_portnumber

3306 (따로 설정 없었으면 default3306으로 되어있음)

데이터베이스 이름

db_database

test

캐릭터 셋

db_charset

“utf8”

계정 이름

db_username

root

계정 비밀번호

db_password

mysql (본인이 mysql 설치했을 때 비밀번호)

 

l  간단한 JDBC TEST

접속에 필요한 정보를 변수로 정의하고, 접속 처리를 위한 객체(Connector)를 선언한다.

<Main01 소스코드>

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.SQLException;

 

public class Main01 {

 

      public static void main(String[] args) {

            // 데이터베이스에 접속하기 위한 정보 정의하기

            String db_hostname = "localhost";

            int db_portnumber = 3306;

            String db_database = "test";

            String db_charset = "utf8";

            String db_username = "root";

            String db_password = "mysql";

 

            Connection conn = null; // null 초기화 한다.

 

            /** 데이터베이스 접속 처리 */

            // 사용하려는 데이터베이스명을 포함한 URL 기술

            // --> jdbc:mysql://localhost:3306/myschool?&characterEncoding=utf8

            String urlFormat = "jdbc:mysql://%s:%d/%s?&characterEncoding=%s";

            String url = String.format(urlFormat, db_hostname, db_portnumber,

                        db_database, db_charset);

 

            // 접속 과정에서 예외처리가 요구된다.

            try {

                  // MySQL JDBC 드라이버 클래스를 로딩해서 DriverManager클래스에 등록한다.

                  Class.forName("com.mysql.jdbc.Driver");

 

                  // DriverManager 객체를 사용하여 DB 접속한다.

                  // --> 접속 URL, 아이디, 비밀번호를 전달

                  // --> DriverManager 등록된 Driver 객체를 사용하여 DB 접속 ,

                  // Connection 객체를 리턴받는다.

                  // --> import java.sql.DriverManager 필요함

                  conn = DriverManager.getConnection(url, db_username, db_password);

 

                  // 성공시 메시지 출력

                  System.out.println("=== DATABASE Connect Success ===");

 

            } catch (ClassNotFoundException e) {

 

                  // 실패시 메시지와 에러 내용 출력

                  System.out.println("=== DATABASE Connect Fail ===");

                  System.out.println(e.getMessage());

 

            } catch (SQLException e) {

 

                  // 실패시 메시지와 에러 내용 출력

                  System.out.println("=== DATABASE Connect Fail ===");

                  System.out.println(e.getMessage());

 

            }

 

            /** 데이터베이스 접속 해제 처리 */

            try {

            conn.close();

            System.out.println("=== DATABASE Disconnect Success ===");

        } catch (Exception e) {

            System.out.println("=== DATABASE Disconnect Fail ===");

            System.out.println(e.getMessage());

        }

        conn = null;

      }

 

}

 

 

반복적으로 나타나는 코드(생략)

프로그램을 개발하는 과정에서 같은 코드가 두 번 이상 반복된다면, 해당 내용을 별도의 파일에 SingleTon 클래스로 묶어 호출하는 형태로 코드를 재사용할 수 있다. 대부분의 프로그램들은 데이터베이스와의 연동이 필요하기 때문에 재사용 코드를 만들어도 좋다. 하지만 여기서는 생략하도록 하겠다!

 

데이터 입력, 수정, 삭제

데이터 입력, 수정, 삭제 처리 절차

접속 및 결과 검사 > sql구문 작성 및 실행 > 결과 에러 검사 > 결과값 추출 > 접속해제

먼저 데이터를 입력 수정 삭제하기 전에 입력 수정 삭제할 데이터가 먼저 선행이 되어있어야 한다.

Connection 걸어 준 mysql에 접속하여 department라는 table을 생성하자

 

 접속 > use test; (testDB를 사용하겠다)> show tables; (테이블 목록 보는 명령어)

create table department(

deptno int,

dname char(10),

loc char(10),

primary key(deptno)

);

 

table이 잘 만들어졌는지 확인하자

desc department; (테이블의 형태를 볼 수 있음)

아까 JDBC 연결한 Main01클래스에 몇 가지만 추가해주면 된다.

1)     제어할 sql문을 추가해준다.

 String sql ="INSERT INTO department (deptno, dname, loc)" + "VALUES (500, 'computer', '5room')";

2)     Statement 객체도 추가해준다.

<결과확인>

추가가 되었는지 확인해보자.

 

추가가 아닌 수정하는 것은 어떻게 할까?

>>> INSERT, UPDATE, DELETE를 위한 Java 코드의 처리 절차는 동일하다!!

sql문만 변경해주면 된다. 예를 들어 update를 하고 싶은 경우

String sql = “UPDATE department SET loc=’6room’ where deptno=300”;

삭제일 경우에는?

String sql = “DELETE FROM department WHERE deptno=300”;

 

 

- 끝 -

반응형

'JAVA' 카테고리의 다른 글

eclipse svn synchronize  (0) 2021.06.08
네이버 코딩테스트 후기  (2) 2020.07.03
intellij (student account) & github Interlink  (0) 2019.08.20
합이 6이 되는 경우의 수 출력  (0) 2019.05.08
합이 6이 되는 경우의 수 출력  (0) 2019.05.03

댓글