관리 메뉴

nkdk의 세상

자바 Language 19일째 2번 본문

My Programing/JAVA

자바 Language 19일째 2번

nkdk 2008. 3. 8. 01:15
드디어 대망의 oracle 연결법 입니다. 갑자기 튀어 나와서 놀랐습니다. ^^;
일단 odbc 를 이용하여 하는 방법으로 사용하였습니다. 사용자 dsn 에서 추가 하는 방식으로 사용하였습니다. ^_^

자 그럼 시작합니다.

/* ClassforName(" ") // 일단 드라이버를 로딩한다.
Connection <- DriveManager(커넥션개체 생성);

statement // sql문장을 날려주는 명령어(대량의 데이터를 5~10만건 자료를 가져온다.)
PreparedStatement // sql문장을 날려주는 명령어(statement보다 확장성이 뛰어나고 퍼포먼스가 뛰어나다, 선처리문장)
두개의 문장을 사용하여 sql 문장을 실행시켜 준다.
select 문장을 제외한 나머지 문장은 실행되면 ok 실행 안되면 false 가 되는 것이다.
ResultSet // select문 수행하였을 때 결과값을 받아서 처리해주는 것(커넥션 개체 생성)
*/
package db;
import java.sql.*;
public class Oradb {
Connection conn;
Statement stmt;
ResultSet rs;
public Oradb() {
try{
//드라이버 로딩
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}catch(Exception e){
System.out.println("로딩 실패 : " +e.getMessage());
e.printStackTrace();
}
connect();
}
public void connect(){
try{
//DB연결
conn=DriverManager.getConnection("jdbc:odbc:oradb","SCOTT","TIGER");

//Transaction process
conn.setAutoCommit(false);
try{

//sql문 처리
stmt=conn.createStatement();

stmt.executeUpdate("insert into sangdata values(code_seq.nextval,'마우스',100,2500)");
//select 문 사용
//String spl="SELECT * FROM SANGDATA";
//String spl="SELECT CODE 코드, SANG,SU,DAN FROM SANGDATA ORDER BY CODE";
rs=stmt.executeQuery("SELECT * FROM SANGDATA");

//순방향으로 이동..
while(rs.next()){
//String code=rs.getString("CODE");
//String code=rs.getString(1); //칼럼은 순서가 정해져 있다.. 칼럼을 읽을 때 순서를 지켜라..
//원본 테이블의 순서가 아니라 여기서 불러 줄 때의 sql문장의 순서.. 위에 써준.. spl에 써줄 때의 순서..
String code=rs.getString("CODE");
String sang=rs.getString("SANG");
String su=rs.getString("SU");
String dan=rs.getString("DAN");
System.out.println(code +" "+sang+" "+su+" "+dan);
}
conn.commit();
}catch(Exception e){
System.out.println("문제 발생"+e);
conn.rollback();
}finally{
conn.setAutoCommit(true);
rs.close(); stmt.close(); conn.close();
}
}catch(Exception e){
System.out.println("SQL 오류"+e);
}
}
public static void main(String[] args) {
new Oradb();
}

}


/////

package db;
import java.sql.*;

public class OraDb1 {
Connection conn;
Statement stmt;
ResultSet rs;

public OraDb1() {
try{
// 드라이버 로딩
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
} catch (Exception ex) {
System.out.println("로더 실패:"+ex.getMessage());
ex.printStackTrace();
}
connect();
}

public void connect() {

try{ // 이 try 문에대해서는 select문만 사용할 시에는 사용하지 않아도 된다.
// DB연결 //odbc에서 추가 시켜 준다
conn=DriverManager.getConnection("jdbc:odbc:oradbs","scott","tiger");

// Transaction process
conn.setAutoCommit(false); // 기본은 true 로 되어 있다
try {

// Sql문 처리
stmt=conn.createStatement();

// 해당 문자를 sql 문장에서 문자로 넣어 버린다. 자바에서는 nextval을 사용해야 한다
//stmt.executeUpdate("insert into sangdata values(code_seq nextval, '마우스',100,2500)");

// select문 사용
String sql="select code 코드, SANG,SU,DAN from sangdata";
rs=stmt.executeQuery(sql);

// 순방향으로 이동한다.
// Db자료의 자료를 바로 보는 법은 없다. 내가 보이게 되는 화면을 가지고 자료를 가지고 오게 된다.
while(rs.next()) {
String code=rs.getString("코드");
String sang=rs.getString("SANG");
String su=rs.getString("SU");
String dan=rs.getString("DAN");
System.out.println(code+" " +sang + " " +dan+ " " + su);
}
conn.commit();
}catch (SQLException e1x) {
System.out.println("문제 발생"+e1x);
conn.rollback();
}finally{
conn.setAutoCommit(true);
rs.close(); stmt.close(); conn.close();
}
}catch (Exception ex) {
System.out.println("오류"+ex.getMessage());
}
}

public static void main(String[] args) {
new OraDb1();

}

}


입니다. 오츠까레 사마데시따 ^^