★ mysql 실습, 그리고 자바와 연동하기
☆ sql문 실습
* 회원수정
update 테이블이름
set 바꿀열이름=값, 열이름=값
where 조건열이름=값;
ex1) num 3인 사람의 name 수정
update student
set name = 'lee'
where num=3;
ex2) name kim인 사람의 num를 5로 수정
update student
set name=5
where name='kim';
* 회원삭제
delete from 테이블이름
where 조건열이름=값;
--------------------
delete from student
where num=5;
ex1) name이 'lee'사람 삭제
delete from student
where name = 'lee';
* 사용자 생성(계정 만들기)
grant
select, insert, update, delete, create, alter, drop
on jspbeginner.* to 'jspid'@'localhost'
identified by 'jsppass';
grant
select, insert, update, delete, create, alter, drop
on jspbeginner.* to 'jspid'@'%'
identified by 'jsppass';
* 만들어진 id로 들어가기
mysql -u jspid -p ☜ jspid id으로
jsppass ☜ 패스워드
use jspbeginner ☜ 데이터베이스 선택
* member 테이블 만들기
create table member(
id varchar(12) not null primary key,
passwd varchar(12) not null,
name varchar(12) not null,
reg_date datetime not null
);
-> "not null"의 뜻은 id를 비롯한 변수 4개가 하나라도 지정이 안될 경우 오류가 발생한다는 뜻.
show tables; ☜ 테이블 보기
desc member; ☜ member 테이블의 속성 보기
* sql문 : 폼에서 회원가입한 것을 확인할 때
set names euckr; ☜ 콘솔 창에서 한글 보이게 하기
☆ mysql을 자바와 연동하기
* 순서
1. jsp와 mysql 연결 프로그램 설치
※ JDBC: Java DataBase Connectivity : 자바-mysql을 연결하는 프로그램
2. mysql-connector-java-5.1.19-bin.jar 를 설치한다.
3. lib에 복사하기
3-1. DB폴더 만들기
4. 이클립스에서 jsp 코딩하기
* 단계
1단계 드라이버로더
2단계 디비연결(디비주소,아이디,비밀번호) 연결객체 - 연결정보만 저장하고있는 공간
3단계 sql문 생성
4단계 실행 insert update delete => 저장 select
5단계 저장 -> 처리 select
(1) driverTest.jsp
<%
Connection con = null;
String url="jdbc:mysql://localhost:3306/jspbeginner";
String user="jspid";
String pwd="jsppass";
try{
//1단계 드라이버로더
Class.forName("com.mysql.jdbc.Driver");
//2단계 연결
con = DriverManager.getConnection(url, user, pwd);
out.println("연결성공");
}catch(Exception e){
e.printStackTrace();
}
%>
(2-1) insertForm.jsp
<form action="insertPro.jsp" method="post">
아이디: <input type="text" name="id"><br>
패스워드: <input type="password" name="passwd"><br>
이름: <input type="text" name="name"><br>
<input type="submit" value="전송"><br>
</form>
(2-2) insertPro.jsp ☜ 서버와 연동해서 회원가입하기
<%
//한글처리
//id passwd name 가져오기
request.setCharacterEncoding("utf-8");
String id = request.getParameter("id");
String passwd = request.getParameter("passwd");
String name = request.getParameter("name");
//시스템의 현재 날짜와 시간을 담아줌
Timestamp register = new Timestamp(System.currentTimeMillis());
Connection con = null;
String url="jdbc:mysql://localhost:3306/jspbeginner";
String user="jspid";
String pwd="jsppass";
PreparedStatement pstmt=null; //sql문장을 먼저 미리 쓰겠다
String sql="";
try{
//1단계 드라이버 로더
Class.forName("com.mysql.jdbc.Driver");
//2단계 디비연결
con=DriverManager.getConnection(url,user,pwd);
//3단계 sql문 생성 Statement PreparedStatement CallableStatement
//PreparedStatement CallableStatement
sql="insert into member(id,passwd,name,reg_date) values(?,?,?,?)";
pstmt=con.prepareStatement(sql);
pstmt.setString(1, id);
pstmt.setString(2, passwd);
pstmt.setString(3, name);
pstmt.setTimestamp(4, register);
//4단계 실행
pstmt.executeUpdate(); //insert,update,delete
out.println("회원가입성공");
}catch(Exception e){
e.printStackTrace();
}finally{
if(pstmt!=null)try{pstmt.close();}catch(SQLException ex){}
if(con!=null)try{con.close();}catch(SQLException ex){}
}
%>
(3) select.jsp ☜ 가입된 내용을 GUI창에서 보여주기
<h1>회원조회</h1>
<table border="1">
<tr><td>아이디</td><td>패스워드</td><td>이름</td><td>가입일자</td></tr>
<%
request.setCharacterEncoding("utf-8");
Connection con = null;
String url="jdbc:mysql://localhost:3306/jspbeginner";
String user="jspid";
String pwd="jsppass";
String sql="";
PreparedStatement pstmt=null; //sql문장을 먼저 미리 쓰겠다
ResultSet rs = null;
try{
// 1단계 드라이버로더
Class.forName("com.mysql.jdbc.Driver");
// 2단계 디비연결
con=DriverManager.getConnection(url,user,pwd);
// 3단계 sql구문 생성
sql="select * from member";
pstmt = con.prepareStatement(sql);
// 4단계 실행=> rs저장
rs=pstmt.executeQuery();
// 5단계 rs => 테이블 출력
while(rs.next()){ //첫번째행
String id = rs.getString("id"); //테이블열이름 1
String passwd = rs.getString("passwd");
String name = rs.getString("name");
Timestamp register = rs.getTimestamp("reg_date");
%>
<tr><td><%=id %></td><td><%=passwd %></td><td><%=name %></td><td><%=register %></td></tr><%
}
}catch(Exception e){
e.printStackTrace();
}finally{
if(rs!=null) try{rs.close();}catch(SQLException ex){}
if(pstmt!=null)try{pstmt.close();}catch(SQLException ex){}
if(con!=null)try{con.close();}catch(SQLException ex){}
}
%>
</table>
결과
mysql> jspbeginner 데이터베이스 안에 member라는 테이블이 만들어진 것을 콘솔창에서 볼 수 있다.
- 이름이 깨져서 나오는 현상이 생겨, set names euckr; 를 사용해서 한글이 보이게끔 하였다.
'N스크린하이브리드앱과정 > JSP:Model-1' 카테고리의 다른 글
[6주][1일][5~8th] JSP: 회원가입폼 분리시키기 (0) | 2013.08.19 |
---|---|
[5주][2일][5~8th] JSP: 회원수정, 회원삭제, 로그인 폼 구현하기 (0) | 2013.08.13 |
[4주][5일][5~8th] JSP: 파일 업로드 (0) | 2013.08.09 |
[4주][4일][5~8th] JSP: 세션과 쿠키. session and cookie. (0) | 2013.08.08 |
[4주][3일][5~8th] JSP: 액션태그로 폼만들기, 세션값 넣고 지우기. (0) | 2013.08.07 |