JPA & JDBC

JDBC

개발하는지호 2024. 1. 20. 23:07

jdbc란 자바 프로그램 안에서 SQL을 실행 하기 위한 응용프로그램 인터페이스이다.

 

연결하는법

 

우선 DB와 연결해주기 위한 작업을 한다.

package dev.syntax.step05statemanaging.step03practice;

import java.io.FileInputStream;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;

/*
 * DB와 관련된 공통 처리 코드들을 별도의 유틸 클래스로 작성
 */
public class DBUtil {
	
	/*
		java.util 패키지에서 제공하는 Properties 활용
		
		resources 폴더에 jdbc.properties라는 파일을 생성 후
		해당 파일 내에 DB 연결과 관련된 설정 정보를 작성해두고
		
		DBUtil.java가 그 파일을 읽어서 DB 커넥션을 수행할 수 있도록 작성
	*/
	
	public static Connection getConnection() {
		// 코드 작성 후 App.java에서 호출 가능하도록
		Properties prop = new Properties();
		
		try {
			FileInputStream fs = new FileInputStream("src/main/java/resources/jdbc.properties");
			
			prop.load(fs);
			
			prop.list(System.out);
			
			final String DB_URL = prop.getProperty("url");
			final String DATABASE_NAME = prop.getProperty("database");
			final String USER = prop.getProperty("username");
			final String PASSWORD = prop.getProperty("password");
			
			return DriverManager.getConnection(DB_URL + DATABASE_NAME, USER, PASSWORD);
			
		} catch (IOException | SQLException e) {
			e.printStackTrace();
		} 
		
		return null;
	}
}

 

이후 DB 를 연결하게 하고, 쿼리를 실행 한 후 DB에 있는 데이터를 활용한다.

package dev.syntax.step05statemanaging.step03practice;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;


public class FileReader {
	public List<Member> findAll() throws SQLException { // findAll()과 동작은 동일함
		List<Member> members = new ArrayList<Member>();

		String selectQuery = "SELECT * FROM info";
		Connection connection = DBUtil.getConnection();
		Statement statement = connection.createStatement();
		ResultSet resultSet = statement.executeQuery(selectQuery);

		// DBMS에게 쿼리(SQL)를 전달할 객체 생성
		try (connection; statement; resultSet) {

			while (resultSet.next()) {
				String id = resultSet.getString("id");
				String password = resultSet.getString("password");
				
				members.add(new Member(id, password));
			}
		
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return members;
	}
	
	
}