반응형

2. Mybatis + Mysql 설정 

프로젝트 안에 pom.xml 을 열어서 수정을 합니다. 


pom.xml 안에 dependencies 안에 아래와 같이 추가를 합니다. 

각각 mybatis , mysql , DB 에 관련이 있습니다. 


(사용되는 버전을 똑같이 할 필요 없으며,

https://mvnrepository.com/

위의 사이트에서 검색하여, 최신 혹은 많이 사용하는 버전을 사용하셔도됩니다.)



(mssql이나 oracle도 크게 다르지 않으며 검색을 통하여 위와같은 방식으로 넣어주면됩니다. 

oracle은 한가지더 추가해야하는데, 필요하신분은 검색하시면 바로 찾으실수 있습니다.)


메이븐 빌드가 완료되면 jar 파일이 설치가 완료 된 것입니다.

자동으로 메이븐 빌드가 되지 않는경우엔 프로젝트 선택 후 마우스 오른쪽 버튼 클릭 - maven - update project... 클릭

(가끔 메이븐 빌드시에 제대로 설치가 안되서 오류가 나는 경우가 있는데, 

이때는 pom.xml 에서 지웠다가 다시 설치하는 방식이 아닌, 메이븐 설치 경로에서 파일을 지워주고 

pom.xml에 다시 적어서 설치를 해야합니다.)



다음으로 root-context.xml 파일에 Mybaits에 관련된 설정을 해주도록 합니다.

(root-context.xml 파일은 src/main/wepapp/WEB-INF/spring/root-context.xml )



dataSource 는 접속하는 데이터베이스에 대한 정보 입니다. 

( mysql이라 3306포트이며 각자 자신의 환경(id,pw 포함 등..)에 맞는 설정으로 변경 )


sqlSessionFactory는 Mybatis에 대한 설정입니다.

(property name이 configLocation은 환경설정에 대한 xml 파일의 위치이며,   xml 파일은 직접 만들어야 합니다.

 property name이 mapperLocations은 실제 쿼리를 작성하는 mapper xml 파일의 위치이며, 폴더와 xml파일은 직접 만들어야 합니다.)

( sqlSessionFactory 의  configLocation 위치에 mapper 설정을 하는 경우도 있으며, 위치는 상관 없다.)


마지막으로 sqlSession 을 보면 위에서 작성한 sqlSessionFactory를, sqlSessionFactory에 dataSource를 가리키는(?) 방식이다.

(정확히 어떠한 방식으로 연결을 하고 있는지 까지는 이해를 하지 못하고 있으므로, 설정하는 방식만을 알고 넘어가겠습니다.)


이제 위에서 경로를 지정한 파일을 실제로 만들도록 합니다.

src/main/resource 경로의 아래에 mapper 라는 폴더를 생성합니다.(실제 mybatis 적용한 쿼리 xml은 나중에 생성)

그리고 위와 같은 src/main/resource 경로에 mybatis-config.xml 을 생성합니다. (파일명이나 위치는 위에서 지정한 대로 생성)



mybatis-config.xml은 위와같은 내용으로 만들며, mapper 의 위치를 이곳에 작성해도 무방하며,

mybatis에 관련 설정을 할때 xml 파일에 작성을 하면 된다.


다음은 이제 실제 스프링 소스를 작성하는 controller, service, dao, mapper 를 작성하도록 하겠습니다.


https://github.com/nahosung/spring_setting )


반응형
반응형

이클립스 spring 프로젝트를 생성하고 mybatis 와 mysql 연결 설정하는 방법 입니다.


스프링 프로젝트를 생성하고 mybatis와 DB를 설정하는 부분은 너무 많은 글이 올라와 있지만, 


글마다 설정하는 부분의 차이도 있고 해서, 직접 해본것을 정리하여 올리는 글 입니다. 


맥북을 사용하여 설정하였으며, 이클립스 mars를 사용하고 있습니다.

( 톰캣 설치 빼고는 윈도우와 다른점은 거의 없었던걸로 기억하며, 

오히려 윈도우가 더 편한걸로 기억되니 윈도우환경도 보시는데 상관없을것 같습니다. )


1.  스프링 프로젝트를 생성 

우선 이클립스에 STS 를 설치합니다

STS 를 설치하는 방법은 상단 메뉴 - Help - Eclipse MarketPlace - sts 를 검색 - Spring Tool Suite (STS) for Eclipse ..을 다운 받습니다. 

( 버전은 달라져 있을수 있으며, 제가 받을때는 3.8.2라고 써있네요. )




설치를 완료 했으면 프로젝트를 생성 합니다 . 

상단 메뉴 - File - new - Project... 을 클릭하고, 스프링 폴더 안에 Spring Legacy Project를 클릭하고 다음 

(윈도우에서는 spring project 로 기억하고있음.)



중앙에서 Spring MVC Project 를 클릭하고 프로젝트 이름을 지정하고 다음, 패키지 명을 지정하고 프로젝트 생성.


메이븐 빌드가 완료된후 

Package Explorer에 프로젝트가 생성된것을 확인 할 수 있습니다.

톰캣으로 실행 후 웹 화면을 띄어보면 첫화면이 나오는 것을 볼 수 있습니다. 

첫번째 스프링 프로젝트 생성을 완료 했습니다.


(여기서는 메이븐 과 톰캣을 사용하고 있습니다. 

추후에 추가 예정이나 메이븐과 톰캣에 대한 설정은 따로 설명하지 않았습니다.

참고 : 맥북에서 톰캣 설치 )


다음은 이제 maven 에 mybatis와 mysql 을 추가하고, mybatis와 mysql 설정을 하도록 하겠습니다.


( https://github.com/nahosung/spring_setting )

반응형
반응형

톰캣으로 스프링 프로젝트를 실행하는데 아래와 같은 오류가 발생했다.

Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]

검색결과 해당 오류에 대한 원인은 다양하게 존재하는 것 같다. 

본인의 경우 스프링 프레임워크 버전을 올리는데 계속해서 발생....

여러가지 해봤으나 해결 방법은 메이븐에서 해당 폴더를 삭제후 메이븐 update로 새로 설치

(pom.xml 에서 삭제를 하는것이 아닌 메이븐 경로의 repository에서 해당 폴더를 삭제후 pom.xml 추가)


반응형
반응형

메이븐에서 dependency 추가를 했는데 위와 같은 오류가 발생

해당 파일을 받아오지 못했다는 에러인데, 이러한 경우 해당 폴더를 삭제하고 

해당 프로젝트 클릭 - 마우스 오른쪽 버튼 - maven - update project... 클릭

(저는 해당 폴더에 파일이 있는데도 오류가 발생, 그 파일만 지우고 했는데도 오류 발생하여 폴더를 삭제하고 실행하니 정상)

반응형
반응형

Project configuration is not up-to-date with pom.xml. Run project configuration update.

maven 프로젝트에서 위와 같은 오류가 발생하는 경우 

해당 프로젝트 선택 - 마우스 오른쪽 버튼 - maven - Update Project Configuration 클릭



반응형
반응형

MySQL

name like concat('%',#{userName},'%')


MsSQL

name like '%'+#{userName}+'%'


Oracle

name like '%'||#{userName}||'%'

반응형
반응형

<dependency>

<groupId>org.slf4j</groupId>

<artifactId>slf4j-api</artifactId>

<version>1.7.12</version>

</dependency>

<dependency>

<groupId>org.slf4j</groupId>

<artifactId>jcl-over-slf4j</artifactId>

<version>1.7.12</version>

</dependency>

<dependency>

<groupId>ch.qos.logback</groupId>

<artifactId>logback-classic</artifactId>

<version>1.1.3</version>

</dependency>


위와 같이 pom.xml에 logback을 사용하려 하는데


ch.qos.logback.classic.pattern.EnsureExceptionHandling.process 와 같은 에러가 발생했다.


검색해보니 logback-classic 의 버전을 1.1.5 를 사용해야한다.


<dependency>

<groupId>ch.qos.logback</groupId>

<artifactId>logback-classic</artifactId>

<version>1.1.5</version>

</dependency>


위와 같이 변경 하여 사용하니 에러 사라짐

반응형
반응형

마이바티스를 사용하여 mysql에 insert를 하는데 한글이 ?표로 표시되는 현상 발생


java까지는 제대로 넘어오지만 그 다음에 문제가 발생

(mysql  collation 은 utf8_general_Ci )


DB로 접속하는 url 뒤에 아래와 같이 ?뒤에를 붙여주면된다.


jdbc:mysql://localhost/데이터베이스명?useUnicode=true&characterEncoding=utf8

반응형

+ Recent posts