반응형
1. 우선 iBATIS 를 다운받습니다.
2. 다운을 풀고, /lib 폴더에 ibatis-2.3.4.726 를 톰캣의 lib폴더나 프로젝트의 web-inf/lib 폴더에 넣습니다.
- /현제프로젝트/WebContent/WEB-INF/lib/
- /톰캣/lib/ (톰캣6버전)
- /톰캣/lib/ (톰캣6버전)
두폴더중 편한곳에다가 jar파일을 저장합니다.
3. example 폴더를 타고 들어가보면 sqlMapConfi.xml 파일이 있습니다. 이파일을 복사해서 붙여넣기 하셔도되고
src폴더에서 새로 xml 파일을 만드셔도 됩니다.
sqlMapClient.xml
<?xml version="1.0" encoding="UTF-8" ?>
<?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>
<!-- Configure a built-in transaction manager. If you're using an
app server, you probably want to use its transaction manager
and a managed datasource -->
<transactionManager type="JDBC" commitRequired="false">
<dataSource type="SIMPLE">
<property name="JDBC.Driver" value="org.hsqldb.jdbcDriver"/>
<property name="JDBC.ConnectionURL" value="jdbc:oracle:thin:@192.168.10.103:1521:db"/>
<property name="JDBC.Username" value="ahm"/>
<property name="JDBC.Password" value="ahm"/>
</dataSource>
</transactionManager>
<!-- List the SQL Map XML files. They can be loaded from the
classpath, as they are here (com.domain.data...) -->
<sqlMap resource="db/Account.xml"/>
<!-- List more here...
<sqlMap resource="com/mydomain/data/Order.xml"/>
<sqlMap resource="com/mydomain/data/Documents.xml"/>
-->
</sqlMapConfig>
빨간부분으로 표시된부분이 제가 수정한 부분입니다. db정보는 propertie로 빼서 관리하는방법도 있으나,
우선은 이렇게 하도록 하겠습니다.
4. 자바빈즈를 생성합니다.
db라는 패키지를 만들고 그 밑에 Acount.java 파일을 생성합니다. 결과를 담아올 빈즈입니다.
Account.java
package db;
public class Account {
private int id;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}
5. XML을 생성합니다.
우리가 사용할 쿼리를 작성하는 XML입니다.
Account.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 namespace="Account">
<!-- Select with no parameters using the result map for Account class. -->
<select id="getAcount" resultClass="db.Acount"> 다음값을 이용하여 쿼리와 맵핑합니다.
select id from ACCOUNT where name=#value#
</select>
</sqlMap>
6. 이제 쿼리를 실행할 JAVA를 작성한다.
SimpleExample.java
package db;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;
import com.ibatis.common.resources.Resources;
import java.io.Reader;
import java.io.IOException;
import java.sql.SQLException;
public class SimpleExample {
private static SqlMapClient sqlMapper;
static {
try {
Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml");
sqlMapper = SqlMapClientBuilder.buildSqlMapClient(reader);
reader.close();
} catch (IOException e) {
// Fail fast.
throw new RuntimeException("Something bad happened while building the SqlMapClient instance." + e, e);
}
}
public static Account getAcount() throws SQLException {
return (Account)sqlMapper.queryForObject("getAcount","ahm");
// 이부분에서 쿼리를 실행한다. queryForObject는 한개의 데이터를 가져올떄 사용하는 메소드이다.
}
public static void main(String[] args){
try {
Account temp = getAcount();
System.out.println(temp.getId());
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
package db;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;
import com.ibatis.common.resources.Resources;
import java.io.Reader;
import java.io.IOException;
import java.sql.SQLException;
public class SimpleExample {
private static SqlMapClient sqlMapper;
static {
try {
Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml");
sqlMapper = SqlMapClientBuilder.buildSqlMapClient(reader);
reader.close();
} catch (IOException e) {
// Fail fast.
throw new RuntimeException("Something bad happened while building the SqlMapClient instance." + e, e);
}
}
public static Account getAcount() throws SQLException {
return (Account)sqlMapper.queryForObject("getAcount","ahm");
// 이부분에서 쿼리를 실행한다. queryForObject는 한개의 데이터를 가져올떄 사용하는 메소드이다.
}
public static void main(String[] args){
try {
Account temp = getAcount();
System.out.println(temp.getId());
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
물론 이 java파일을 실행하기 전에는 DB에 TABLE과 데이터가 준비되어있어야겠다.
현제 이클립스내에 폴더구조이다.
이미지와 같이 , iBATIS 를 설정하는 설정파일인 sqlMapConfig.xml 파일과
실제 SQL이 담겨져 있는 Account.xml 파일
결과를 담아올 객체인 Account.java 파일
이러한 과정을 호출하는 SimpleExample.java 파일
그리고 WEB-INF/lib 에 ibatis-**.jar 파일 등을 해당폴더에 넣고 위에 순서대로 따라한다면
DB에서 요청사항을 무난히 가져올수 있을것이다.
다음엔 좀더 세부적인 설정사항이라던지 자세한 정보를 보여드리겠습니다.
HTTP://BEANS.TISTORY.COM