ITWILL학원 : 20강 JSP기초 BY 정규태강사 JDBC
JDBC활용 - import쓰는 이유, form페이지로 받은 데이터를 DB에 insert하는 방법
JDBC활용 - JAVA에서 DB 정보 지우기 2가지방법
JDBC활용 - DB에서 고객정보를 불러와서 HTML테이블에 담기
JDBC활용 - TIMESTAMP주의점, JDBC에서 데이터처리
JDBC활용 - 회원정보수정페이지만들기
JDBC활용 - 회원목록출력하는데 관리자는 빼고 출력하기, 자바 에러 두종류
DB저장되어있는 모든 회원정보를 출력하는 코드를 작성해보자.
1. recordset과 resultset
recordset = select 구문의 결과. BOF부터 EOF(End Of File)까지의 총 덩어리를 의미.
resultset = 테이블을 의미. ex)테이블A, 테이블B, 테이블C 각각이 다 resultset이다.
2. DB에서 고객정보를 불러와서 테이블에 담기. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 <table border ="1" > <tr > <td > 인덱스</td > <td > 이름</td > <td > 성별</td > <td > 나이</td > <td > 주민번호</td > </tr > <% //1. 변수설정 %> <% //2. 드라이버 로드와 DB 연결 final String DRIVER = "com.mysql.jdbc.Driver" ;final String DBURL = "jdbc:mysql://localhost:3306/jspdb" ;final String DBID = "root" ;final String DBPW = "1234" ;Class.forName (DRIVER );Connection con = DriverManager.getConnection(DBURL, DBID , DBPW );//3. 쿼리작성 String sql = "select * from itwill_member" ;PreparedStatement pstmt = con.prepareStatement(sql); ResultSet rs = pstmt.executeQuery(); //3-1. 일반출력 /* while (rs.next ()){ System.out.println ("이름 : " + rs.getString ("name ") //이름만 출력 + ", 성별 : " + rs.getString ("gender ") + ", 나이 : " + rs.getInt ("age ") + ", 주민번호 : " + rs.getString ("jumin ")); //이름, 나이, 성별, 주민번호 - > 콘솔로 출력하기 -> html 테이블생성해서 출력하기 }*/
2-1. 테이블에 출력 가져온 데이터를 테이블형태로 출력해보는데 2가지 방법이 있다.
변수지정없이 바로 while반복문실행 SQL구문작성시 select * from itwill_member
이라서 while반복문을 사용했다. 만약 SQL구문이 select * from itwill_member where id=?
로 where조건절을 추가하면 반복문이 아닌 if문으로 사용가능하다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 //3.쿼리작성 String sql = "select * from itwill_member"; PreparedStatement pstmt = con.prepareStatement(sql); ResultSet rs = pstmt.executeQuery(); while(rs.next()){ %> <tr > <td > <%=rs.getString(1) %> </td > //인덱스 <td > <%=rs.getString("name") %> </td > <td > <%=rs.getString("gender") %> </td > <td > <%=rs.getInt("age") %> </td > <td > <%=rs.getString("jumin") %> </td > </tr > <% } %> </table >
변수에 저장해서 반복문없이 table에 바로 태그집어넣기 rs에서 가져온 값을 변수로 저장해서 html table태그에 바로 표현식으로 집어넣을 수 있다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 //3.쿼리작성 String sql = "select * from itwill_member where id=?"; PreparedStatement pstmt = con.prepareStatement(sql); pstmt.setString(1, id); ResultSet rs = pstmt.executeQuery(); String name = ""; int age = 0; String gender = ""; String email = ""; Timestamp reg_date = null; //null이 초기값임 if(rs.next()){ //id=rs.getString("id"); 세션으로 가져와서 필요없음 name = rs.getString("name"); age = rs.getInt("age"); gender = rs.getString("gender"); email = rs.getString("email"); reg_date = rs.getTimestamp("reg_date"); } %> <table border =1 > <tr > <td > 아이디</td > <td > 이름</td > <td > 나이</td > <td > 성별</td > <td > 이메일</td > <td > 가입일자</td > </tr > <tr > <td > <%=id %> </td > <td > <%=name %> </td > <td > <%=age %> </td > <td > <%=gender %> </td > <td > <%=email %> </td > <td > <%=reg_date %> </td > </tr > </table >