본문 바로가기

셋팅연습

STS Spring 설정하기 MVC 프로젝트 생성 MyBatis 적용하기

MVC 프로젝트 생성

 



 

Build Path 추가

 



 

 

서버에 올림

 


동작 확인 한글깨짐  JSP 상단 추가

 


<%@ page language="java" contentType="text/html; charset=UTF-8"   pageEncoding="UTF-8"%>

 



 

Web.xml 변경



web.xml



 필터 추가

 

<filter>

        <filter-name>encodingFilter</filter-name>

        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>

        <init-param>

            <param-name>encoding</param-name>

            <param-value>UTF-8</param-value>

        </init-param>

    </filter>

    <filter-mapping>

        <filter-name>encodingFilter</filter-name>

        <url-pattern>/*</url-pattern>

    </filter-mapping>

 

 

설정 파일 위치변경  src/main/resources

 

/WEB-INF/spring/root-context.xml

/WEB-INF/spring/appServlet/servlet-context.xml

 

<param-name>contextConfigLocation</param-name>

<param-value>classpath:/spring/root-context.xml</param-value>

 

 

<param-name>contextConfigLocation</param-name>

<param-value>classpath:/spring/servlet-context.xml</param-value>

 

 

 

pom.xml

Pom.xml 의존성 추가 DB 컨넥터, mybatis

 

<dependency>

                   <groupId>mysql</groupId>

                   <artifactId>mysql-connector-java</artifactId>

                   <version>5.1.29</version>

               </dependency>

 

         <!-- 없으면 org.springframework.web.servlet.PageNotFound - No mapping found for HTTP request with URI  -->

        <dependency>

            <groupId>commons-beanutils</groupId>

            <artifactId>commons-beanutils</artifactId>

            <version>1.8.0</version>

        </dependency>      

        

        <dependency>

            <groupId>commons-dbcp</groupId>

            <artifactId>commons-dbcp</artifactId>

            <version>1.2.2</version>

        </dependency>

        

        <dependency>

            <groupId>org.mybatis</groupId>

            <artifactId>mybatis</artifactId>

            <version>3.1.0</version>

        </dependency>

        <dependency>

            <groupId>org.mybatis</groupId>

            <artifactId>mybatis-spring</artifactId>

            <version>1.1.0</version>

        </dependency>

        <dependency><!-- sqlSessionFactory 만들때 없으면 에러남 -->

            <groupId>cglib</groupId>

            <artifactId>cglib-nodep</artifactId>

            <version>2.2</version>

        </dependency>

 

 



root-context.xml


root-context.xml  DB 설정 정보 입력

 

<beans xmlns="http://www.springframework.org/schema/beans"

        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:util="http://www.springframework.org/schema/util"

        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd

http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd ">

       

        <!-- contextProperties사용 선언부에서 선언해야 사용가능한듯 -->

        <util:properties id="contextProperties" location="classpath:context.properties"/>

       

    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">

        <property name="driverClassName" value="#{contextProperties.driver}"/>

        <property name="url" value="#{contextProperties.url}"/>

        <property name="username" value="#{contextProperties.username}"/>

        <property name="password" value="#{contextProperties.password}"/>

    </bean>           

 

        <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">

               <constructor-arg index="0" ref="sqlSessionFactory" />

        </bean>

 

        <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">

               <property name="dataSource" ref="dataSource" />

               <property name="configLocation" value="classpath:mybatis/mybatis-config.xml" />

               <property name="mapperLocations" value="classpath:mybatis/sqlmaps/*.xml" />

        </bean>

</beans>

 


context.properties

context.properties DB 접속 정보 입력

 

driver=com.mysql.jdbc.Driver

url=jdbc:mysql://localhost:3306/ssd

username=ssd

password=ssd

 


mybatis-config.xml

mybatis-config.xml 설정 셋팅 http://mybatis.github.io/mybatis-3/ko/configuration.html 에서 참고하기

 

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-config.dtd">

 

<configuration>

 

        <settings>

               <setting name="cacheEnabled" value="true"/>

               <setting name="lazyLoadingEnabled" value="true"/>

               <setting name="multipleResultSetsEnabled" value="true"/>

               <setting name="useColumnLabel" value="true"/>

               <setting name="useGeneratedKeys" value="false"/>

               <setting name="autoMappingBehavior" value="PARTIAL"/>

               <setting name="defaultExecutorType" value="SIMPLE"/>

               <setting name="safeRowBoundsEnabled" value="false"/>

               <setting name="mapUnderscoreToCamelCase" value="false"/>

               <setting name="localCacheScope" value="SESSION"/>

               <setting name="jdbcTypeForNull" value="OTHER"/>

               <setting name="lazyLoadTriggerMethods" value="equals,clone,hashCode,toString"/>

        </settings>

       

</configuration>

 

 

서버 실행해보기 에러안남 ㅇㅇ



test.xml

Sqlmap 파일

 

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

 

<mapper namespace="test">

 

        <select id="getList" parameterType="Map" resultType="HashMap" >

               SELECT                

                       CONTENT_SEQ,

                       MENU_ID,

                       CATEGORY,

                       <![CDATA[REPLACE(REPLACE(TITLE, '&', '&amp;'), '·', '&middot;') TITLE,]]>

                       <![CDATA[REPLACE(CONTENT, '·', '&middot;') CONTENT,]]>

                       CONVENTION_DATE,

                       DATE_FORMAT(CONVERT(CONVENTION_DATE, DATE), '%d') CONVENTION_DAY,

         (SELECT FILE_NAME FROM BBS_FILE WHERE CONTENT_SEQ = CONTENT_SEQ AND FILE_SEQ > 0 ORDER BY FILE_SEQ LIMIT 1) FILE,

         (SELECT ALT FROM BBS_FILE WHERE CONTENT_SEQ = CONTENT_SEQ AND FILE_SEQ > 0 ORDER BY FILE_SEQ LIMIT 1) ALT,

                       REG_USER,

                       REG_NM,  

                       DATE_FORMAT(REG_DATE, '%Y-%m-%d') REG_DATE,

                       UPD_USER,

                       UPD_DATE,

                       CONTENT_TYPE,

                       COALESCE(READ_CNT, 0) READ_CNT,

                       URL

                       FROM BBS_CONTENT

               ORDER BY CONTENT_SEQ DESC

               limit ${startPage}, ${pageRow}

        </select>

</mapper>



 


TestServices.java


TestServices DB 사용 클래스 만들기

 

@Service

public class TestServices {

 

        @Autowired

        private SqlSession sqlSession;

       

        public List<HashMap<String,String>> getList(Map<String,String> paramMap) throws Exception{

              

               return sqlSession.selectList("test.getList", paramMap);

        }

       

}

 


HomeController.java

HomeController 기존 컨트롤러에 DB 사용부분 추가

 

@Controller

public class HomeController {

       

        private static final Logger logger = LoggerFactory.getLogger(HomeController.class);

       

        /**

         * Simply selects the home view to render by returning its name.

         */

       

        @Inject

       private TestServices testServices;

       

       

        @RequestMapping(value = "/", method = RequestMethod.GET)

        public String home(@RequestParam Map<String, String> paramMap,

Locale locale, Model model) throws Exception {

               logger.info("Welcome home! The client locale is {}.", locale);

              

               Date date = new Date();

               DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, locale);

              

               String formattedDate = dateFormat.format(date);

              

               model.addAttribute("serverTime", formattedDate );

              

               paramMap.put("pageNo","1");

             paramMap.put("pageRow", "10");

 paramMap.put("startPage",

String.valueOf((Integer.parseInt(paramMap.get("pageNo"))-1)*Integer.parseInt(paramMap.get("pageRow"))));

            

 model.addAttribute("testdb", testServices.getList(paramMap));

              

               return "home";

        }

       

}

 

 

뷰확인 잘나옴 ㅇㅇ

home.jsp




설정 파일 경로 




 

'셋팅연습' 카테고리의 다른 글

스프링 셋팅하기 DB 설정 MySQL  (0) 2014.02.19