「Java」Mybatis 使ってみた
ちょっと Mybatis を使ってみたので、その時のメモ。
バージョンは、Mybatis 3 系 ( 3.2.4 ) で。
・mybatis - SQL Mapping Framework for Java - Google Project Hosting
https://code.google.com/p/mybatis/
[ 環境情報 ]
Windows 7 SP1
Java SE 7 Update 45
Mybatis 3.2.4
CentOS 5.5
Oracle Database 11.2.0.1.0
今回は以下のドキュメントを参考にしつつ、select と insert 発行する簡単なサンプル作ってみました。
・MyBatis - MyBatis 3 | イントロダクション
http://mybatis.github.io/mybatis-3/ja/index.html
■ MybatisTest.java
package test.mybatis; import java.io.FileInputStream; import java.util.List; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; public class MybatisTest { public static void main(String[] args) throws Exception { FileInputStream fis = new FileInputStream("mybatis\\mybatis-config.xml"); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(fis); SqlSession session = sqlSessionFactory.openSession(true); TestMapper mapper = session.getMapper(TestMapper.class); // id="select" Test t1 = mapper.select(1); System.out.println(t1.getId() + ":" + t1.getName()); // id="insert" Test t2 = new Test(); t2.setId(3); t2.setName("oro"); mapper.insert(t2); // id="selectALL" List<Test> list = mapper.selectALL(); for (Test t : list) { System.out.println(t.getId() + ":" + t.getName()); } session.close(); } }
■ Test.java
package test.mybatis; public class Test { 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; } }
■ TestMapper.java
package test.mybatis; import java.util.List; public interface TestMapper { Test select(int id); List<Test> selectALL(); void insert(Test t); }
■ mybatis-config.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="oracle.jdbc.driver.OracleDriver"/> <property name="url" value="jdbc:oracle:thin:@***.***.***.***:1521:orcl"/> <property name="username" value="test"/> <property name="password" value="test"/> </dataSource> </environment> </environments> <mappers> <mapper resource="test/mybatis/TestMapper.xml"/> </mappers> </configuration>
■ TestMapper.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="test.mybatis.TestMapper"> <select id="select" resultType="test.mybatis.Test"> select * from test where id = #{id} </select> <select id="selectALL" resultType="test.mybatis.Test"> select * from test </select> <insert id="insert" parameterType="test.mybatis.Test"> insert into test values (#{id}, #{name}) </insert> </mapper>
■ テーブル作成 SQL
create table test (id int, name varchar2(50));
ひとまず上記で動きました。
使い込むにはもっと「ドキュメントの読み込み」、「動作確認」が必要ですが、さわりとしてはええかなと思ってます。
※ openSession() 引数で自前のコネクション使えたり、Mapper の XML はアノテーションで書けたりと、いろいろできそうな感じです。
以上です。