MVC 프로젝트 생성
Build Path 추가
서버에 올림
동작 확인 – 한글깨짐 JSP 상단 추가
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
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 의존성 추가 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 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 DB 접속 정보 입력
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/ssd
username=ssd
password=ssd
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>
서버 실행해보기 – 에러안남 ㅇㅇ
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, '&', '&'), '·', '·') TITLE,]]>
<![CDATA[REPLACE(CONTENT, '·', '·') 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 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 기존 컨트롤러에 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";
}
}
뷰확인 – 잘나옴 ㅇㅇ
설정 파일 경로
'셋팅연습' 카테고리의 다른 글
스프링 셋팅하기 DB 설정 MySQL (0) | 2014.02.19 |
---|