DB를 연동하면서 아무생각없이 타이핑하던 소스들을 정리해보기로 했다.
DB를 생각하면 우선적으로 이제는 연결부터 생각이난다. 당연히 연결을 우선적으로 해야 DB를 사용할 수 있기 때문이다.
DB를 연결하기 위해서는 JDBC드라이버 라는 것ㅇㅣ 필요하다. 이것은 해당 DBMS마다 다른 것이라. 따로 검색해서 해보면 될것이다. 나는 포스트그리를 사용하여 DB를 연결해보았었다.
연결하기위해서는 우선적으로 드라이버를 연결해야 한다. 그래야 드라이버에서 DBMS를 연결해주기 때문이다.
드라이버를 연결하기 위해서는
Class.forName(String);라는 것을 사용하게 된다. 문자열로 되어있는 매개변수 안에는 각 DBMS에 맞는 경로?....를 적어줘야한다.. 클래스명인가..아무튼 포스트그리에 경우.
Class.forName("org.postgresql.Driver");
이렇게 사용이된다. 이렇게 해주고 난 다음 아래에
System.out.print("드라이버로드");라고 해주면 콘솔창에 "드라이버로드" 라고 뜨는 걸 볼 수 있을 것이다.
그다음 알아야 할 것은
connection이다. 사실 이것은 검색을 했었는데, 제대로 된 답을 찾지못하였다. 하지만 직접해보고 나니까. 언제 사용하는건지 알 수 있게 되었다.
connection con = DriverManager.getConnection(url, id, pw);
보기만 해도 감이 올것이다. 바로 위에 드라이버가 로드 되었을 때 드라이버와 디비에 관계를 맺어주는(?) 역할을 해준다.
보통 이렇게 드라이버와 디비를 연결해주는 클래스를 따로 만들어주는데, return을 해주면서 디비가 필요한 자바 페이지에서 따로 코딩을 하지 않아도 디비를 연결할 수 있게 한다.
이렇게 연결해주는 클래스를 만들었다면 이제 디비를 사용하는 클래스를 만들어 줘야한다.
DAO클래스 이다. DAO에서는 쿼리를 날려주고 데이터의 쿼리값을 넣어주는 메소드가 있다.
Statement() 메소드와 ResultSet가 있다
Statement()는 주로 쿼리 문과 관련된 작업을 할때 사용된다.
내가 본 주요메소드는
ㅇ executeQuery(String sql) = select문을 사용할 때 사용되는 메소드이다. 결과 값으로 ResultSet이 리턴된다고 한다.
ㅇ executeUpdate(String sql) = insert, update, create 등 데이터베이스의 변경된 값을 가져 올때 사용된다고한다.,
ㅇ close() = DB를 사용하고 닫아주듯이 이것도 사용 후 반드시 닫아줘야한다.
ResultSet은 쉽게 설명하면 커서?라고 하면 좋을 것 같다.
ㅇ next = 커서를 다음행으로 옴겨 질의를 수행하는 것이다. 처음엔 몰랐지만 찾아보니 굉장히 간단한 것이였다.
ㅇ getString = String name = rs.getString("name"); 이런식으로 사용된다. 보면 네임에서 값을 가지고 오겠다 라고 생각하면 되
겠다... 아님말고는 아니고.. 그냥 리절트셋으로 name이라는 컬럼을 name이라는 변수에다 넣는다. 뭐이런식?..밑에걸 보면 쉽게 이해될것이다
ㅇ close = 마찬가지로 사용후 닫아줘야한다,.
이 두 메소드는 이런식으로 사용이 된다.
st = con.createStatement();
String sql = "SELECT * FROM web ORDER BY num ASC";
rs = st.executeQuery(sql);
while(rs.next()){
int num = rs.getInt("num");
String name = rs.getString("name");
String date = rs.getString("date");
}
}catch{
......
...
}
머이런 식으로 사용 되는 것이다. 딱 이해가 될 것이다.
이렇게 DAO클래스 까지 만들어줬다면 이제 연결도 됬고 사용할 준비도 됫으니.. 사용할 수 있게 만들어줘야한다.
그것이 바로 DTO클래스이다.
이 클래스에는 별다른 것은 없고 생성자와 겟터 셋터만 존재할 뿐이다..
솔직히 나는 아직도 잘모르겠다. 이것이 왜필요한건지는 좀알겠는데 어떻게 흘러가는건지는..모르겟다.
왜필요할까... 이것은 따로 공부를 해봐야겠다. 간단한 소스이지만 분명히 중요한 소스인것이 분명하다.
출처: https://junyjsp.tistory.com/14?category=481786 [개발과 취미는 열정적으로]
'study > java' 카테고리의 다른 글
[Spring Security] 스프링 시큐리티 설정 (0) | 2021.12.30 |
---|---|
[Spring Security] 스프링 시큐리티 개념 (0) | 2021.12.30 |
[JSP] JSP DB 연동(2) (0) | 2021.12.30 |
[JSP] JSP DB 연동(1) (0) | 2021.12.30 |
이클립스(Eclipse) 한글 깨짐 오류 수정하기 (0) | 2021.12.30 |