봉봉의 개인 블로그

2017-06-26-P 본문

학원에서 배운것들/TEA - P

2017-06-26-P

봉봉이네 2017. 6. 26. 10:14

Maven 프로젝트 만들기

먼저 이클립스를 실행합니다

그후 

프로젝트 만들듯이 만들어줍니다 그후

Maven Project 를 클릭하고 Next  를 눌러줍니다.

그 다음으로는 맨 아래 있는 webapp 를 누르고 Next 를 눌러줍니다

그후 Group ID 와 Artifact Id 부분을 적어줍니다

이부분은 간단하게 설명하면 Group id 는 패키지 명이라고 생각하면되고 Artifact Id 부분은 클래스 파일 명이라고 생각하면 편하다.

Finish 를 눌러서 넘어가게 되면

이런식의 폴더 구조가 생기게 된다

여기서 pom.xml 파일은 web.xml 파일과 비슷하다고 생각하면 된다 여기서 라이브러리를 추가해주고 톰캣도 프로젝트 안에 연결 자체를 할수 있으며 java 파일도 마찬가지이다

pom.xml 파일 안을 확인해보면

이런식으로 되어 있다 여기서 저 드레그 된 부분은 라이브러리를 추가하는 곳이다.

다시 돌아와서 프로젝트를 보면 빨간색이 떠있을것이다.

이부분을 해결하는 방법은

먼저 사진과 같이 프로젝트를 우클릭하여 Properties 를 들어가 줍니다.

그후 위 사진과 같이 이동해줍니다.

그안에서 이제

Dynamic Web Module 클릭한뒤 Runtimes 로 들어가서 서버를 체크해줍니다 그후

java 파일의 버전을 그냥 1.8로 맞춘 다음 Apply 와 ok 를 누르게 되면 된다.

다음으로는 이제 pom.xml 파일안에 라이브러리를 연결할것이다.

(주소를 받아와서 라이브러리를 실행하는 거랑 비슷하다. 즉 실행시 외부에서 라이브러리를 설치하는것이다)

먼저

http://www.mvnrepository.com/ 사이트에 들어갑니다.

그리고 검색창에 mysql 를 치고 

위 사진과 같이 찾아 들어가게 되면 아래에 Maven 등 여러가지가 있다

저기 안에 있는 소스를 복사해서 pom.xml 파일안에 넣어주면 되는것이다.

이런식으로 추가해준다.

그러면 

과 같이 .m2 안에 repository 안에 가보면 mysql 이 추가 되어있는것을 볼수있다.

그다음으로는 이제 mybatis 를 넣어줄것이다.

마찬가지로 http://www.mvnrepository.com/ 안에서 mybatis 를 검색해줍니다.

마찬가지로 Maven 을 복사해서

pom.xml 파일안에 붙여 넣어줍니다.

이런식으로 적고 저장을 눌러주게 되면 오른쪽하단에 다운로드 받는 모습을 볼수있을것이다.

그다음으로 해줘야 할것이 있다.

프로젝트를 우클릭한다음

위 사진과 같이 들어가 줍니다. 그후 

Libraries 로 들어간다음에 JRE System Library 라고 적힌걸 Edit 을 눌러서 위 사진과 같이 체크한다음 finish 를 눌러줍니다. 그후

Targeted Runtimes 로 간다음에 사진과 같이 서버에 체크한다음 Apply 와 ok 를 누르면 된다.

(이러한 과정을 하는 이유는 그냥 만들어만 놓아놨을때는 java 파일을 만들수 있는 공간이 없게 되는데 이런식으로

작업을 해놓게 되면java 파일을 작업할수 있는 작업공간이 생기게 된다 .

그리고 java 파일은 src/main/java 파일안에 작업을 하게되면 됩니다.

지금부터 할 작업은 mybatis 를 사용할것이다.

mybatis에 대한 내용은 따로 관련 지식에 적어 놓을것이다.

먼저 아래와 같이 파일들을 만들어줍니다.

이런식으로 만들어 줍니다 .

여기서 설명을 쪼금만 하고 넘어가자면 java Resources 안에 파일을 만들면 되며 

mybatis-config.xml 파일은 connectionpool 하고 연관 되어 있다고 생각하면 되고 

BoardMapper.xml 파일은 미리 쿼리문을 맵핑해놓은거라고 생각하면 편하다.

먼저 mybatis-config.xml 파일을 채워주도록한다.

http://www.mybatis.org/mybatis-3/ko/getting-started.html 이 사이트로 들어가서

여기부분의 아래 부분을 복사해서 

이런식으로 채워줍니다 설명을 조금하자면 미리 dataSource 부분은 JDBC로 바꿔놓은 부분이다

그리고 11번줄에서는 JDBC 를 사용하겠다고 생각하면 된다 . 6~8번은 Log처리에 관한부분이므로 뒤에서 설명하겠다.

그 뒤로 할일은 Board.java 클래스를 채워 주면 된다 . 여기서 Board.java 클래스는 DTO 의 역활을 한다.

이런식으로 채워주면 된다 자세한 설명은 지금까지 한내용이므로 생략하겠다.

다음으로는 BoardMapper.xml 파일을 채워주면 된다.

이런식으로 만들어 줍니다 이내용은

아까 http://www.mybatis.org/mybatis-3/ko/getting-started.html 이 사이트에서 더 내리다 보면 이부분의 내용을 복사해서 저런 식으로 바꿔주면 된다.

설명을하자면 namespace 를 시정하는 이유는 컴퓨터는 이런 맵핑된 문서를 하나로 관리하게 된다 그렇기 때문에namespace 를 지정하지 않거나 같은 이름으로 적게 될경우 같은 namespace 안에 같은 id 가 중복될수 있게 되므로 그걸 피하기 위해서 namespace 를 지정해주게 되는것이다.

그다음 select부분에 id 를 지정을 해주게 됩니다 그후 resultType 으로는 Board 즉 DTO 타입으로 리턴해주면 된다 parameterType 은 아래에서 설명하겠다

그후 select 안에 쿼리문을 작성해 주게 되면 된다. 이렇게 작성된 커리문에서는 자동으로 set 메서드를 호출하게 되는데 as 뒤에 알리오스를 적어주는 이유는 DTO 안에 set 메서드와 이름을 동일하게 하기 위해서 만들어준 것이다.그리고 14번줄에서 #{boardNo}의 역활을 쿼리문에서 ? 와 같은 역활이라고 생각하면 된다. #{boardNo}이것은 동적인 프리페어스테이트먼트에서 사용하는것이고  ${boardNo} 이건 정적인 스테이트먼트에서 사용하는것이다.

다음으로는 BoardDao.java 클래스를 채워주게 되면 된다.

위 사진과 같이 채워 줍니다

이부분을 족사해서 붙여서 만들어주게 되면 된다 위에 DAO 부분에선 import 와 예외가나는거까지 처리한 모습니다.

즉 설명을 하자면 connentionpool에서 connection 을 가지고 와서 미리 맵핑해놓은 selectboard에서 쿼리문을 작성해서 쿼리문을 날린다고 생각하면 되는것이다.

이렇게 만들어준다음에 이제 실행을 하기 위해서

test.jsp 파일을 만들어줍니다.

위와 같이 채워주고 난 다음에 실행을 하게 되면 된다.

설명을 하자면 여기서 boardNo 는  아까 BoardMapper.xml파일안에 #{boardNo}부분에 들어가는 것이게 되는것이다. 그리고 여기서 20번줄에서 select.Board(boardNo) 를 호출합니다 그러면

이 안에 있는 24번줄의 메서드가 호출됩니다 그러면 여기서는 다시 this.getSqlSessionFactory를 오픈하게 됩니다 그안에는 mybatis-config.xml 파일이 있고 그 파일은 connectionpool을 가지고 있게 되고 그걸 inputStream을 통해서 SqlsessionFactoryBuilder() 안에 담아주게 되고 그 객체를 이제 리턴해줍니다 리턴된 객체는 다시 selectBoard 메서드로 리턴되게 되고 그안에서 리턴받은 객체가 담겨있는 sqlSession 안에 selectOne 을 통해서 아까 BoardMapper.xml파일 안에 있는 board.repository.BoardMapper namespace 안에 id 가 selectboard 를 찾아서 불러올때 매개변수 값으로 들어간 boardNo가 들어가게 됩니다 그래서 #{boardNo} 부분에 들어가서 쿼리 문이 완성되어 실행되고 실행된 쿼리문의 결과물을 DTO 객체인 Board 타입으로 리턴해 selectBoard 로 리턴이되고 selectBoard 에서는 또 호출한곳으로 리턴받은 Board 의 객체를 리턴해주게 됩니다 .

test.jsp에서 객체를 리턴받아 board 안에 담고 그 안에 값들을 이제 화면에 뿌려주게 되는것이다.

그런데 이런 mybatis 를 사용하게 되면 쿼리를 매번 만들지 않고 드라이버 로딩과 db연결을 해야 하는 java 코드 자체는 줄어들지만 줄어드는 만큼 쿼리를 날릴때 어떤 쿼리를 실행하였는지 알수 없기 때문에 log 를 뿌려 주는 라이브러리를 이용해서 log를 뿌려주면 된다 .

여기서 6~8번줄과 같이 셋팅해준다.name 의 값은 

이 사이트에서 저 매퍼 설정부분에 settings 부분을 클릭한뒤 내리다보면

이런부분이 나오게 되는데 이부분에 logImpl 부분을 가지고 온것이다.

그후 설정을 완료 했다면

같은 사이트에서 로깅부분을 찾아간다음에 아래쪽으로 내리면

이부분이 있다 이부분을 만들어주게 되면 된다 근데 이 문서는 log4j.properties 라는 파일을 만들어야 하는것이다 .

그래서 

이런식으로 파일을 만들어 줍니다 (*이건 그냥 file 로해서 만들면 된다 )

그리고 그안을

이런식으로 채워주게 되면 되는것이다. 손볼곳은 4번라인같이 logger 뒤쪽에 우리가 작업한 공간인 repository를 적어주게 되면 되고 그 뒤에 나오는 DEBUG는 LOG의 정도를 나타내는것이다 그래서 실행을 하게 되면

콘솔창에 이와같이 뜨게 되는것이다 여기서 preparing 이라는건 프리페어스테이트먼드 라는소리이다.

*그전에 추가해줘야하는게 라이브러리를 추가해줘야한다 그렇기 때문에

MVN사이트에서 Maven 부분을 복사해서

이안에 dependencies 안에 추가해주게 되면 되는것이다.

'학원에서 배운것들 > TEA - P' 카테고리의 다른 글

2017-07-06-P  (0) 2017.07.06
2017-06-27-P  (0) 2017.06.27
2017-06-23-P  (0) 2017.06.23
2017-06-22-P  (0) 2017.06.22
2017-06-21-P  (0) 2017.06.21
Comments