[Oracle/SQL] DML(ArrayList 이용)

2023. 6. 7. 21:36DB/SQL

1️⃣ DB와 Java를 연동해 DML 실행 : ArrayList 이용하기

public static List<GuitarDTO> getDeptList(Connection conn) {
		PreparedStatement stmt = null;
		ResultSet rs = null;		
		List<GuitarDTO> list = new ArrayList<GuitarDTO>();
		
		String sql = 
				"select guitarNo, guitarBrand, guitarColor from guitar" + " order by guitarNo ASC";

		try {
			stmt = conn.prepareStatement(sql);
		} catch (SQLException e1) {
			System.out.println("객체 준비 관련 에러 발생"+e1);
			e1.printStackTrace();
		}
		
		try {
			rs = stmt.executeQuery();
			while(rs.next()) {
				int guitarNo = rs.getInt("guitarNo");
				String guitarBrand = rs.getString("guitarBrand");
				String guitarColor = rs.getString("guitarColor");
				list.add(new GuitarDTO(guitarNo, guitarBrand, guitarColor));
			}
		} catch (SQLException e1) {
			e1.printStackTrace();
		} finally {
			JDBCUtil.close(rs);			// 따로 메소드를 만들어 자원 반납
			JDBCUtil.close(stmt);		// 따로 메소드를 만들어 자원 반납
		}
		return list;
	}

- 위와 같은 메소드를 만든뒤, 실행 클래스에서 List를 이용해 출력을 하면 된다.

public static void main(String[] args){
	Connection conn = JDBCUtil.getConnection();

	List<GuitarDTO> guitarList = GuitarDAO.getGuitarList(conn);
	if(guitarList.size()>0) {	
		for (guitarDTO guitar : guitarList) {
		System.out.println(guitar.toString()); 
        //overriding된 toString을 출력하게 됨
		}
	} else {
		System.out.println("해당하는 guitar 없음");
	}
    
    JDBCUtil.close(conn);			// connection 자원 반납
}

 

'DB > SQL' 카테고리의 다른 글

[Oracle/SQL] Procedure과 Function  (1) 2023.06.19
[Oracle/SQL] JOIN, 서브쿼리, 뷰, 테이블  (1) 2023.06.14
[Oracle/SQL] SQL Developer  (0) 2023.06.08
[Oracle/SQL] DML, Sequence  (1) 2023.06.06
[Oracle/SQL] XE, Tablespace, User  (0) 2023.06.06