SELECT * FROM GOODSINFO;



위의 GOODSINFO 테이블을 이용하여 빈즈 클래스를 만들고, 
빈즈를 이용하여 특정 코드값에 해당하는 가격을 변경하는 JDBC 예제




1. GoodsInfo란 이름으로 빈즈 클래스 작성. 일단 필드 변수만 선언하자.


package 빈즈;

public class GoodsInfo {


private String code; 

private String name;

private int price;

private String maker;

 // GOODSINFO 테이블의 CODE, NAME, PRICE, MAKER를 담을 필드변수를 선언

 // private 꼭 붙일 것!

}



2. 이클립스에서 필드 변수 아래쪽을 클릭 후 마우스 오른쪽을 누른 뒤,

Source > Generate Getters and Setters를 클릭한다.





3. Source > Generate Getters and Setters를 클릭했을 때 다음과 같은 창이 뜬다.

Select All을 누른 뒤 OK를 누른다.





4. 이클립스 상에서 다음과 같이 하단에 겟터 메소드와 셋터 메소드가 자동으로 들어간 것을 확인할 수 있다.



5. GoodsInfo란 이름의 빈즈 클래스 완성!!


package 빈즈;

public class GoodsInfo {

private String code; 
private String name;
private int price;
private String maker;
  // private + GOODINFO 테이블의 컬럼을 받아올 필드 변수 선언

public String getCode() {  // CODE 컬럼의 값을 받아올 getter 메소드
return code; // 컬럼의 값을 code로 리턴한다.
}
public void setCode(String code) { // CODE 컬럼을 값을 내보낼 setter 메소드
this.code = code; // 위에서 private로 선언한 필드변수 code에 메소드의 code 값을 담는다.
}

public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}

public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}

public String getMaker() {
return maker;
}
public void setMaker(String maker) {
this.maker = maker;
}
}



6. 빈즈 클래스인 GoodsInfo를 사용하는 JDBC 실행 클래스


package 빈즈;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;

public class JDBC_Beans01

public void updateGoodsInfo(GoodsInfo goods) { // 빈즈 GoodsInfo 클래스의 goods 가져와서
  // UPDATE를 적용해서 데이터를 변경할 메소드
String driver = "oracle.jdbc.driver.OracleDriver";
String url = "jdbc:oracle:thin:@211.183.9.66:1521:xe";
String sql = "UPDATE GOODSINFO SET PRICE = ? WHERE CODE = ?";
Connection con = null;
PreparedStatement pstmt = null; 
try {
Class.forName(driver);
con = DriverManager.getConnection(url, "st02", "st02");
pstmt = con.prepareStatement(sql);
pstmt.setInt(1, goods.getPrice()); // 빈즈 goodsInfo 에서 가져옴 
pstmt.setString(2, goods.getCode()); // 빈즈 goodsInfo 에서 가져옴
pstmt.executeUpdate();
}
catch (Exception e) {
System.out.println(e.getMessage());
}
finally {
try {
pstmt.close();
con.close();
} catch (Exception e) {
}
}
}
public static void main(String[] args) { // 위의 updateGoodsInfo 메소드를 실행할 메인 메소드
GoodsInfo goods = new GoodsInfo(); // 빈즈 클래스 GoodsInfo를 goods로 인스턴스화
goods.setCode("10005"); // 빈즈 클래스의 setCode 메소드 사용(setter)
goods.setPrice(400000); // 빈즈 클래스의 setPrice 메소드 사용(setter)
JDBC_Beans01 obj = new JDBC_Beans01(); // 현재의 이 클래스를 obj로 인스턴스화
obj.updateGoodsInfo(goods); // 위의 updateGoodsInfo 메소드에 빈즈 인스턴스를 사용한다.
}
}


Posted by netyhobby
,