티스토리 뷰
DB연동 없이 JSP 홈페이지 만들기(회원가입, 회원목록) 링크: rla5378.tistory.com/17 DB연동 없이 JSP 홈페이지 만들기(로그인 로그아웃) 링크: rla5378.tistory.com/18 DB연동 없이JSP 홈페이지 회원 수정, 회원 삭제 구현 링크: rla5378.tistory.com/19홈페이지와 연결할 DB테이블 만들기 링크: rla5378.tistory.com/21 JSP 오라클 연동 자바로 연습하기(select.java) 링크: rla5378.tistory.com/22 |
-selectAll.java
package jdbcBasic;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class selectAll {
public static void main(String[] args) {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String url = "jdbc:oracle:thin:@localhost:1521:xe";
String user = "jsp";
String password = "jsp";
String sql="select * from member";
try {
Connection con = DriverManager.getConnection(url, user, password);
PreparedStatement ps = con.prepareStatement(sql);
ResultSet rs= ps.executeQuery();
while(rs.next()) {
System.out.print(rs.getInt(1)+"\t");
System.out.print(rs.getString(2)+"\t");
System.out.print(rs.getString(3)+"\t");
System.out.print(rs.getString(4)+"\t");
System.out.println(rs.getString(5));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
*DB를 연동하는 내용은 select.java 글에 자세히 적어두었습니다.
selectAll.java에서는 모든 회원 정보를 출력하는 구문입니다.그렇기때문에 rs.next()구문을 while로 반복하여 전 회원 정보를 출력할 수 있습니다.
-insert.java
package jdbcBasic;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Scanner;
public class Insert {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.print("아이디: "); String id=in.next();
System.out.print("패스워드: "); String pw=in.next();
System.out.print("이름: "); String name=in.next();
System.out.print("이메일: "); String email=in.next();
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String url = "jdbc:oracle:thin:@localhost:1521:xe";
String user = "jsp";
String password = "jsp";
String sql="insert into member values(num_seq.nextval, ?, ?, ?, ?)";
try {
Connection con = DriverManager.getConnection(url, user, password);
PreparedStatement ps = con.prepareStatement(sql);
ps.setString(1, id);
ps.setString(2, pw);
ps.setString(3, name);
ps.setString(4, email);
ps.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
위의 구문에서 포인트를 뽑아서 설명해보자면
Scanner in = new Scanner(System.in);
System.out.print("아이디: "); String id=in.next();
System.out.print("패스워드: "); String pw=in.next();
System.out.print("이름: "); String name=in.next();
System.out.print("이메일: "); String email=in.next();
System.in은 키보드에서 사용자로부터 키를 입력 받기 위해서 사용합니다.
Scanner의 인스턴스화를 시키고 in.next()를 사용하여 키보드가 입력한 값을 String id에 넣어줍니다.
*in.next()를 키보드에서 입력을 받겠다는 의미로 생각하시면 이해가 쉽습니다.
ps.executeUpdate();
select일때는 excuteQuery()를 사용했지만 이 페이지는 데이터를 추가해주는 페이지이기때문에 executeUpdate()를 사용해줍니다.
-update.java
package jdbcBasic;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Scanner;
public class Update {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("**** 수정할 회원 정보 입력 ****");
System.out.print("아이디 : "); String id = in.next();
System.out.print("패스워드 : "); String pw = in.next();
System.out.print("이름 : "); String name = in.next();
System.out.print("이메일 : "); String email = in.next();
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String url = "jdbc:oracle:thin:@localhost:1521:xe";
String user = "jsp";
String password= "jsp";
String sql = "update member set pw=?, name=?, email=? where id=?";
Connection con;
PreparedStatement ps;
try {
con = DriverManager.getConnection(url, user, password);
ps = con.prepareStatement(sql);
ps.setString(1, pw);
ps.setString(2, name);
ps.setString(3, email);
ps.setString(4, id);
ps.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
위의 insert.java와 update.java의 차이가 있다면 sql문이 다릅니다.
이번에는 있는 데이터를 업데이트 시켜주는 것 이기때문에 sql문의 update table명 set 값 을 사용해줍니다.
-delete.java
package jdbcBasic;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Scanner;
public class delet {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.print("아이디: ");
String id = in.next();
System.out.print("패스워드: ");
String pw = in.next();
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String url = "jdbc:oracle:thin:@localhost:1521:xe";
String user = "jsp";
String password = "jsp";
Connection con;
PreparedStatement ps;
ResultSet rs;
String sql="select * from member where id=?";
try {
con = DriverManager.getConnection(url, user, password);
ps= con.prepareStatement(sql);
ps.setString(1,id);
rs=ps.executeQuery();
if(rs.next() == true && rs.getString("pw").equals(pw)) {
sql = "delete from member where id=?";
ps= con.prepareStatement(sql);
ps.setString(1,id);
ps.executeUpdate();
}else {
System.out.println("일치하지 않는다.");
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
이번에는 id의 값을 이용해서 입력받은 id와 DB안에 있는 id가 일치하면 해당 회원(튜플)을 삭제하는 기능입니다
String sql="select * from member where id=?";
먼저 이 sql문은 우리가 키보드에서 입력한 id를 where절에 넣어 해당 id를 키로 사용하여 그 회원의 정보를 가져오는 구문입니다.
if(rs.next() == true && rs.getString("pw").equals(pw))
rs.next()==true 는 이미 우리가 입력한 id와 DB에 id가 일치했다는 증거입니다만 && rs.getString("pw").equals(pw)를 사용해 한번더 확인을 하는 과정을 해주었습니다.
sql = "delete from member where id=?";
id가 있고 pw도 맞다면 if문 안으로 들어와 sql문을 delete from 테이블명 where 조건식 으로 넣어줍니다.
삭제하는 기능 역시 executeUpdate()를 사용해줍니다.
'JSP' 카테고리의 다른 글
JSP_자바코드 이용하여 DB연동_홈페이지 기능 구현 (0) | 2021.05.08 |
---|---|
JSTL_태그 라이브러리 다운받기 (0) | 2021.05.03 |
JSP_홈페이지 회원 수정, 회원 삭제 구현(DB연동 없이) (0) | 2021.05.02 |
JSP_홈페이지 로그인, 로그아웃 구현(DB연동 없이) (0) | 2021.05.02 |
JSP_홈페이지 회원가입, 회원 목록 기능 만들기(DB연동 없이) (0) | 2021.04.28 |
- Total
- Today
- Yesterday
- application
- forward
- this.
- CLASS
- Declaration
- div
- Redirect
- 정보산업처리기사
- 자격증
- session
- 실기
- dl
- 정처기
- Margin
- NAV
- getParameter
- scriptlet
- 독학
- RequestDispatcher
- padding
- Expression
- span
- jsp
- link href
- id
- 정처산기
- 합격
- request
- pageContext
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |