Mybatis簡単入門
実際のプロジェクトでは、Hibernate永続層を開発してきましたが、Hibernateの緊密なパッケージ化により、ORMはデータベースの操作を非常に簡単で便利にしていますが、時にはさまざまな関連関係に遭遇し、柔軟ではありません.
MyBatisは、通常のSQLクエリー、ストレージ・プロシージャ、高度なマッピングをサポートする優れた永続層フレームワークです.MyBatisは、ほとんどのJDBCコードとパラメータの手動設定と結果セットの検索を排除します.MyBatisは、簡単なXMLまたは注記を使用して構成および元のマッピングに使用し、インタフェースとJavaのPOJOs(Plain Old Java Objects、通常のJavaオブジェクト)をデータベース内のレコードにマッピングします.
各MyBatisアプリケーションは主にSql SessionFactoryインスタンスを使用しており、1つのSqlSessionFactoryインスタンスはSqlSessionFactoryBuilderで入手できます.SqlSessionFactoryBuilderは、xmlプロファイルまたは事前定義された構成クラスのインスタンスから入手できます.
xmlファイルでSqlSessionFactoryインスタンスを構築するのは簡単です.この構成ではクラスパスリソース(classpath resource)を使用することを推奨しますが、ファイルパスまたはfile://で始まるurlで作成されたインスタンスを含む任意のReaderインスタンスを使用できます.MyBatisには、クラスパスや他の場所からリソースを容易にロードする方法がたくさんある実用的なクラス---resourcesがあります.
まずmybatisの主なプロファイルコンフィギュレーションを見てみましょう.xml
エンティティークラスStudent
テストクラスjava
具体的な操作はコードの中の注釈で、疑問があれば私と議論することができます.
以上は自分で勉強したときのまとめですが、間違いは避けられません.指摘があれば、感謝に堪えません.
主なjar mybatis-3.2.7.jar
MyBatisは、通常のSQLクエリー、ストレージ・プロシージャ、高度なマッピングをサポートする優れた永続層フレームワークです.MyBatisは、ほとんどのJDBCコードとパラメータの手動設定と結果セットの検索を排除します.MyBatisは、簡単なXMLまたは注記を使用して構成および元のマッピングに使用し、インタフェースとJavaのPOJOs(Plain Old Java Objects、通常のJavaオブジェクト)をデータベース内のレコードにマッピングします.
各MyBatisアプリケーションは主にSql SessionFactoryインスタンスを使用しており、1つのSqlSessionFactoryインスタンスはSqlSessionFactoryBuilderで入手できます.SqlSessionFactoryBuilderは、xmlプロファイルまたは事前定義された構成クラスのインスタンスから入手できます.
xmlファイルでSqlSessionFactoryインスタンスを構築するのは簡単です.この構成ではクラスパスリソース(classpath resource)を使用することを推奨しますが、ファイルパスまたはfile://で始まるurlで作成されたインスタンスを含む任意のReaderインスタンスを使用できます.MyBatisには、クラスパスや他の場所からリソースを容易にロードする方法がたくさんある実用的なクラス---resourcesがあります.
まずmybatisの主なプロファイルコンフィギュレーションを見てみましょう.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="UNPOOLED"><!-- -->
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql:///mybatis"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<mappers>
<!-- -->
<mapper resource="orm/Student.xml"/>
</mappers>
</configuration>
持久層フレームワークの開発があったのは見ただけでわかるくだらないことは言わないで直接demoに入るエンティティークラスStudent
/**
*
*
*
*/
public class Student {
private Integer id;//
private String name;//
private Integer age;//
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
エンティティークラスに対応するプロファイルStudent.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="Student">
<!--resultMap id column property -->
<resultMap type="orm.Student" id="Student">
<id column="ID" jdbcType="INTEGER" property="id"/>
<result column="NAME" jdbcType="VARCHAR" property="name"/>
<result column="AGE" jdbcType="INTEGER" property="age"/>
</resultMap>
<!-- resultMap resultMap id<span style="font-family: arial, , sans-serif; text-indent: 2em;"> , --></span>
<select id="selectID" parameterType="int" resultMap="Student">
<!-- parameterType java int _parameter mybatis ONGL-->
select ID,NAME,AGE from Student where ID=#{_parameter}
</select>
<insert id="save" parameterType="orm.Student">
<!-- , #{ } mybatis ONGL-->
insert into Student(NAME,AGE) values(#{name},#{age})
</insert>
<delete id="deleteID" parameterType="int">
delete from Student where ID = #{_parameter}
</delete>
</mapper>
テストクラスjava
package test;
import java.io.IOException;
import java.io.Reader;
import java.util.List;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import orm.Student;
public class Test {
public static void main(String[] args) throws IOException {
//
Reader reader = Resources.getResourceAsReader("Configuration.xml");
// SqlSessionFactory
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
// sqlSessionFactory
SqlSession sqlSession = sqlSessionFactory.openSession();
/**
*
*/
// Student student = new Student();
// student.setAge(12);
// student.setName(" ");
// insert Student.xml namespace . <insert/> id
// sqlSession.insert("Student.save",student);
// sqlSession.commit();//
/**
*
*/
// List<Student> list=sqlSession.selectList("Student.selectID", 1);
// for(Student s:list){
// System.out.println(s.getName()+"====="+s.getAge());
// }
/**
*
*/
// sqlSession.delete("Student.deleteID", 1);
// sqlSession.commit();
}
}
具体的な操作はコードの中の注釈で、疑問があれば私と議論することができます.
以上は自分で勉強したときのまとめですが、間違いは避けられません.指摘があれば、感謝に堪えません.
主なjar mybatis-3.2.7.jar