정보보안공부
JSP_day15 본문
<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 |