package com.example.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
public class JDBCConsole {
public static void main(String[] args) {
String url = "jdbc:h2:tcp://localhost/~/mydb";
String user = "sa";
String pwd = "";
Connection con = null;
Statement stmt = null;
ResultSet rs = null;
try {
// 1. 드라이버 로딩
Class.forName("org.h2.Driver");
// 2. DB 연결
con = DriverManager.getConnection(url, user, pwd);
// 3. 문장객체 생성
stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
String sql = "select * from customer";
// 4. 실행
rs = stmt.executeQuery(sql);
ResultSetMetaData rsmd = rs.getMetaData();
// 열의 개수
int colCount = rsmd.getColumnCount();
System.out.println("열의 개수:" + colCount);
// 커서가 맨 마지막 행으로 이동
rs.last();
// 행의 개수
int rowCount = rs.getRow();
System.out.println("행의 개수:" + rowCount);
// 열제목 출력
for (int i=1; i<=colCount; i++) {
System.out.print(rsmd.getColumnName(i) + "\t");
}
System.out.println("\n");
// 첫번째 행으로 커서 이동
// rs.first();
// 마지막 행 바로 다음으로 커서 이동
// rs.afterLast();
// 지정된 커서 행으로 이동
// rs.absolute(2);;
// 첫행 바로 이전으로 커서 이동 (초기 위치)
rs.beforeFirst();
// while (rs.next()) {
//
// }
for (int r=1; r<=rowCount; r++) { // 행
rs.next();
for (int c=1; c<=colCount; c++) { // 열
System.out.print(rs.getObject(c) + "\t");
}
System.out.println();
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (stmt != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (con != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
'IT > Java' 카테고리의 다른 글
java - Http 통신, URLConnection (0) | 2018.11.22 |
---|---|
java - JFrame DB 연결 출력 (0) | 2018.11.22 |
java - url을 통해 가져온 데이터를 DOMParser로 파싱, JSONParser로 파싱 (0) | 2018.11.21 |
java - xml SAXParser로 파싱하기 (0) | 2018.11.21 |
java - url을 통해 가져온 xml을 DOM 파서로 NodeList 출력 (0) | 2018.11.20 |