ResultSetMetaData의 사용 소감

1298 단어
오늘 페이지를 쓸 때 이상한 오류가 발생했습니다. 분명히 문장이 데이터베이스에서 실행되면 6개의 필드를 찾을 수 있지만 데이터를 되돌릴 때 5개만 남았습니다. 코드를 여러 번 검사한 결과ResultSetmetaData의 사용 소감을 발견했습니다.
public List> search(String sql){
		Connection conn = getConnection();
		PreparedStatement ps = null;
		List> list = new ArrayList>();
		ResultSet rs = null;
		try {
			ps = conn.prepareStatement(sql);
            rs = ps.executeQuery();
            ResultSetMetaData md = rs.getMetaData();
            int colomn = md.getColumnCount();
            Map temp = null;
            while(rs.next()) {
            	temp = new HashMap();
            	md = rs.getMetaData();
            	for(int i = 1; i <= colomn; i++) {
            		temp.put(md.getColumnName(i), rs.getObject(i));
            	}
            	list.add(temp);
            }
		}catch(Exception e) {
			e.printStackTrace();
		}finally {
			closeConnection(conn);
		}
		return list;
	}

ResultSetMetaData는 필드 이름을 가져오는 두 가지 방법이 있습니다.
getColumnName (int index), 이 방법은 이 필드의 이름을 가져옵니다.
2. getConlumnLabel (int index), 이 방법은 문장에서 요구하는 이 필드의 이름을 가져옵니다.
나는 두 장의 표를 연합하여 조회했기 때문에, 두 표에 모두'name'필드가 나타났기 때문에, 6개의 필드를 찾아서temp를 실행했다.풋이 다섯 개밖에 안 남았어.

좋은 웹페이지 즐겨찾기