티스토리 뷰

jsp

chap14 데이터베이스 프로그래밍 기초

일상다반ㅅㅏ 2018. 5. 13. 18:43

365페이지에서

create user 'jspexam'@'%' identified by 'jsppw';

부분만 쿼리 실행에 실패를 한다.ㅡㅡ


어차피 '%' 부분이 호스트이니

localhost는 성공 했으니 상관 없겠지??


---------------------------------------------------------------------5/13


jdbc는 java database connectivity

자바에서 데이터베이스와 관련된 작업을 처리할 때 사용하는 api

자바는 dbms의 종류에 상관없이 하나의 jdbc api를 사용해서 데이터베이스 작업을 처리할 수 있다.

jdbc 드라이버는 WEB-INF/lib 폴더에 넣으면 

Java Resources > Libraries > Web App Libraries에 자동으로 추가된다.


리스트 14.1 실습 오류

javax.servlet.ServletException: java.lang.UnsupportedClassVersionError: com/mysql/jdbc/Driver : Unsupported major.minor version 52.0 (unable to load class com.mysql.jdbc.Driver)


이런거 뜨는데 jdbc 드라이버 버전의 차이인거 같다.

난 mysql을 최신버전으로 설치해서 mysql-connector-java-8.0.11.jar이었고

교재는 이전버전인 mysql-connector-java-5.1.35-bin.jar이었다.

뒤어 bin붙은 것도 큰 차이인진 잘 모르겠다...

여튼 인터넷에서 mysql-connector-java-5.1.46-bin.jar을 다운받아 실행하니

해결되었다.

jdbc다운 링크 : https://dev.mysql.com/downloads/file/?id=476198


---------------------------------------------------------------------5/20


executeQuery(String query) : select 쿼리를 실행하며 반환타입은 ResultSet

executeUpdate(String query) : insert, update, delete 쿼리를 실행하며 결과로 변경된 레코드 개수를 반환한다.


스트림에서 데이터를 읽어와 버퍼에 저장하기

while( (len = reader.read(ch)) != -1 ) {

buff.append(ch, 0, len);

}

read(ch) : ch[]의 크기만큼 읽어 buf에 저장하고 길이를 반환한다.

>>>>>>>>??


PreparedStatement 사용이유

- 값 변환을 자동으로 하기 위해

- 간결한 코드를 위해

예)

statement

1
stmt.executeQuery("select U from member where name = '" + "최'범균".replaceAll("'", "''") + ("' ");
cs

preparedstatement

1
2
pstmt = conn.prepareStatement("select * from member where name = ?");
pstmt.setString(1, "최'범균");
cs


System.out.print() : 이클립스 콘솔에 출력

out.print() : 웹 화면에 출력

---------------------------------------------------------------------5/22


jdbc드라이버를 웹 어플리케이션이 시작할 때 로딩하면 매번 페이지에서 로딩할 팔요가 없다.


커넥션 풀

데이터베이스와 연결된 커넥션을 미리 만들어 풀 속에 저장해 두고 있다가 필요할 때 커넥션을 풀에서 가져다 쓰고 다시 풀에 반환하는 기법

jdbc드라이버와 마찬가지로 웹 어플리케이션이 시작할 때 로딩해 준다.

오픈 소스 프로젝트인 DBCP API를 사용한다.(http://commons.apache.org)

- commons-dbcp2-2.1.jar

- commons-pool2-2.4.1.jar

- commons-logging-1.2.jar


커넥션 풀의 특징

- 커넥션을 생성하는데 드는 연결 시간을 줄일 수 있다.(실행속도 향상)

- 커넥션을 재사용함으로서 생성되는 커넥션 수가 일정하게 유지된다.(동시 접속자 수가 몰려도 웹 어플리케이션이 쉽게 다운되지 않음)


---------------------------------------------------------------------5/26


14장 실습 코드 

https://github.com/KihyunLim/chap14.git


'jsp' 카테고리의 다른 글

chap16 커스텀 태그 만들기  (0) 2018.06.09
chap15 웹어플리케이션의 일반적인 구성 및 방명록 구현  (0) 2018.06.03
chap12 표준 태그 라이브러리(JSTL)  (0) 2018.05.13
chap11 표현언어(EL)  (0) 2018.05.07
chap10 세션  (0) 2018.05.07