JAva webにおけるIBATISの動作原理(1)


この间、SSHとSSIのモデルを再研究する暇がありました.以前、HibernateのJDBCのパッケージについて书いたことがありますが、これはIbatisのものではありません.
HibernateのワンストップORMソリューションに対して、Ibatisは半自動化されたORMの実現方案である.SQL文が分からなくても、開発して使うことができます.しかし、このような場合には少し限界があり、一部の需要にとって満足しにくく、sqlの最適化などに不利であることが多い.このとき,軽量級のIbatisという半自動の実現形態をより多く考慮した.Ibatisの利点を知るには、POJOとsqlのマッピング関係だけを実現し、具体的なsql文は私たちが自分で書く必要があるということです.次に、Ibatisのプロファイルを使用して、sqlに必要なパラメータと、返される結果フィールドを指定したPOJOにマッピングします.ORM効果を達成する.Ibatisのプロファイルとコア関数について説明します.
1.Ibatisのインスタンスプロファイルおよびjdbcの構成:
 <sqlMapConfig>
    	<properties resource="SqlMap.properties"/>   jdbc     
    	<transactionManager type="JDBC">
    		<dataSource type="SIMPLE">
    		 <property value="${driver}" name="JDBC.Driver"/>
    		 <property value="${url}" name="JDBC.ConnectionURL"/>
    		 <property value="${username}" name="JDBC.Username"/>
    		 <property value="${password}" name="JDBC.Password"/>
    		
    		</dataSource>
    	
    	</transactionManager>
        <sqlMap resource="ncut/com/map/Student.xml"/>   POJO sql       
    
    </sqlMapConfig>
2.POJOのベースクラスファイル:
public class Student {
	private int id;
	private String username;
	private String password;
	private int age;
	/**
	 * @return the id
	 */
	public int getId() {
		return id;
	}
	/**
	 * @param id the id to set
	 */
	public void setId(int id) {
		this.id = id;
	}
3.sqlのマッピングファイル:
<sqlMap>
	<typeAlias alias="Student" type="ncut.com.bean.Student"/><!--      bean           -->
	<select id="selectAllStudent" resultClass="Student">
		select * from student1
	</select>
	<!-- parameterClass    parameterMap      
	     resultClass resultMap         -->
	<select id="selectStudentById" parameterClass="int" resultClass="Student">
		select * from student1
		where id=#id#
	</select>
	
	<insert id="addStudent" parameterClass="Student">
		insert student1(id,username,password,age)
		values  (#id#,#username#,#password#,#age#)
	</insert>
</sqlMap>
4.SqlMapClientはIbatisの運用の核心であり、すべてのデータベース操作はSqlMapClientインスタンスによって行われます.
XmlSqlMapClientBuilderはibatisのコンポーネントであり、プロファイルに基づいてSqlMapClientインスタンスを作成するために使用されます.
private static SqlMapClient sqlMapClient;
	static{
		try {
			Reader reader=com.ibatis.common.resources.Resources.getResourceAsReader("SqlMapConfig.xml");
			 
			sqlMapClient=com.ibatis.sqlmap.client.SqlMapClientBuilder.buildSqlMapClient(reader);
			reader.close();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
で直接呼び出すことができます
SqlMapClientでのメソッドは、データベースのCRUDを行います.
その中には多くの細部があり、自分でゆっくり研究する価値がある.