[211213] 교육 43일차

oxllz·2022년 2월 16일
0

교육

목록 보기
29/41

executeUpdate

public class Test288 {
	public static void main( String[] args ) throws Exception {
		Class.forName("org.mariadb.jdbc.Driver");
		Connection conn = DriverManager.getConnection( "jdbc:mariadb://...", "...", "..."); 
        // cafe24 의 DB서버의 IP, 아이디, 비밀번호
		Statement stmt = conn.createStatement();
        //
		int r = stmt.executeUpdate("DELETE FROM test01_T");
		System.out.println( r );
		//
		stmt.close();
		conn.close();
	}
}

int executeUpdate 의 리턴값은 변경된 레코드의 갯수를 의미한다.
INSERT DELETE UPDATE 문장을 실행시킬 때 사용한다.


executeQuery

public class Test289 {
	public static void main( String[] args ) throws Exception {
		Class.forName("org.mariadb.jdbc.Driver");
		Connection conn = DriverManager.getConnection("jdbc:mariadb://...", "...", "...");
		Statement stmt = conn.createStatement();
        //
		ResultSet rs = stmt.executeQuery("SELECT * FROM test01_T");
		while( rs.next() ){
			int no = rs.getInt("no");
			String data = rs.getString("data");
			System.out.println( no + "," + data );
		}
		rs.close();
		stmt.close();
		conn.close();
	}
}
int no = rs.getInt( 1 );
String data = rs.getString( 2 );
  • 1 부터 순서를 줄 수도 있고 위의 코드처럼 필드명을 줄 수도 있다.


ResultSet executeQuery : SELECT 할때 사용한다.

rs.getInt("no") : 현재 flag 가 가리키는 가로 , no 에 해당하는 세로 , 교차점의 값을 int 로 리턴한다
rs.getString("data") : 교차점의 값을 String 형태로 리턴한다.


O-R Mapping

class Test01DTO {
	// 멤버변수는 절대 public 하지 않게 한다.
	// no 필드와 매핑되는 property 
	private Integer no = null;
	public Integer getNo() { return no; }
	public void setNo( Integer i ) { this.no = i; }
	// data 필드와 매핑되는 property 
	private String data = null;
	public String getData() { return data; }
	public void setData( String i ) { this.data = i; }
}
//
public class Test291 {
	public static void main( String[] args ) throws Exception {
		Class.forName("org.mariadb.jdbc.Driver");
		Connection conn = DriverManager.getConnection("jdbc:mariadb://...", "...", "...");
		Statement stmt = conn.createStatement();
		ResultSet rs = stmt.executeQuery("SELECT * FROM test01_T");
		//
		List<Test01DTO> ls = new ArrayList<Test01DTO>();
		while( rs.next() ){
			//	레코드 하나와 매핑될 수 있도록 인스턴스를 생성 ( 레코드는 인스턴스에 매핑 )
			Test01DTO dto = new Test01DTO();
			dto.setNo( rs.getInt("no") );
			dto.setData( rs.getString("data") );
			ls.add( dto );
		}
		rs.close();
		stmt.close();
		conn.close();
		/*	close() 이전에 데이터를 미리 ArrayList 에 옮겨 놓았으니 느긋하게 사용가능
		*/
		for( Test01DTO dto : ls ) {
			System.out.println( dto.getNo() + "," + dto.getData() );			
		}
	}
}

O-R Mapping 규칙

  • Table : class로 매핑( VO Value Object, DTO Data Transfer Object)
    • 이때 VO에서는 int 대신 Integer, Double 사용( null 값 대입을 위해 )
  • Record : instance로 매핑
  • Field : property로 매핑( property = 멤버변수 + getter + setter )

property

  • getter : get + 멤버변수명(첫글자를 대문자로) + 변수와 같은 자료형의 리턴타입 + 매개변수 없음
  • setter : set + 멤버변수명(첫글자를 대문자로) + void 리턴타입 + 매개변수는 변수와 같은 자료형

0개의 댓글