[JDBC] Resultset을 이용한 행 갯수 구하기.
Major/Java 2010.11.24 20:25
ResultSet에는 row갯수를 반환하는 메소드가 존재하지 않는다. 뭐 만든놈 맘이겠지만..
대신 ResultSetMetaData는 행갯수를 반환하는 메소드가 존재한다. 일부러 그런건지는 모르겠는데..
디비쪽작업을 하다보면 행갯수는.. 정말 많이 필요하다.
방법은 3가지이다.
첫 번째는 쿼리를 이용하는 방법이다. 뭐 간단하게 카운트 키워드를 사용하면 된다.
select count(*) from talbe_name; 이렇게..
대충 소스를 써보자면..
public class test
{
public static void main(String[] args) throws Exception
{
String jdbcUrl = "jdbc:mysql://localhost:3306/"+[디비이름];
String id = [로긴아이디];
String pass= [비밀번호];
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection(jdbcUrl,Id,pass);
Statement stmt = conn.createStatement();
int rowCnt = 0;
ResultSet rs = stmt.executeQuery("SELECT COUNT(*) FROM test_tbl");
if(rs.next()) rowcount = rs.getInt(1);
System.out.println("Total rows : " + rowCnt);
}
}
이정도..?
두 번째는 ResultSet의 메소드를 이용하는 방법이다.
셋의 끝으로 점프 후에 행 개수를 세고 다시 처음으로 점프~
public class test
{
public static void main(String[] args) throws Exception
{
String jdbcUrl = "jdbc:mysql://localhost:3306/"+[디비이름];
String id = [로긴아이디];
String pass= [비밀번호];
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection(jdbcUrl,id,pass);
Statement stmt = conn.createStatement();
int rowCnt = 0;
ResultSet rs = stmt.executeQuery("SELECT * FROM test_tbl");
rs.last();
int rowcount = rs.getRow();
rs.beforeFirst();
System.out.println("Total rows : " + rowCnt);
}
}
마지막 방법은 메타데이터를 이용하는 방법이다.
걍 객체하나 선언해서 메소드 호출하면 끝이다.
ResultSetMetaData rsmd rsmd=null;
rsmd=rs.getMetaData();
int rowCnt = rsmd.getColumnCount();
참 쉽죠잉~!
출처: http://lunaticlobelia.tistory.com/117 [Be as lunatic as ever.]
출처: http://lunaticlobelia.tistory.com/117 [Be as lunatic as ever.]
출처: http://lunaticlobelia.tistory.com/117 [Be as lunatic as ever.]
'DB > Oracle' 카테고리의 다른 글
mysql JOIN 을 이용한 다중 행 UPDATE와 DELETE 사용하기 (0) | 2018.04.09 |
---|---|
[펌] 1:1 테이블의 진실, 1:1관계 테이블 분리 이유 (0) | 2017.08.24 |
Connection 에 따른 ResultSet 의 설정, resultSet row 수, 개수 (0) | 2017.03.29 |
[oracle] merge into (0) | 2017.03.29 |
토트에서 함수실행 (0) | 2017.02.21 |
댓글