DB

JDBC Vo, Dao

짱코딩러 2022. 8. 10. 17:37

Dao(Data Access Object)

 :데이터베이스와 연동해서 DB작업만 수행하는 클래스

Vo(Value Object),TO라고도 불림.

 :여러 다른 타입의 데이터를 다른 클래스로 전달할 때 사용

<VO> //객체(Value Object)
public class ProdVO {
    객체1
    객체2
    ...

    생성자(){}
    get메서드들(){}
    ...


<DAO> //입력, 수정, 삭제등 데이터 변경 작업(Data Access Object)
public class ProdDAO {
    final 정의 코드들
    ...

    public ArrayList<ProdVO> listProdinfo(){
        ProdVO를 여러개 담을 객체 ArrayList 생성
        connDB()  //DB연결해줌
        쿼리변수 정의해줌
        SELECT 결과집합 받기 || UPDATE int받기

        	while(rs.next()){ //레코드 호출
            	get메서드에 넣고
            	VO()생성  //지역변수를 ProdVO객체로 다시 조각조각
        close()
        return list;
        }

    public void addProdInfo(ProdVO prodVO){ //제품 정보를 테이블에 추가하는 메소드
    	변수 비워줌
        변수에 값 넣어줌(VO에서 꺼내)
        connDB()
        쿼리문 적어줌
        쿼리문 결과집합(커서,그릇생성)
        
public void connDB() {	//DB연동
	기본 설정 코드 ------
    
<Test>   //main 실행 클래스
main(String[] args) {
	VO()=new //불러오면서 값 넣어주기(쿼리문에 데이터를 추가해줌)
	ArrayList list 	//ProdVO를 여러개 담을 객체 생성
    for(){		//VO객체의 getter 메서드를 이용해서 레코드의 필드값을 하나씩 값에 넣어줌

 

<DAO>
업데이트메소드, 삭제메소드 만들어주기
//업데이트메소드
	public void modProd(ProdVO vo) {
    //1.값 생성해서 연결해줌
		String _name=null;
		int _qty=0;
		_name =vo.getProdName();
		_qty =vo.getProdQty();
        //2.쿼리문으로 값 넣어줌
		try {
			connDB();
			String query="update Product ";
			query+= "set prodQty="+_qty;
			query+= " where prodName='"+_name+"'";
			System.out.println(query);
			stmt.executeUpdate(query);
			con.commit();	//업뎃하고 커밋해줄게
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
    
    //삭제메소드
	public void delProd(ProdVO vo) {
		String _name=null;
		_name =vo.getProdName();
		try {
			connDB();
			String query="delete from Product";
			query+= " where prodName='"+_name+"'";
			System.out.println(query);
			stmt.executeUpdate(query);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

'DB' 카테고리의 다른 글

PL/SQL 저장 프로시저  (0) 2022.08.17
SQL 동의어  (0) 2022.08.11
JDBC 주요 API  (0) 2022.08.10
JDBC 입력, 수정, 삭제  (0) 2022.08.09
JDBC 트랜잭션  (0) 2022.08.09