일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 무한
- Short
- https://start.spring.io
- 빌드
- boxing
- 언박싱
- 메소드
- 내장객체
- unboxing
- 루프
- Jenkins
- 컬렉션
- maven
- bootstrap
- 인텔리제이
- dependency
- 콜렉션
- suvlet
- 싱글톤
- start.spring.io
- 클래스
- 박싱
- 제네릭
- wrapper
- Java
- 제너릭
- Scanner
- 싱글턴
- 자동형변환
- 스프링
Archives
- Today
- Total
Developer Gonie
[9주차] 18. JDBC관련 DAO 클래스를 jsp 파일이 아닌 java파일로 작성 + 17번 게시글 개념 (feat. 페이지 이동하며 데이터를 넘겨주는 여러가지 방법적용 ) 본문
K-DigitalTraining 강의/8. JSP
[9주차] 18. JDBC관련 DAO 클래스를 jsp 파일이 아닌 java파일로 작성 + 17번 게시글 개념 (feat. 페이지 이동하며 데이터를 넘겨주는 여러가지 방법적용 )
이대곤 2022. 7. 14. 00:36JSP에서 다음 페이지로 데이터를 전달시키는 4가지 방법(참고)
https://ldgeao99-developer.tistory.com/438
예시
Tip!
insert 작업이 끝난뒤 select 결과를 보여주는 페이지로 이동하는데, 여기서는 수정,삭제, 삽입 등을 할 수 있다.
수정 혹은 삭제 클릭시 대상의 번호 값을 <a>태그의 파라미터로 추가하여 보내는 것을 주의깊게 봐두자.
그리고 이동한 페이지에서는 이 파라미터를 request 객체를 통해 꺼내썻다는 것도.
Tip!
여기서는 다음페이지로 넘어갈 때 알고있던 num 값을 다음페이지로 이동하면서 가져가기 위해
hidden tpye의 input 요소를 사용하였다.
MemberDao 클래스
package myPkg;
import java.sql.*;
import java.util.ArrayList;
public class MemberDao {
String driver = "oracle.jdbc.driver.OracleDriver";
String url = "jdbc:oracle:thin:@localhost:1521:orcl";
String id = "jspid";
String pw = "jsppw";
Connection conn = null;
// jsp 파일은 서블릿 파일로 변경될 때 예외처리를 자동으로 해주지만,
// java 파일이라서 예외처리를 일일이 해줘야 함.
public MemberDao(){
//1. 드라이버로드
try {
Class.forName(driver);
System.out.println("드라이버 로드 성공");
} catch (ClassNotFoundException e) {
System.out.println("드라이버 로드 실패");
}
}
public void getConnection(){
//2. 계정에 접속
try {
conn = DriverManager.getConnection(url, id, pw);
System.out.print("접속성공: ");
System.out.println(conn);
} catch (SQLException e) {
System.out.println("접속에러");
}
}
public ArrayList<MemberBean> getAllMembers() {
//2.
getConnection();
ArrayList<MemberBean> list = new ArrayList<MemberBean>();
PreparedStatement ps = null;
ResultSet rs = null;
try {
//3. SQL 작상 및 분석
String sql = "select * from member";
ps = conn.prepareStatement(sql);
//4. SQL문 실행
rs = ps.executeQuery();
while(rs.next()) {
MemberBean bean = new MemberBean();
bean.setNum(rs.getInt("num"));
bean.setId(rs.getString("id"));
bean.setPasswd(rs.getString("passwd"));
bean.setName(rs.getString("name"));
//Date 타입의 데이터를 가져와 String으로 변환
bean.setRegister(String.valueOf(rs.getDate("register")));
list.add(bean);
}
} catch (SQLException e) {
System.out.println("SQL문 실행중 오류 발생");
} finally{
try {
// 이렇게 null 비교를 해주고 모두 반환하면 더 완벽하다고 하심
if (conn != null)
conn.close();
if (ps != null)
ps.close();
if (rs != null)
rs.close();
} catch (SQLException e) {
System.out.println("접속 종료 실패");
}
}
return list;
}//getAllMembers()
public int insertMember(MemberBean bean) {
// 2.
getConnection();
PreparedStatement ps = null;
int cnt = -1; // 실패하면-1, 성공하면 1
try {
//3. SQL 작상 및 분석
String sql = "insert into member values(m_seq.nextval, ?, ?, ?, sysdate)";
ps = conn.prepareStatement(sql);
ps.setString(1, bean.getId());
ps.setString(2, bean.getPasswd());
ps.setString(3, bean.getName());
//4. SQL문 실행
cnt = ps.executeUpdate();
} catch (SQLException e) {
System.out.println("SQL문 실행중 오류 발생");
} finally{
try {
// 이렇게 null 비교를 해주고 모두 반환하면 더 완벽하다고 하심
if (conn != null)
conn.close();
if (ps != null)
ps.close();
} catch (SQLException e) {
System.out.println("접속 종료 실패");
}
}
return cnt;
}// insertMember()
public MemberBean getMemberByNum(int num) {
//2.
getConnection();
MemberBean bean = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
//3. SQL 작상 및 분석
String sql = "select * from member where num = ?";
ps = conn.prepareStatement(sql);
ps.setInt(1, num);
//4. SQL문 실행
rs = ps.executeQuery();
while(rs.next()) {
bean = new MemberBean();
bean.setNum(rs.getInt("num"));
bean.setId(rs.getString("id"));
bean.setPasswd(rs.getString("passwd"));
bean.setName(rs.getString("name"));
//Date 타입의 데이터를 가져와 String으로 변환
bean.setRegister(String.valueOf(rs.getDate("register")));
}
} catch (SQLException e) {
System.out.println("SQL문 실행중 오류 발생");
} finally{
try {
// 이렇게 null 비교를 해주고 모두 반환하면 더 완벽하다고 하심
if (conn != null)
conn.close();
if (ps != null)
ps.close();
if (rs != null)
rs.close();
} catch (SQLException e) {
System.out.println("접속 종료 실패");
}
}
return bean;
}//getMemberByNum()
public int updateMember(MemberBean bean) {
// 2.
getConnection();
PreparedStatement ps = null;
int cnt = -1; // 실패하면-1, 성공하면 1 이상
try {
// 3. SQL 작상 및 분석
String sql = "update member set id=?, passwd=?, name=? where num = ?";
ps = conn.prepareStatement(sql);
ps.setString(1, bean.getId());
ps.setString(2, bean.getPasswd());
ps.setString(3, bean.getName());
ps.setInt(4, bean.getNum());
// 4. SQL문 실행
cnt = ps.executeUpdate();
} catch (SQLException e) {
System.out.println("SQL문 실행중 오류 발생");
} finally {
try {
// 이렇게 null 비교를 해주고 모두 반환하면 더 완벽하다고 하심
if (conn != null)
conn.close();
if (ps != null)
ps.close();
} catch (SQLException e) {
System.out.println("접속 종료 실패");
}
}
return cnt;
}// updateMember()
public int deleteMember(int num) {
// 2.
getConnection();
PreparedStatement ps = null;
int cnt = -1; // 실패하면-1, 성공하면 1 이상
try {
// 3. SQL 작상 및 분석
String sql = "delete from member where num = ?";
ps = conn.prepareStatement(sql);
ps.setInt(1, num);
// 4. SQL문 실행
cnt = ps.executeUpdate();
} catch (SQLException e) {
System.out.println("SQL문 실행중 오류 발생");
} finally {
try {
// 이렇게 null 비교를 해주고 모두 반환하면 더 완벽하다고 하심
if (conn != null)
conn.close();
if (ps != null)
ps.close();
} catch (SQLException e) {
System.out.println("접속 종료 실패");
}
}
return cnt;
}
}
MemberBean 클래스
package myPkg;
public class MemberBean {
private int num;
private String id;
private String passwd;
private String name;
private String register;
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getPasswd() {
return passwd;
}
public void setPasswd(String passwd) {
this.passwd = passwd;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getRegister() {
return register;
}
public void setRegister(String register) {
this.register = register;
}
}
'K-DigitalTraining 강의 > 8. JSP' 카테고리의 다른 글
Comments