DB연동 후 데이터 소스코드 Sample
package javaexp.A08_db;
import java.sql.*;
public class A02_DatabaseDao {
// ex) 연결 처리 객체 만들기.
// 1. 공통 필드 선언
private Connection con;
private Statement stmt;
private ResultSet rs;
// 2. 공통 메서드 선언
public void setConn() {
// 1) 드라이버 연결
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
System.out.println("오류:"+e.getMessage());
}
// 2) 특정 서버 연결
String info="jdbc:oracle:thin:@localhost:1521:xe";
try {
con = DriverManager.getConnection(info,"scott","tiger");
} catch (SQLException e) {
// TODO Auto-generated catch block
System.out.println("오류:"+e.getMessage());
}
System.out.println("접속 성공");
}
// 조회 처리 메서드 구현 1단계(출력)
public void empList() {
// 1. 연결공통메서드 호출
try {
setConn();
// 2. Statement 객체 생성 (Connection ==> Statement)
stmt = con.createStatement();
String sql = "SELECT * FROM EMP";
// 3. ResultSet 객체 생성.sql의 결과
rs = stmt.executeQuery(sql);
// 4. while()을 통해 결과 내용 처리 sql의 결과는 처리
// rs.next() 행단위로 이동하게 처리..
int rowNum = 1;
while(rs.next()) {
System.out.print(rowNum+++"행"+"\t");
// rs.get데이터유형("컬럼명/alias명");
System.out.print(rs.getInt("empno")+"\t");
System.out.print(rs.getString("ename")+"\t");
System.out.print(rs.getString("job")+"\t");
System.out.print(rs.getInt("mgr")+"\t");
System.out.print(rs.getDate("hiredate")+"\t");
System.out.print(rs.getDouble("sal")+"\t");
System.out.print(rs.getDouble("comm")+"\t");
System.out.print(rs.getInt("deptno")+"\t");
System.out.println();
}
// 5. 자원 해제
rs.close();
stmt.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
// 6. 예외 처리..
System.out.println("오류:"+e.getMessage());
if(rs!=null) rs = null; // 강제로 자원해제..
if(stmt!=null) stmt = null; // 강제로 자원해제..
}
}
// ex) A03_DatabaseDao.java를 만들고,
// 필드, 공통메서드, public void deptList()로 선언하여
// sql을 select * from dept로 처리된 행을 출력하는 내용까지 처리.
public static void main(String[] args) {
// TODO Auto-generated method stub
// 객체 생성 및 메서드 처리..
A02_DatabaseDao dao = new A02_DatabaseDao();
dao.empList();
}
}
1.공통 필드 선언
연결처리를 위해 공통 필드는 선언해 줍니다.
private Connection con;
private Statement stmt;
private ResultSet rs;
2. 공통 메서드 선언
JDBC 드라이버를 연결, 특정 서버에 연결합니다.
public void setConn() {
// 1) 드라이버 연결
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
System.out.println("오류:"+e.getMessage());
}
// 2) 특정 서버 연결
String info="jdbc:oracle:thin:@localhost:1521:xe";
// 외부 서버에 접속시 @localhost 부분을 ip로 설정합니다.
try {
con = DriverManager.getConnection(info,"scott","tiger");
} catch (SQLException e) {
// TODO Auto-generated catch block
System.out.println("오류:"+e.getMessage());
}
System.out.println("접속 성공");
}
2.1 실행
실행이되면 [접속 성공] 이 출력됩니다.
접속 성공
3. 조회처리 메서드 구현
테이블을 조회하기 위해 메서드를 제작합니다.
public void empList() {
// 1. 연결공통메서드 호출
try {
setConn();
// 2. Statement 객체 생성 (Connection ==> Statement)
stmt = con.createStatement();
String sql = "SELECT * FROM EMP";
// 3. ResultSet 객체 생성.sql의 결과
rs = stmt.executeQuery(sql);
// 4. while()을 통해 결과 내용 처리 sql의 결과는 처리
// rs.next() 행단위로 이동하게 처리..
int rowNum = 1;
while(rs.next()) {
System.out.print(rowNum+++"행"+"\t");
// rs.get데이터유형("컬럼명/alias명");
System.out.print(rs.getInt("empno")+"\t");
System.out.print(rs.getString("ename")+"\t");
System.out.print(rs.getString("job")+"\t");
System.out.print(rs.getInt("mgr")+"\t");
System.out.print(rs.getDate("hiredate")+"\t");
System.out.print(rs.getDouble("sal")+"\t");
System.out.print(rs.getDouble("comm")+"\t");
System.out.print(rs.getInt("deptno")+"\t");
System.out.println();
}
// 5. 자원 해제
rs.close();
stmt.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
// 6. 예외 처리..
System.out.println("오류:"+e.getMessage());
if(rs!=null) rs = null; // 강제로 자원해제..
if(stmt!=null) stmt = null; // 강제로 자원해제..
}
}
4. 객체 생성 및 메서드 처리
객체를 생성해주고 메서드를 불러와 데이터를 확인합니다.
public static void main(String[] args) {
// TODO Auto-generated method stub
// 객체 생성 및 메서드 처리..
A02_DatabaseDao dao = new A02_DatabaseDao();
dao.empList();
}
5. 컴파일 결과
접속 성공
1행 7369 SMITH CLERK 7902 1980-12-17 800.0 0.0 20
2행 7499 ALLEN SALESMAN 7698 1981-02-20 1600.0 300.0 30
3행 7521 WARD SALESMAN 7698 1981-02-22 1250.0 500.0 30
4행 7566 JONES MANAGER 7839 1981-04-02 2975.0 0.0 20