최근 글
STUDY/programming
JSP 게시판 개발 프로젝트 - 10일차(예약하기 완료)
2020. 9. 16. 23:53
이제부터는 빠른 진행을 위해 일단 시퀀스부터 만들었다
예약번호에 들어갈 시퀀스다
시퀀스 만드는것도 너무 오랜만에 봐서 뭐가 뭔지 다시 상기시킴
Create Sequence 시퀀스이름 Minvalue(최소값) Maxvalue(최대값) Increment by(증가값) start with(시작값)
그리고 예약테이블 VO도 만들어주었다
테이블 컬럼명과 똑같이 매개변수를 만들어준다음에 source->generate getter setter인가 그걸 누르면
자동으로 생성되는데 setter에 원래 this.r_name = r_name 이런식으로 만들어지는데
뭔가 이상했다;;
그래서 검색해보니까 저게 변수명을 대문자로 해주면 저렇게 된다구...
그래서 소문자로 바꾸고 다시하니까 제대로 나왔다. 까다로운 이클립스 같으니..
getParameter로 값도 받아온다음에
VO 클래스 선언하고 생성자를 새로 만들어준다
저기 보이는 create를 누르면 VO에 자동으로 생성된다
그리고 안에 this로 연결해주면 된다
다시 컨트롤러에 와서 값 제대로 받아져왔는지 확인할 sysout도 써주고
그밑에 daoImpl로 갈 함수명과 같이보낼 data를 안에 넣어준다.
DAO에 안 써놔도 저렇게 쓰면 알아서 빨갛게 뜨면서 생성할수 있게 나온다
DAO에는 함수명과 파라미터만 써주고
DAOImpl에서 오버라이딩 한다.
DB를 연결하는 것들은 전역변수로 맨위에 작성해주고
SuDAOImpl안에서 jndl을 설정해준다
커넥션은 각 함수에 들어갈 때마다 하도록 해주고
pstmt안에 쿼리문을 넣어준다.
값이 들어가야 하는곳은 ?로 표시해주고 setString으로 값을 받아와서 순서대로 쿼리문에 넣어주게된다.
executeUpdate();를 하면 insert문이 실행된다
여기까지 하고 Booking페이지를 새로고침 했는데 계속 오류가 떴다
DAOImpl에 Context부분에 unknown source라고 뜨길래 뭔가 싶어서 context.xml도 다시 해봤는데 안돼서 구글링을 했다
javax.naming.NamingException: Could not load resource factory class [Root exception is java.lang.ClassNotFoundException: org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory] 로 검색하니까 같은 증상인 블로그가 나와서
톰캣 8.5버전부터는 Context Resource안에있는 factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"를
dbcp.dbcp2로 바꾸어주어야 한다고 써있었다
그래서 바꾸어주었는데도 안됨.....
결국 처음부터 다시 설정해보려고 다시 검색했다
commons-dbcp, commons-pool, commons-collections 라이브러리는 톰캣 6.0 부터 tomcat-dbcp.jar로 통합되었다고 해서
WebContent - WEB-INF - lib폴더에 있던 commons를 다 지우고, dbcp.jar를 넣어주었다
tomcat-dbcp.jar는 톰캣폴더 안의 lib에 있다
그리고 톰캣서버에 있는 context.xml에도 resource를 넣어주고
그리고 web.xml에다가도 resource-ref를 써준다
이건 톰캣8.0부터는 생략가능하다고, 하위버전에서 하라고 했는데 그냥 혹시몰라서 써줌....
여기까지 하고 이클립스를 껐다 켰더니 제대로 작동했다ㅠㅠ
진짜 모든건 환경설정이 제일 어렵다..........
다된김에 테스트를 돌렸더니......값이 안 받아와진다
몇개는 받아와지고 몇개는 안받아와져서 보니까 안받아와진 부분들은 내가 name설정을 안해줬다...
name은 java로 넘어가는거고 id는 javascript에서 쓰는건데, java로 넘어갈걸 안해줬으니 안넘어가지ㅠ
name을 다 써주고, 다시 돌렸는데 이번엔 또 새로운 오류...
DB커넥션이 안되는 문제인데 구글링해봐도 답이 안나와서
웹상 오류로 다시 검색했더니 설치된 oracle버전과 jdbc의 버전이 맞지 않아서 나오는 오류라고 한다..
설치된 oracle안에 jdbc가 있을거라고 써있길래 폴더를 찾아서 들어가보니
여기 있었네 ojdbc...근데 내가 lib안에 넣어둔거는 인터넷에서 받은 ojdbc14였다. 아마 이것때문에 오류가 난듯
한번에 쭉 연재해주는 블로그들이 별로 없다보니... 여기저기 보면서 한게 문제였던 것 같다ㅠㅠ
검색해보니 ojdbc14는 jdk1.4버전을 지원해주는 파일이고 ojdbc6은 jdk1.6이상을 지원해주는 파일이었다
내 jdk는 1.8이니까 당연히 안맞아서 오류가 날 수밖에 없는 것이었다ㅠ
그래서 WEB-INF - lib에 있던 ojdbc14를 지운다음 ojdbc6을 넣어주고, 빌드패쓰를 새로 해주었다
톰캣을 Restart해주고 다시 테스트하니까
접속 완료되었다!
테이블에도 제대로 잘 들어갔다!!!!
완료되면 confirm.su로 가서 예약내역을 보이도록 해놓았는데 아직 이 jsp를 만들지 않아서 화면은 나오지 않았다...
드디어 한개 완성했다ㅎㅎㅎㅎㅎㅎㅠㅠㅠ
무슨 기억 상기시키는게 이렇게 힘들지..?ㅠ
'STUDY > programming' 카테고리의 다른 글
JSP 게시판 개발 프로젝트 - 12일차(공지사항 글쓰기) (0) | 2020.09.22 |
---|---|
JSP 게시판 개발 프로젝트 - 11일차(예약확인 완료) (0) | 2020.09.21 |
JSP 게시판 개발 프로젝트 - 9일차(DB 테이블생성) (0) | 2020.09.16 |
JSP 게시판 개발 프로젝트 - 8일차 (0) | 2020.09.10 |
JSP 게시판 개발 프로젝트 - 7일차 (0) | 2020.09.10 |
STUDY/programming의 글 더보기