Java Database Connectivity
데이터베이스에 접속할 수 있도록 하는 자바 API
데이터베이스에서 자료를 쿼리하거나 업데이트하는 방법을 제공
DriverManager
Connection
Statement
PreparedStatement
ResultSet
위의 java.sql 라이브러리에 있는 클래스를 이용해서 아래와 같이 DB와 연결하고 DB에 쿼리를 날리거나 업데이트를 한다.
public class DB {
private static void displayUserList() {
Connection conn = null; // DB와 연결하는 역할
PreparedStatement stat = null; // SQL 구문을 실행하는 역할
ResultSet rs = null; // 결과를 받아와서 보여주는 역할
try {
conn = DBUtil.getConnection();
String sql = "select * from User";
stat = conn.prepareStatement(sql);
System.out.println("유저 목록");
rs = stat.executeQuery();
while (rs.next()) {
System.out.printf("%s\t%s\t%s\t\n"
,rs.getString("id")
, rs.getString("name")
, rs.getString("address"));
}
rs.close();
stat.close();
conn.close();
} catch(Exception e) {
System.out.println("DB.displayUserList() : " + e.toString());
}
}
}
class DBUtil {
public static Connection getConnection() {
Connection conn = null;
String url = "jdbc:oracle:thin:@localhost:1521:xe";
String id = "nayoon";
String pw = "1234";
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection(url, id, pw);
return conn;
} catch(Exception e) {
System.out.println("DBUtil.getConnection() : " + e.toString());
}
return null;
}
}
DriverManager를 이용해서 Connection 객체를 생성한다.
ResultSet은 next()라는 메소드를 이용한다.
(hasNext() 같은 건 없다..)
커서와 같이 동작해서 rs.next()하면 다음 데이터로 넘어간다.