java db 연동

호이잇·2023년 7월 13일
0

JAVA

목록 보기
12/12





try / catch를 쓰자
throws 처리하면 무슨 에러 났는지 잘 모른다

데이터베이스 연결하기

쿼리문 날리기

데이터 자바로 변환

위의 코딩은 정석으로 각각 try/catch줘서 어디에 오류가 났는지 메세지를 각각 준것이다

이제부터 한개의 메세지로 퉁쳐서 오류메세지를 주는 방법으로 대충 만들때 사용한다
다만 훗날 유지보수에 심각한 에러사항이 발생한다.

package ch13;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

public class S02 {
    public static void main(String[] args) throws SQLException {
        // try 밖에서도 쓸수 있게 선언만 해둠
        Connection connection = null;
        PreparedStatement preparedStatement = null;
        ResultSet resultSet = null;

        try {
            // db 연결 주소
            String url = "jdbc:mariadb://localhost:3306/hr";
            // db 연결
            connection = DriverManager.getConnection(url, "root", "1234");
            // 쿼리문 준비
            String sql = "select * from employees where salary > 10000";
            preparedStatement = connection.prepareStatement(sql);
            preparedStatement.setInt(1, 100);
            // 쿼리문 실행
            resultSet = preparedStatement.executeQuery();
            // 결과값 확인
            List<Emp> list = new ArrayList<>();
            while (resultSet.next()) {
                Emp emp = new Emp(
                        resultSet.getInt("employee_id"),
                        resultSet.getString("first_name"),
                        resultSet.getInt("salary"));
                list.add(emp);
            }
            System.out.println(list);

            // if(resultSet.next()){
            // Emp emp = new Emp(
            // resultSet.getInt("employee_id"),
            // resultSet.getString("first_name"),
            // resultSet.getInt("salary")
            // );

            // System.out.println(emp);
            // }
        } catch (Exception e) {
            System.out.println(e.getMessage());
        } finally {
            // connection은 무조건 닫아줘야 한다
            // null 체크
            if (connection != null) {
                connection.close();
            }
            if (preparedStatement != null) {
                preparedStatement.close();
            }
            if (resultSet != null) {
                resultSet.close();
            }
        }

    }
}
// ctrl + shift + p 로 자동완성을 설정할 수 있음 java: clean


get, set 등 각각 값을 주기 편하라고 하는 것

profile
코린이의 전원일기

0개의 댓글