본문 바로가기

개발자노트/DBMS

[SQL] (Oracle) JDBC에서 selectAll

final String sql_selectAll="SELECT * FROM STUDENT WHERE NAME LIKE '%'||?||'%' ORDER BY SID ASC";
// LIKE 구문을 JDBC에서 쓰려면 '%'|| ? || '%" 으로 써야함 , %도 각 각 글자로 취급하기 때문에..?

	
	public ArrayList<StudentVO> selectAll(StudentVO vo){
    // boolean타입이 아니니 반환할 정보를 만들어 놓는다
		ArrayList<StudentVO> datas=new ArrayList<StudentVO>();
		conn=JDBCUtil.connect();
		try {
			pstmt=conn.prepareStatement(sql_selectAll);
			pstmt.setString(1, vo.getName()); // 객체정보에 이름정보가 없으면 전체정보 출력
            								  // 있으면 이름에 입력값을 포함한 모든 학생
                                              // 정보 출력
                                              // 이건 LIKE 구문 때문이다.
			ResultSet rs=pstmt.executeQuery();
			while(rs.next()) {
				StudentVO data=new StudentVO();
				data.setName(rs.getString("NAME"));
				data.setScore(rs.getInt("SCORE"));
				data.setSid(rs.getInt("SID"));
				datas.add(data);
			}
			rs.close();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			JDBCUtil.disconnect(pstmt, conn);
			
		}
		
		return datas;
	}