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://b.hatena.ne.jp/t/ibatis
https://issues.apache.org/jira/secure/attachment/12359316/iBATIS-SqlMaps-2_ja.pdf
ハテブって便利ですね。
操作クラス
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&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 |