l JDBC(Java Database Connectivity)란?
- 자바 프로그램 내에서 데이터베이스 시스템의 종류에 구애 받지 않고 질의문(SQL)을 실행하기 위한 표준 데이터베이스 인터페이스
- 데이터베이스 및 어플리케이션 개발자들을 위한 표준 API 제공하는 라이브러리
l JDBC 라이브러리 설정하는 방법
Ex) mysql
Mysql-connector jar 파일을 프로젝트의 libs 폴더 안에 추가하고 Java Build Path을 이용하여 jar파일을 읽혀준다.
libs 폴더는 새로 생성하고 mysql-connector은 mysql에 홈페이지에서 다운받을 수 있다.
l DB 접속 해제 절차
접속정보 설정 > 접속 > 접속 실패 여부 검사 > 접속 해제
접속정보 |
변수 |
값 |
DB서버 접속 주소 |
db_hostname |
“localhost” |
포트번호 |
db_portnumber |
3306 (따로 설정 없었으면 default는 3306으로 되어있음) |
데이터베이스 이름 |
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 |
댓글