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 등 각각 값을 주기 편하라고 하는 것