-
[MVC 패턴] DB연동back end 2022. 3. 8. 00:11
1. MVC 패턴을 이용해서 로직을 설계 하고 구현할 수 있다.
2. VO, DTO, Entity를 구분할 수 있고 db connection pool을 활용한 was의 db 연동을 설정하고 활용할 수 있다.
그럼 이제 프로젝트 시작!
준비사항:
1/ WebScore Dynamic Web Project 생성하기
2/ servlet, package, class 만들기 (pdf보고)
3/ context.xml 복사해서 webapp/META-INF 에 붙여넣기 -> 엔진 경로 수정하기
4/ webapp/WEB-INF/lib에 mysql-connector.jar 붙여넣기
5/ db 연동하기
데이터베이스와 이클립스 연결하기 (db 붙이기)
Data Source Explorer > Database Connections > New Connection Profile > MySQL
연결할때 필요한 4가지 : database, url, id, pw
MySQL > Properties에서 위의 네 가지 확인
database, url, id, pw는 mysql db 잡았을 때 사용했던 정보 기입한다.
그러고 test connection 한 후 ping succeed!라고 뜨면 성공!
db username, database 바꿔서 접속하기. root로 가는거 말고. shopdb 이름도 바꾸기. db 정리 한 번 하자.
db 잘 연결됐는지 terminal에서 확인한다.
아래 폴더로 이동합니다.
cd /usr/local/mysql/bin/
mysql에 접속을 합니다.
./mysql -u root -p
DB의 비밀번호를 입력하시면 아래처럼 나옵니다. 그럼 DB연결 성공!
WebScore 프로젝트랑 위에서 이클립스와 연결한 DB와 연결.
프로젝트 안에 db폴더를 만들고 그 안에 SQL file 생성한다.
이 SQL file과 DB를 연결한다.
그리고 SQL 파일에 쿼리를 작성한다.
우리는 점수 테이블을 만들고 몇 가지 정보를 넣어준다. 그럼 DB에 정보 저장되어있는 걸 확인할 수 있다.
MVC
WAS랑 DB 연결하기
connection pooling (커넥션 만들기)
apache tomcat API
User Guide > 10번 JDBC DataSources 참고 (Database 연결 방법) > 3. MySQL DBCP 2 Example 클릭
mySQL connector 없으면 Connector/J 클릭하고 다운받아서 JDBC Driver를 lib에 넣는다.
Context.xml 파일에 하단의 Resource 태그 복사해서 붙여넣는다. db username, password, url, name을 db정보에 맞게 수정한다.
<Resource name="jdbc/mydb" auth="Container" type="javax.sql.DataSource" maxTotal="100" maxIdle="30" maxWaitMillis="10000" username="javauser" password="javadude" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/javatest"/>
context.xml에 넣는 이유는 web.xml 실행될때 자동으로 로드하기 위해.
JDBCTemplate 만들기
Connection, Close, Commit, Rollback 만들어놓는다.
Connection
java:/comp/env/jdbc/mydb 이렇게 디렉토리를 찾아서 연결한다.
앞의 java:/comp/env는 변경불가, jdbc/mydb는 위에서 내가 설정한 name으로 입력한다.
isConnection
connection 여부 리턴해주는 메서드
Close
ResultSet, Statement, Connection을 각각 close하는 메서드 작성
Commit, Rollback
connection의 commit, rollback 메서드 생성하기
'back end' 카테고리의 다른 글
[JSP] EL/JSTL (0) 2022.03.09 [MVC] WebScore 프로젝트 (0) 2022.03.09 [JSP] 내장객체 (0) 2022.03.05 [JSP] JSP 엔진, 지시어 (0) 2022.03.04 [Servlet] URL 맵핑, Servlet 객체, 생명주기 (0) 2022.03.03