쌍용교육(JAVA)/JDBC
쌍용교육 -JDBC 수업 23일차 (DriverMain,ConnectionMain,CreateTableMain,AlterTableMain, DropTableMain)
구 승
2024. 4. 13. 16:32
DriverMain
package kr.s30.jdbc;
public class DriverMain {
public static void main(String[] args) {
try { //forName은 괄호안에 있는 오라클드라이버를 찾고 메모리에 올리는 역할을 한다.
Class.forName("oracle.jdbc.OracleDriver"); //붉은줄을 없애려면 try catch를 해야됨.
System.out.println("오라클 드라이버가 정상적으로 로드되었습니다.");
}catch(ClassNotFoundException e){
e.printStackTrace();
}
}
}
오라클 드라이버가 정상적으로 로드되었습니다.
ConnectionMain
- Connection : 오라클연동
package kr.s30.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class ConnectionMain {
public static void main(String[] args) {
String db_driver = "oracle.jdbc.OracleDriver";
//포트:식별자
String db_url = "jdbc:oracle:thin:@localhost:1521:xe";//localhost는 내 컴퓨터라서. 만약 원격일 경우는 ip주소를 입력해야됨
String db_id = "user01";
String db_password = "1234";
try {
//JDBC 수행 1단계 : 드라이버 로드
Class.forName(db_driver);
//JDBC 수행 2단계 : Connection 객체 생성(오라클 접속을 위한 인증)
Connection conn = DriverManager.getConnection(db_url,db_id,db_password);
System.out.println("Connection 객체가 생성되었습니다.");
}catch(SQLException e) {
e.printStackTrace();
}catch(ClassNotFoundException e) {
e.printStackTrace();
}
}
}
Connection 객체가 생성되었습니다.
- Connection : 오라클연동
package kr.s30.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class ConnectionMain {
public static void main(String[] args) {
String db_driver = "oracle.jdbc.OracleDriver";
//포트:식별자
String db_url = "jdbc:oracle:thin:@localhost:1521:xe";//localhost는 내 컴퓨터라서. 만약 원격일 경우는 ip주소를 입력해야됨
String db_id = "user01";
String db_password = "1234";
try {
//JDBC 수행 1단계 : 드라이버 로드
Class.forName(db_driver);
//JDBC 수행 2단계 : Connection 객체 생성(오라클 접속을 위한 인증)
Connection conn = DriverManager.getConnection(db_url,db_id,db_password);
System.out.println("Connection 객체가 생성되었습니다.");
}catch(SQLException e) {
e.printStackTrace();
}catch(ClassNotFoundException e) {
e.printStackTrace();
}
}
}
Connection 객체가 생성되었습니다.
CreateTableMain
- Statement:SQL문장을 실어 나르는 역할
package kr.s31.statement;
import java.sql.Connection;//오라클 연동
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement; //SQL문장을 실어 나르는 역할
public class CreateTableMain {
public static void main(String[] args) {
String db_driver = "oracle.jdbc.OracleDriver";
String db_url = "jdbc:oracle:thin:@localhost:1521:xe";//localhost는 내 컴퓨터라서. 만약 원격일 경우는 ip주소를 입력해야됨
String db_id = "user01";
String db_password = "1234";
Connection conn = null;
Statement stmt = null;
String sql = null;
try {
//JDBD 수행 1단계 : 드라이버 로드
Class.forName(db_driver);
//JDBD 수행 2단계 : Connection 객체 생성(오라클 접속을 위한 인증)
conn = DriverManager.getConnection(db_url,db_id,db_password);
System.out.println("test1 테이블을 생성합니다.");
/*
* 테이블을 생성하는 SQL문
* 접속한 계정에 테이블명이 중복되면 에러가 발생하기 때문에
* 동일 계정에서는 한 번만 수행함.
*/
sql = "CREATE TABLE test1(id VARCHAR2(10), age NUMBER)";
//JDBC 수행 3단계 : Statement 객체 생성
stmt = conn.createStatement();
//JDBC 수행 4단계 : SQL문을 실행해서 DB에 테이블을 생성
stmt.executeUpdate(sql);
System.out.println("테이블이 정상적으로 생성되었습니다.");
}catch(SQLException e) {
e.printStackTrace();
}catch(ClassNotFoundException e) {
e.printStackTrace();
}
finally {
//자원정리
if(stmt != null) try {stmt.close();} catch(SQLException e) {}
if(conn != null) try {stmt.close();} catch(SQLException e) {}
}
}
}
test1 테이블을 생성합니다.
테이블이 정상적으로 생성되었습니다.
만약 한 번 더 실행하면 동일 계정에서는 한 번만 수행하기 때문. 즉 테이블이름이 중복되기 때문에 에러가 발생한다.
SQL Developer를 들어가서 확인하면 TEST1이라는 테이블이 생성된다
AlterTableMain
package kr.s31.statement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class AlterTableMain {
public static void main(String[] args) {
String db_driver = "oracle.jdbc.OracleDriver";
String db_url = "jdbc:oracle:thin:@localhost:1521:xe";//localhost는 내 컴퓨터라서. 만약 원격일 경우는 ip주소를 입력해야됨
String db_id = "user01";
String db_password = "1234";
Connection conn = null;
Statement stmt = null;
String sql = null;
try {
//JDBC 수행 1단계 : 드라이버 로드
Class.forName(db_driver);
//JDBC 수행 2단계 : Connection 객체 생성(오라클 접속을 위한 인증)
conn = DriverManager.getConnection(db_url,db_id,db_password);
System.out.println("test1 테이블의 컬럼을 수정합니다.");
//SQL문 작성
sql = "ALTER TABLE test1 MODIFY(id VARCHAR2(10) NOT NULL)";
//JDBC 수행 3단계 :Statement 객체 생성
stmt = conn.createStatement();
//JDBC 수행 4단계 :SQL문을 수행해서 테이블에 정보를 변경하는 작업 수행
stmt.executeUpdate(sql);
System.out.println("테이블의 컬럼 정보 수정을 완료했습니다.");
}catch(Exception e) {
e.printStackTrace();
}finally {
//자원정리
if(stmt !=null)try {stmt.close();} catch(SQLException e) {}
if(conn !=null)try {stmt.close();} catch(SQLException e) {}
}
}
}
test1 테이블의 컬럼을 수정합니다.
테이블의 컬럼 정보 수정을 완료했습니다.
NULLABLE 행의 ID부분이 YES에서 NO로 바뀜.
DropTableMain
package kr.s31.statement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class DropTableMain {
public static void main(String[] args) {
String db_driver = "oracle.jdbc.OracleDriver";
String db_url = "jdbc:oracle:thin:@localhost:1521:xe";//localhost는 내 컴퓨터라서. 만약 원격일 경우는 ip주소를 입력해야됨
String db_id = "user01";
String db_password = "1234";
Connection conn = null;
Statement stmt = null;
String sql = null;
try {
//JDBC 수행 1단계: 드라이버 로드
Class.forName(db_driver);
//JDBC 수행 2단계:Connection 객체 생성(오라클에 접속하기 위한 인증)
conn = DriverManager.getConnection(db_url,db_id,db_password);
System.out.println("test1 테이블 제거를 시작합니다.");
sql = "DROP TABLE test1";
//JDBC 수행 3단계: Statement 객체 생성
stmt = conn.createStatement();
//JDBC 수행 4 단계:SQL문을 실행해서 테이블을 삭제
stmt.executeUpdate(sql);
System.out.println("테이블이 정상적으로 삭제되었습니다.");
}catch(Exception e) {
e.printStackTrace();
}finally {
//자원정리
if(stmt != null)try {stmt.close();}catch(SQLException e) {}
if(conn != null)try {stmt.close();}catch(SQLException e) {}
}
}
}
test1 테이블 제거를 시작합니다.
테이블이 정상적으로 삭제되었습니다.
SQL Devloper를 확인하면 test1 테이블이 삭제된다.