2.JDBC(입력하기)

sana·2022년 8월 1일

JDBC

목록 보기
2/14


ID의 기본값을 주려고 함

1.ID열 탭의 바로위 줄을 누르고 위로 드래그하면서 땡겨서 밑에 값이 보이게함
2.그리고 ID열을 누름
이렇게 해야 널포인트예외 에러 안뜸
3.유형을 열시퀀스로 만들고 확인

시퀀스에 들어가보면 새로운 시퀀스 생김
그리고 민 벨류 1 최댓값 999999999999999999 1씩 증가하는 시퀀스생김
만약에 이미 ID값이 100까지 있었다 그러면 시퀀스 편집 연필모양 누르고
다음으로 시작 101로 맞추면 101부터 시작하게 된다

INSERT INTO notice (
title,
writer_id,
content,
files
) VALUES (
'TEST',
'홍길동',
'text content',
''
);
쿼리문도 쓰지않아도 되는애들 다 빼준다

시퀀스 한번쓰고 롤백해도 시퀀스는 롤백안됨


ResultSet rs = st.executeQuery(sql) < select 할경우씀 (ResultSet을 반환하고있는 Query)

결과집합에 커서를 가르키는거임 맨처음 커서가 가르키는게 BOF
rs.next()로 커서 하나씩 옮겨감
마지막으로 커서가 가르키는게 EOF

근데 인서트라던지 업데이트 딜리트 와 같이 조작을 할경우에는
저거 대신
int rs = st.executeUpdate(sql) < 이거씀 결과집합이 없으니까
결과가 몇개로가 영향을 받았는지 알려주는 int를 반환

insert옮기기 + 문제직면

1.일단 쿼리문을 insert문으로 써주자
2.변수를 만들고 값지정해서 쿼리문 벨류 값에 꽂아주자 그런데
자바로 옮긴 쿼리문 벨류값에 변수를 일일이 꽂아주기가 너무 힘들다

PreparedStatement

그래서 도와주는애가 preparedStatement!
프리페얼드스테이트먼트는 미리준비해서 값을 채울수 있는 능력이 잇슴
1.벨류 안에 내용을 싹다 지우고 몇개 넣을지만 ?로 표시해주자
2.PreparedStatement st = con.prepareStatement(sql);
3.st.setString(1, title); 인덱스 번호를 매기면서 차례대로 값입력하자
근데 숫자가 0부터가 아닌 1부터시작함

이제 실행하자

실행할때는 두가지함수 st.executeQuery<셀렉트할때
st.executeUpdate<인서트 업데이트 딜리트같은 조작할때

int result = st.executeUpdate();
프리페얼드를 사용할떈 익스큐트에서 sql을 전달 안함 이미 갖고 있기때문에 넣으면오류남!!
이놈 반환타입이 row count인데 이건 영향을 받은 행의 수를 의미함

System.out.println(result);
난 인서트로 1개만 했으니까 result가 1인지 확인해보자

1로 잘나옴 이제 디벨로퍼 가서 db에도 잘 나오는지 보러가자

잘댓당

profile
공부한내용 정리하고있는 개린이입니다

0개의 댓글