DB 연동의 순서
쿼리의 실행 결과를 전달 해주는 객체 = > statement or preparedStatement
executeQuery 메서드는 SELECT 쿼리 메서드를 실행시키고자 할 때 사용하는 메서드이고
executeUpdate 메서드는 SELECT 외에 INSERT, UPDATE, DELETE 메서드를 실행할 때 사용하는 메서드
---------------------------------
executeQuery 메서드는 ResultSet 타입의 객체를 반환하는데 이 객체는 SELECT의 실행 결과를 갖고 있는 객체
executeUpdate 메서드는 해당 쿼리로 영향을 받은 행의 수인 int를 반환 함
SELECT (executeQuery) 의 실행 결과를 rs 변수에 저장 할 것
next 메서드는 현재 커서가 있는 위치에서 다음 레코드가 있는지를 판단해 있으면 true, 없으면 false를 반환함
그와 동시에 커서를 다음 레코드로 이동 시킴
=============================================
DB 연동하면서 겹치는 부분들이 많아서 그부분들은 DBConn 에다가 클래스로 만들어서 어디든 사용가능하게 만듦
INSERT sql 실행할때 순서 보기
기본적으로 preparedstatement 많이 씀
1. DB 연결 하기
2. 실행할 쿼리 준비 // preparedstatement 사용할때는
가변적인 값들을 ? 로 넣는다
sql 해석은 membertbl 테이블에 값을 넣는다
3. 쿼리를 실행하고 결과를 가져올 객체 생성
preparedStatment는 DB 를 연결하는 도로의 자동차라고 생각하기
이 자동차에 sql 값을 넣어서 배송하고 들어간담
순서 기억하기 sql 하고 preparedStatement 객체 생성한다.
pstmt 여기에서 위에 ? ? ? 값을 설정해준다.
여기 프로젝트에는 MemberInfo newMemberInfo = new MemberInfo(id, pw, name);
하나의 정보로 데이터를 만들어둔 상태이다
그래서 DB에 보낼 값을 pstmt 에 인덱스파라미터와 값을 설정한다
근데 여기서의 인덱스파라미터는 0부터가 아니라 1번 부터 주의 하기
4. 쿼리를 실행하고 결과를 가져오기
executeUpdate의 반환하는 값은 쿼리로 영향을 받은 행의 수인 int를 반환 함
그래서 예로 회원가입을 할때 executeUpdate 값이 1이라면 회원가입 성공
0이라면 무슨 이유인지 회원가입에 실패한것이다.
마지막에
이렇게 잘 마무리하기 ! 위에 사진은 dao값에다가 넣은거라서 return 값은 신경 안써도 됨
catch / finally 로 close 필수로 해줘야한다 !
sql 마다 약간씩 달라서 추가로 작성하겠음