1. iBatis 사이트에서 library 다운.
WEB-INF/lib 폴더에 library 를 추가한다.
2. sql을 관리할 sql 폴더를 만든다.
이클립스에서 맨 왼쪽 아래 아이콘 클릭 하여 Navigator 클릭.
src/com/myhome/info/ 에서 sql 폴더를 하나 만든다.
sql폴더 안에 SqlMap.xml, SqlMapConfig.xml 을 만든다.
SqlMapConfig.xml 안에서 JNDI에 관한 내용 구현.
3. SqlMapConfig.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMapConfig
PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0 //EN"
"http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
<settings
cacheModelsEnabled="true"
enhancementEnabled="true"
lazyLoadingEnabled="true"
maxRequests="32"
maxSessions="10"
maxTransactions="5"
useStatementNamespaces="false"
/>
<!-- JNDI resource type-->
<transactionManager type="JDBC" >
<dataSource type="JNDI">
<property name="DataSource"
value="java:comp/env/jdbc/XE"/>
</dataSource>
</transactionManager>
<sqlMap resource="com/myhome/info/sql/SqlMap.xml" />
</sqlMapConfig>
JNDI를 사용하기 때문에 server.xml에 JNDI 설정을 추가한다.
4. Server의 server.xml
이 부분은 이미 서버 설정하는 글에서 해주었다.
<GlobalNamingResources> 여기 사이에 추가한다.</GlobalNamingResources>
<Resource name="jdbc/XE"
auth="Container"
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.driver.OracleDriver"
factory="org.apache.commons.dbcp.BasicDataSourceFactory"
url="jdbc:oracle:thin:@localhost:1521:XE"
username="user01"
password="user01"
maxActive="20"
maxIdle="10"
maxWait="-1" />
5. Server의 context.xml 가장 하단에 추가한다.
<ResourceLink global="jdbc/XE"
name="jdbc/XE"
type="javax.sql.DataSource"/>
※ JNDI말고 다른 방법을 사용하는 경우.
SqlMapConfig.xml에 다음에 같이 추가한다.
1) simple datasource type 사용
<transactionManager type="JDBC" commitRequired="false">
<dataSource type="SIMPLE">
<property name="JDBC.Driver"
value="oracle.jdbc.driver.OracleDriver"/>
<property name="JDBC.ConnectionURL"
value="jdbc:oracle:thin:@localhost:1521:XE"/>
<property name="JDBC.Username" value="user01"/>
<property name="JDBC.Password" value="user01"/>
</dataSource>
</transactionManager>
2) DBCP datasource type 사용
<properties resource=" info/model/dao/db.properties " />
<transactionManager type="JDBC" >
<dataSource type="SIMPLE">
<property name="JDBC.Driver" value="${driver}"/>
<property name="JDBC.ConnectionURL" value="${url}"/>
<property name="JDBC.Username" value="${username}"/>
<property name="JDBC.Password" value="${password}"/>
<property name="JDBC.DefaultAutoCommit" value="true" />
<property name="Pool.MaximumActiveConnections" value="10"/>
<property name="Pool.MaximumIdleConnections" value="5"/>
<property name="Pool.MaximumCheckoutTime" value="120000"/>
<property name="Pool.TimeToWait" value="500"/>
</dataSource>
</transactionManager>
6. SqlMap.xml 설정.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-2.dtd">
<sqlMap>
<typeAlias alias="Info" type="com.myhome.info.dto.InfoDTO"/> <!-- alias : 별칭을 잡겠다는 의미 -->
<insert id="infoInsert" parameterClass="Info"> <!-- typeAlias한 Info를 넣는다 없으면 com.. 그대로 넣어도 된다. -->
INSERT INTO INFO
(NUM, NAME, SEX, TEL, WDATE)
VALUES
(NUMSEQ.NEXTVAL, #name#, #sex#, #tel#, #wdate#) <!-- ## Info 안에 가지는 프로퍼티 대소문자가 정확하게 맞아야 한다. -->
</insert>
<select id="infoList" resultClass="info">
SELECT
NUM, NAME, SEX, TEL, WDATE
FROM
INFO
Order by
NUM desc
</select>
</sqlMap>
7. SQLManager.java 만들기.
package com.myhome.manager;
import com.ibatis.common.resources.Resources;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;
public abstract class SQLManager {
private SqlMapClient sc = null;
public SQLManager(){
try{
sc = SqlMapClientBuilder.buildSqlMapClient(
Resources.getResourceAsReader(
"com/myhome/info/sql/SqlMapConfig.xml"));
}catch(java.io.IOException ie){
ie.printStackTrace();
}
}
public SqlMapClient getSqlMap(){
return sc;
}
}
8. InfoDAO.java 만들기.
package com.myhome.info.dao;
import com.myhome.info.dto.InfoDTO;
import com.myhome.manager.SQLManager;
import java.sql.SQLException;
import java.util.List;
public class InfoDAO extends SQLManager{
/*등록부분*/
public void register(InfoDTO dto) throws SQLException{
this.getSqlMap().insert("infoInsert", dto);
}
/*회원 리스트 부분*/
public List<InfoDTO> getAllQuery() throws SQLException{
List<InfoDTO> list = null;
list = this.getSqlMap(). queryForList("infoList");
return list;
}
}
'FrameWork > Struts1' 카테고리의 다른 글
Struts1 FileDownload (0) | 2009.08.18 |
---|---|
Struts1 fileUpload (0) | 2009.08.18 |
Struts1의 Action 4 (0) | 2009.08.16 |
Struts1의 Action 3 (0) | 2009.08.16 |
Struts1의 Action 2 (0) | 2009.08.12 |
Struts1의 Action 1 (0) | 2009.07.27 |
Struts1에서 ActionForm 사용하기. (0) | 2009.07.25 |
Struts 1 을 사용하여 간단한 회원가입, 리스트 불러오기. (0) | 2009.07.05 |
Struts1 개발환경 설정. (0) | 2009.07.05 |
Struts(스트럿츠) 란? (0) | 2009.06.27 |