달력

42024  이전 다음

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

요즘 종종 이러하신분들 계시죠?

   


   

별거 아니다.

그냥 이렇게만 하면된다.

   

내컴퓨터->구성->폴더 및 검색 옵션->보기

   

      

   

   

   

   

   

   

   

   

'IT > 기타' 카테고리의 다른 글

mRemote 원격 데스크탑에서 파일복사  (0) 2010.06.07
Posted by 만들고보자
|

1.WEB-INF/lib 에 위치할 jar파일

Struts2관련

commons-fileupload.jar

commons-io.jar

freemarker.jar

ognl.jar

struts2-core.jar

xwork.jar

Spring관련

Struts2-spring-plugin.jar

Spring.jar

ibatis 및 DBCP, log4j, JSTL 기타등등

commons-dbcp.jar

commons-logging.jar

commons-pool.jar

ibatis.jar

log4j.jar

jstl.jar

standard.jar

sqljdbc.jar

commons-collection.jar

commons-lang.jar

   

   

2.web.xml

스트러츠2 관련

<filter>

<filter-name>struts2</filter-name>

<filter-class>

org.apache.struts2.dispatcher.FilterDispatcher

</filter-class>

</filter>

   

<filter-mapping>

<filter-name>struts2</filter-name>

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

</filter-mapping>

   

스프링 관련

<!--컨텍스트 로더 리스너에서 읽는 applicationContext 설정 파일 위치 지정-->

<context-param>

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

<param-value>

/WEB-INF/applicationContext*.xml

</param-value>

</context-param>

<!--컨텍스트 로더 리스너 지정-->

<listener>

<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

</listener>

   

   

3.applicationContext.xml

   

dtd 선언

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

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

xmlns:aop="http:/www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"

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

http://www.springframework.org/schema/beans/spring-beans-2.0.xsd

http://www.springframework.org/schema/aop

http://www.springframework.org/schema/aop/spring-aop-2.0.xsd

http://www.springframework.org/schema/tx

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

   

jdbc.property 파일 로딩(DB 접속 관련 정보)

<bean id="propertyConfigurer"

class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">

<property name="locations">

<list>

<value>WEB-INF/config/jdbc.properties</value>

</list>

</property>

<property name="fileEncoding">

<value>UTF-8</value>

</property>

</bean>

   

<!--apache의 DBCP Connection Pool 사용-->

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"

destroy-method="close">

<property name="driverClassName" value="${jdbc.driverClassName}"/>

<property name="url" value="${jdbc.url}"/>

<property name="username" value="${jdbc.username}"/>

<property name="password" value="${jdbc.password}"/>

</bean>

<!--iBATIS SQLMaps의 설정 SqlMap setup for iBATIS Database Layer -->

<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">

<property name="configLocation">

<value>WEB-INF/config/sqlmapConfig.xml</value>

</property>

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

</bean>

   

   

<!--Transaction manager for iBATIS Daos

DB연결에 관련된 설정을 DataSource 형태로 지정을 했기 때문에 Transaction 관리를 Spring의 DataSourceTransactionManager가 담당하도록 지정한다.-->

<bean id="txManager"

class="org.springframework.jdbc.datasource.DataSourceTransactionManager">

<property name="dataSource">

<ref local="dataSource"/>

</property>

</bean>

<!-- Enable @Transactional support

Business Logic 클래스(여기서는 *ServiceImpl 클래스)에 어노테이션으로 한줄로 해결 할수 있다는데 확실히 아직 모르겠음. 그외 방법으로 Spring의 AOP, Advice를 이용 -->

<tx:annotation-driven transaction-manager="txManager"/>

   

   

4.sqlmapConfig.xml

<!DOCTYPE sqlMapConfig PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"

"http://ibatis.apache.org/dtd/sql-map-config-2.dtd">

<!--

elecment XML 파일을 이용하여 build되는 다양한 옵션과 SQL Map Client instance를

최적화 하기 위한 설정들 이다.

setting element 와 모든 attributes는 모두 선택옵션이다.

-->

<sqlMapConfig>

<settings cacheModelsEnabled="true" classInfoCacheEnabled="true"

errorTracingEnabled="true" enhancementEnabled="true"

lazyLoadingEnabled="true" maxRequests="512"

maxSessions="128" maxTransactions="32"

useStatementNamespaces="true" />

<!- 해당 SQL문서 위치-à

<sqlMap resource="com/rainmac/dao/ibatis/board-dao.xml"/>

<sqlMap resource="com/rainmac/dao/ibatis/user-dao.xml"/>

<sqlMap resource="com/rainmac/dao/ibatis/attachFile-dao.xml"/>

   

</sqlMapConfig>

   

   

5.struts.xml

<struts>

<constant name="struts.objectFactory" value="spring" />

<package name="default" extends="struts-default" >

<action name="main" method="main" class="mainAction">

<result>/main.jsp</result>

<result name="input">/main.jsp</result>

</action>

</package>

   

<include file="/com/rainmac/action/user.xml" />

<include file="/com/rainmac/action/board.xml"/>

<include file="/com/rainmac/action/attachFile.xml"/>

</struts>

   

   

6.board.xml

   

<package name="board" namespace="/board" extends="struts-default">

<!-- Board -->

<action name="boardList" method="boardList" class="boardAction" >

<result name="success">/view/board/boardList.jsp</result>

<result name="input">/view/board/boardList.jsp</result>

</action>

<action name="boardUpdate" method="boardUpdate" class="boardAction">

<result type="chain" name="success">boardList</result>

</action>

</package>

   

   

7. applicationContext.xml

   

<bean id="boardService" class="com.rainmac.serviceImpl.BoardServiceImpl">

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

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

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

</bean>

<bean id="boardDao" class="com.rainmac.dao.ibatis.BoardDaoiBatis">

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

</bean>

<bean id="boardAction" class="com.rainmac.action.BoardAction" scope="prototype">

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

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

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

</bean>

   

   

8.BoardServiceImpl.java

public class BoardServiceImpl implements BoardService{

private BoardDao boardDao;

private AttachFileService attachFileService;

private ArticleDao articleDao;

public void setArticleDao(ArticleDao articleDao) {

this.articleDao = articleDao;

}

public void setAttachFileService(AttachFileService attachFileService) {

this.attachFileService = attachFileService;

}

   

public void setBoardDao(BoardDao boardDao) {

this.boardDao = boardDao;

}

public List getBoards() {

return boardDao.getBoards();

}

public Object getBoardInfo(HashMap<String, Object> map){

return boardDao.getBoardInfo(map);

}

}

   

   

9.흐름

*Action >> *Service(Interface) >> *ServiceImpl >> *DAO(Interface) >> *DaoiBatis

   

   

Posted by 만들고보자
|

iBatis 트랜잭션

IT/DataBase 2010. 6. 7. 14:56

SqlMapClient sqlMap = getSqlMapClient();

   

try{

sqlMap.startTransaction();

sqlMap.startBatch();

   

//여기에 쿼리호출

sqlMap.executeBatch();

sqlMap.commitTransaction();

   

}catch (Exception e) {

// TODO: handle exception

}finally{

sqlMap.endTransaction();

}

Posted by 만들고보자
|