정보보안공부

JSP_day15 본문

JSP

JSP_day15

Steady_sp 2017. 9. 28. 00:50

<JDBC>

 

## JDBC 설정방법

 

1) WEB-INF/lib에 라이브러리를 복사한다.
--> mariadb-java-client-2.1.2.jar
--> 파일이 없으면 search.maven.org에서 검색해서 다운 받는다.

 

 

2. META-INF밑에 Context.xml 파일을 만든다.

 

--> url 에는 mariadb를 사용하기때문에 mariadb로 입력 실제db의 포트번호:3306과 데이터베이스:jspdb로 작성

--> driverClassName도 mariadb를 사용하기 때문에 위와같이 작성

--> username은 mariadb에서 사용하려는 계정이름(jspuser)입력

--> password는 사용하려는 계정의 비밀번호(0000)입력

--> name은 "jdbc/mariaDB"로 설정

--> maxTotal, maxWaitMillis, maxIdle, type, auth는 정해진 값을 사용한다.

 

3. web.xml에 리소스를 추가한다.

 

 

--> description에는 DB Connection

--> res-ref-name에는 jdbc/mariaDB

--> res-type에는 javax.sql.DataSource

--> res-auth에는 Container 을 입력한다.

 

4. Connection객체를 얻는 클래스를 만들어 준다.

 

 

--> kr.koreais.jdbc 패키지안에 JdbcUtil이라는 클래스를 만든다.

--> close(Connection conn) close(Statement stmt) close(ResultSet rs) 메소드만들고

--> 트랜젝션에서 사용하는 rollback(Connection conn) 메소드도 만들어 둔다.

 

5. 연결을 테스트하기위해 jsp파일을 만들어서 테스트한다.

 

 

--> conn = JdbcUtil.getConnection(); 을통해 만들어놓은 JdbcUtil클래스를 사용한다.

 

--> 연결된게 확인되면 JDBC설정이 잘이루어졌다.

--> 아래의 실행을통해 테스트해보자

 

## 먼저, DB에서 데이터를 읽어서 저장할 VO 객체를 만든다.

--> 필드명과 1:1대응 되도록 필드를 선언하고 getter & setter를 만들고 toString을 오버라이딩한다.

 

 

## insert.jsp파일 생성

 

 

--> insert.jsp파일을 실행하면 위와같은 창이 뜬다.

 

## 쿼리를 전송할때 insert 로 해당 데이터 수정

1. 첫번째 방법 Statement 사용 - insertOk2.jsp

 

 

--> 쿼리를 전송할때 값을 vo.getName()으로 문자열 안에 추가시킨다.

--> stmt = conn.createStatement();

--> stmt.executeUpdate(sql); 로 작성한다.

 

2. 두번째 방법 PreparedStatement 사용 - insertOk.jsp

 

--> 쿼리를 사용할때 해당 데이터값을 ?,?,? 를 사용한다.

--> 해당 데이터를 pstmt.setString(순서, vo.get해당변수()); 로 작성한다.

--> Statement와 다른점은 sql쿼리값을 전송할때 pstmt.executeUpdate(sql)이 아닌!!

conn.prepareStatement(sql)을 이용해 쿼리값을 전송한다.

--> pstmt.executeUpdata()는 그대로 작성만 한다.

 

 

--> 위와같이 입력한후 저장하기를 누르면 mariaDB에 저장되 있는 것을 확인할 수 있다.

--> 아래를 통해 DB에 저장된 데이터를 jsp파일을통해 바로볼수 있도록 표를 만들어보자

 

## 데이터전송중 오류가 발생시 문제없이 전송하기위하여 사용할때는

 

 

--> conn.setAutoCommit(false); 트랜젝션 시작

--> conn.commit(); 작성하여 모든 명령이 정상적으로 실행되면 DB에 적용시키도록 한다.

--> JdbcUtil.rollback(conn); 을 이용해 하나라도 에러가 있으면 모든 SQL명령을 취소하도록 한다.

 

 

--> rollback은 JdbcUtil에 메소드로 작성되어있다.

 

## 쿼리를 전송한뒤 List를 이용해 해당값을 저장

 

 

 

 

 

 

 

 

 

'JSP' 카테고리의 다른 글

JSP_day14  (0) 2017.09.27
JSP_day13  (0) 2017.09.26
JSP_day12  (0) 2017.09.23
JSP_day09_Gson을 이용해 온라인 설문조사 만들기  (0) 2017.09.19
JSP_8. Gson  (0) 2017.09.19
Comments