2016년 10월 17일 월요일

MyBatis 쿼리로그 출력 및 정렬 설정

1. pom.xml 에 추가한다.


<dependency>
    <groupId>org.lazyluke</groupId>
    <artifactId>log4jdbc-remix</artifactId>
    <version>0.2.7</version>
</dependency>

2. log4j.xml 을 수정한다.


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration PUBLIC "-//APACHE//DTD LOG4J 1.2//EN" "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
 
    <!-- Appenders -->
    <appender name="console" class="org.apache.log4j.ConsoleAppender">
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d %5p [%c] %m%n" />
        </layout>   
    </appender>
     
    <appender name="console-infolog" class="org.apache.log4j.ConsoleAppender">
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d %5p %m%n" />
        </layout>   
    </appender>
     
    <!-- Application Loggers -->
    <logger name="place" additivity="false">
        <level value="debug" />
        <appender-ref ref="console"/>
    </logger>
     
    <!-- Query Loggers -->
    <logger name="jdbc.sqlonly" additivity="false">  
        <level value="INFO"/>  
        <appender-ref ref="console-infolog"/>  
    </logger>
     
    <logger name="jdbc.resultsettable" additivity="false">  
        <level value="INFO"/>  
        <appender-ref ref="console"/>  
    </logger>  
 
    <!-- Root Logger -->
    <root>
        <priority value="off"/>
        <appender-ref ref="console" />
    </root>
     
</log4j:configuration>

3. context-datasource.xml 을 수정한다.


<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
                        http://www.springframework.org/schema/jdbc  http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd">
    <!-- Connection Pool --> 
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://localhost:포트/데이터베이스명"/>
        <property name="username" value="아이디"/>
        <property name="password" value="비밀번호"/>
    </bean>
    
    <bean id="dataSourceLog4j" class="net.sf.log4jdbc.Log4jdbcProxyDataSource">
        <constructor-arg ref="dataSource" />
        <property name="logFormatter">
            <bean class="net.sf.log4jdbc.tools.Log4JdbcCustomFormatter">
                <property name="loggingType" value="MULTI_LINE" />
                <property name="sqlPrefix" value="SQL         :  "/>
            </bean>
        </property>
    </bean>
    
</beans>

4. console을 확인한다.





Share:

2016년 10월 13일 목요일

스프링(Spring) 개발하기 - (7) mybatis 설정

1. pom.xml 에 mybatis 라이브러리를 추가한다. ( 추가 되어있다면 패스 )


<dependency>
    <groupid>org.mybatis</groupid>
    <artifactid>mybatis</artifactid>
    <version>3.2.2</version>
</dependency>
 
<dependency>
    <groupid>org.mybatis</groupid>
    <artifactid>mybatis-spring</artifactid>
    <version>1.2.0</version>
</dependency>
 
<dependency>
    <groupid>org.springframework</groupid>
    <artifactid>spring-jdbc</artifactid>
    <version>${org.springframework-version}</version>
</dependency>
 
<dependency>
    <groupid>commons-dbcp</groupid>
    <artifactid>commons-dbcp</artifactid>
    <version>1.4</version>
</dependency>

2. mysql 라이브러리 추가 ( 추가 되어있다면 패스 )


<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.31</version>
</dependency>

3. web.xml 설정 확인 ( 추가 되어있다면 패스 )

다음과 같은 코드가 있어야 한다.

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath*:config/spring/context-*.xml</param-value>
</context-param>

4. mysql xml 설정

src/java/resource 폴더 밑에 config > spring 폴더를 만들고  context-datasource.xml 파일을 만들고 코드를 추가한다.



<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
                        http://www.springframework.org/schema/jdbc  http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd">
     
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://주소:포트/데이터베이스명"/>
        <property name="username" value="아이디"/>
        <property name="password" value="비밀번호"/>
    </bean>
</beans>

5. mybatis 와 spring 연동

5-1. config > spring 폴더에  context-mapper.xml 파일을 만들고 코드를 추가한다.




<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
                        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
 
    <bean id="sqlSession" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <property name="mapperLocations" value="classpath:/mapper/**/*_SQL.xml" />
    </bean>
     
    <bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
        <constructor-arg index="0" ref="sqlSession"/>
    </bean>  
</beans>

Share:

2016년 10월 11일 화요일

git 개념 및 자주사용할 명령어 정리

- git 은 스냅샷 기준으로 저장하고 svn 은 파일의 변화를 저장한다.
- merge는 두 브랜치를 병합 rebase는 한 브랜치의 히스토리를 다른 브랜치에 차례대로적용

사용해볼만한 기능

- tag
- stashing ( 브랜치 변경해야 되는데 커밋하기 애매할때 ) : stack 구조

자주사용할 명령어

- 수정했지만 아직 스테이지에 추가하지 않은 파일을 되돌릴때
git checkout --

- 수정했고 스테이지에 추가한 파일을 다시 스테이지에서 제거할때
git reset HEAD

- 수정했고 로컬저장소에 commit한 파일을 되돌릴 때
git fetch origin
git reset --hard origin/master
Share:

스프링(Spring) 개발하기 - (6) Log4j 및 Interceptor 설정

1. Log4j 설정

log4j.xml파일을 수정한다.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration PUBLIC "-//APACHE//DTD LOG4J 1.2//EN" "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
 
    <!-- Appenders -->
    <appender name="console" class="org.apache.log4j.ConsoleAppender">
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d %5p [%c] %m%n" />
        </layout>   
    </appender>
     
    <appender name="console-infolog" class="org.apache.log4j.ConsoleAppender">
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d %5p %m%n" />
        </layout>   
    </appender>
     
    <!-- Application Loggers -->
    <logger name="place" additivity="false">
        <level value="debug" />
        <appender-ref ref="console"/>
    </logger>
     
    <!-- Query Loggers -->
    <logger name="jdbc.sqlonly" additivity="false">  
        <level value="INFO"/>  
        <appender-ref ref="console-infolog"/>  
    </logger>
     
    <logger name="jdbc.resultsettable" additivity="false">  
        <level value="INFO"/>  
        <appender-ref ref="console"/>  
    </logger>  
 
    <!-- Root Logger -->
    <root>
        <priority value="off"/>
        <appender-ref ref="console" />
    </root>
     
</log4j:configuration>

2. Interceptor 설정

2-1. src/main/java/ 패키지 내에 place 패키지와 common 패키지를 생성한다.

2-2. LoggerInterceptor.java 파일을 생성하고 내용을 수정한다.



import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;


public class LoggerInterceptor extends HandlerInterceptorAdapter{
 protected Log log = LogFactory.getLog(LoggerInterceptor.class);
 
 @Override
 public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
   throws Exception {
  if (log.isDebugEnabled()) {
            log.debug("======================================          START         ======================================");
            log.debug(" Request URI \t:  " + request.getRequestURI());
        }
  return super.preHandle(request, response, handler);
 }
 
 @Override
 public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
   ModelAndView modelAndView) throws Exception {
   if (log.isDebugEnabled()) {
             log.debug("======================================           END          ======================================\n");
      }
 }

}

3. 인터셉터와 log4j가 적용 됐는지 확인한다.

3-1. place.sample.controller 패키지를 만들고 testController.java 파일을 생성한다.


3-2. testController.java에 다음의 소스를 붙여넣는다.


@Controller
public class testController {
 Logger log = Logger.getLogger(this.getClass());
    
    @RequestMapping(value="/place/testList.do")
    public ModelAndView openSampleList(Map commandMap) throws Exception{
        ModelAndView mv = new ModelAndView("");
        log.debug("인터셉터 테스트");
         
        return mv;
    }
}

3-3. index.jsp를 수정한다.


3-4. Tomcat Server 실행후 주소창에 localhost:8080/place 를 입력한다.
      View를 지정하지 않았으니 404에러가 보일것이다.
      이클립스 console창만 확인하면 된다. 아래와 같은 그림이 나오면 성공이다.






Share: