JDBC, MySQL 연동 3 - SELECT

JOY·2021년 12월 13일
0
post-thumbnail
post-custom-banner

📌 JDBC, MySQL 연동 3 - SELECT


1. MySQL 연동

RoleDao.java - getRoles()

📍 RoleDao.java는 MySQL과 Role.java 클래스를 이용하여 데이터를 처리하는 클래스 이다.

1. JDBC 드라이버 로딩 및 데이터베이스 연결

  • JDBC API 사용을 위해 Class.forName 메서드를 이용하여 JDBC 드라이버 로딩

  • DB 마다 클래스 이름이 다르므로 해당 DB 이름을 정확하게 넣어야 한다.

  • 데이터베이스 연결 설정

//드라이버 로딩
Class.forName("com.mysql.jdbc.Driver");
//모든 데이터를 가져올 것이기 때문에 List형 변수 선언
List<Role> list = new ArrayList<>();
	

2. SQL문 작성

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에 추가한다.
				

JDBCexam3.java

2. JDBC - SELECT

🙏 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);
		}		
	}
}

  • role 테이블의 모든 데이터 출력 확인 - 총 4건
  • 4건의 데이터가 맞게 출력되었는지 MySQL에서 확인




📕 전체 코드

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);
		}		
	}
}


profile
Just Do IT ------- 🏃‍♀️
post-custom-banner

0개의 댓글