iBATIS 2.3.0 の設定メモ

iBATISそのもの説明

codezineさんの説明がわかりやすいです。
http://codezine.jp/a/article/aid/1289.aspx

なお、ググると下記のthinkITのページが出てくるのですが、
http://www.thinkit.co.jp/free/article/0606/13/2/
Abatorのインストールの必要性が今ひとつわからなかったので、あまり参考にならず。
またサイトでは下記の3つが必要とあるのですが、最新のバージョンではjarファイルは一つになっている模様など、内容的に古いのでその点注意が必要です。

本家リンク

http://ibatis.apache.org/

日本語ドキュメント

はてぶで見つけました。
http://b.hatena.ne.jp/t/ibatis
https://issues.apache.org/jira/secure/attachment/12359316/iBATIS-SqlMaps-2_ja.pdf
ハテブって便利ですね。

準備

WEB-INF/lib/以下に ibatis-2.3.0.xxxをコピー
(実際にはeclipse上でインポートをする)
mysqlそのもの、JDBCネクターは既に導入済み)

操作クラス

package mypackage.sql;

import java.sql.SQLException;
import com.ibatis.common.resources.Resources;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;

public class DatabaseUtil {
	private static String config_Path ="mypackage/sql/sqlMapConfig.xml" ;
//このクラスファイルと同じ場所に置く場合、なお今回は、sqlMap.xmlも同じ場所です。
	private static SqlMapClient sqlMap;
	static {
		try {
			String resource = config_Path;	static {
		try {
			String resource = "mypackage/sql/SqlMapConfig.xml";
			Reader reader = Resources.getResourceAsReader(resource);
			sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	public static SqlMapClient getInstance() {
		return sqlMap;
	}

sqlMapConfig

私の環境の場合

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMapConfig PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN"
    "http://www.ibatis.com/dtd/sql-map-config-2.dtd">

<sqlMapConfig>
	<transactionManager type="JDBC">
        <dataSource type="SIMPLE">
            <property name="JDBC.Driver"
                      value="com.mysql.jdbc.Driver"/>
            <property name="JDBC.ConnectionURL"
                    value="jdbc:mysql://localhost/db_namet?useUnicode=true&amp;characterEncoding=UTF-8"/>
<!--URL,UTF-8の指定などは環境に依存します。-->
           <property name="JDBC.Username" value="db_user_name"/>
            <property name="JDBC.Password" value="db_user_password"/>
        </dataSource>
    </transactionManager>
	
	<sqlMap resource="mypackage/sql/sqlMap.xml" />//このxmlファイルと同じ位置に置く場合
</sqlMapConfig>

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>

	<!--#################### Users #################### -->
	
	<!-- Userの取得 -->
	<select id="selectUser" resultClass="mypackage.sql.User">
			SELECT * FROM users
			WHERE id = #value#
	</select>
</sqlMap>

Beanとなるクラス

public class User {
	
	private int id;
	private String name;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	

}

ついでに、操作クラスを使う側のサンプルコード

public class TestDB {
	public static void main(String[] args) {
		new TestDB().testMethod();
	}
	void testMethod(){
		User user =null;
		try{
			user = (User)DatabaseUtil.getInstance().queryForObject("selectUser",1);		
		}catch (Exception e) {
			e.printStackTrace();
		}
		System.out.println(user.getName());
	}
}


作ったテーブル
mysql> desc users;

Field Type Null Key Default Extra
id int(11) NO PRI
name varchar(225) YES NULL

今後

これで一応動きました。
ですが、今のところlog4jから警告が出ます。

ひとまず以上