📍 RoleDao.java는 MySQL과 Role.java 클래스를 이용하여 데이터를 처리하는 클래스 이다.
JDBC API 사용을 위해 Class.forName
메서드를 이용하여 JDBC 드라이버 로딩
DB 마다 클래스 이름이 다르므로 해당 DB 이름을 정확하게 넣어야 한다.
데이터베이스 연결 설정
//드라이버 로딩
Class.forName("com.mysql.jdbc.Driver");
//모든 데이터를 가져올 것이기 때문에 List형 변수 선언
List<Role> list = new ArrayList<>();
String sql = "select description, role_id from role order by role_id desc";
try (Connection conn = DriverManager.getConnection(dburl, dbUser, dbpasswd);
PreparedStatement ps = conn.prepareStatement(sql)) {
//해당 쿼리문의 데이터들을 가져와야 한다.
try (ResultSet rs = ps.executeQuery()) {
//테이블의 모든 건을 가져와야 한다.
while (rs.next()) {
String description = rs.getString(1);
int id = rs.getInt("role_id");
Role role = new Role(id, description);
list.add(role);
// list에 반복할때마다 Role인스턴스를 생성하여 list에 추가한다.
🙏 role 테이블의 모든 데이터를 출력해보자.
public class JDBCexam3 {
public static void main(String[] args) {
RoleDao dao = new RoleDao();
List<Role> list = dao.getRoles();
for(Role role : list) {
System.out.println(role);
}
}
}
📕 전체 코드
RoleDao.java - getRoles()
package kr.or.connect.jdbcexam.dao;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import kr.or.connect.jdbcexam.dto.Role;
public class RoleDao {
private static String dburl = "jdbc:mysql://localhost:3306/connectdb1?serverTimezone=Asia/Seoul&useSSL=false";
private static String dbUser = "connectuser";
private static String dbpasswd = "";
//SELECT - ALL
public List<Role> getRoles(){
List<Role> list = new ArrayList<>();
try {
Class.forName("com.mysql.jdbc.Driver");
}catch (ClassNotFoundException e) {
e.printStackTrace();
}
String sql = "select description, role_id from role order by role_id desc";
try (Connection conn = DriverManager.getConnection(dburl, dbUser, dbpasswd);
PreparedStatement ps = conn.prepareStatement(sql)) {
try (ResultSet rs = ps.executeQuery()) {
//테이블의 모든 건을 가져와야 한다.
while (rs.next()) {
String description = rs.getString(1);
int id = rs.getInt("role_id");
Role role = new Role(id, description);
list.add(role); // list에 반복할때마다 Role인스턴스를 생성하여 list에 추가한다.
}
} catch (Exception e) {
e.printStackTrace();
}
} catch (Exception ex) {
ex.printStackTrace();
}
return list;
}
JDBCexam3.java
package kr.or.connect.jdbcexam;
import java.util.List;
import kr.or.connect.jdbcexam.dao.RoleDao;
import kr.or.connect.jdbcexam.dto.Role;
public class JDBCexam3 {
public static void main(String[] args) {
RoleDao dao = new RoleDao();
List<Role> list = dao.getRoles();
for(Role role : list) {
System.out.println(role);
}
}
}