sqlsessionTemplate
SQLSessionTemplateはMyBatis-Springの中核です。このクラスは、MyBatisのSQLSessionの管理、MyBatisのSQLメソッドを呼び出し、例外を翻訳する責任があります。 SQLSessionTemplateはスレッドセーフであり、複数のDAOが共有および使用できます。
SQLメソッドを呼び出すと、Mapper getMapper()メソッドから返されるメソッドが含まれています。 SQLSessionTemplateは、使用されるSQLSessionが現在のSpringトランザクションに関連することを保証します。さらに、必要な閉鎖、コミット、ロールバック操作など、セッションのライフサイクルを管理します。
sqlSessionTemplateはsqlsessionを実装します。これは、mybatisのsqlsessionを単純に置き換える必要があることを意味します。
sqlsessionTemplateは通常、springトランザクションに参加できないため、またはスレッドインセクターであるために挿入されるため、defaultsqlsessionのデフォルトのmybatis実装を置き換えるために使用されます。同じアプリケーションの2つのクラス間の変換は、データの一貫性に問題を引き起こす可能性があります。
SQLSessionTemplateオブジェクトは、メソッドを構築するためのパラメーターとしてSQLSessionFactoryを使用して作成できます。
<bean id = "sqlsession"> <constructor-arg index = "0" ref = "sqlsessionfactory"/> </bean>
この豆は、ダオビーンに直接注入できます。次のコードのように、sqlsessionプロパティをBeanに追加する必要があります。
パブリッククラスuserdaoimplはuserdaoを実装します{private sqlsession sqlsession; public void setsqlsession(sqlsession sqlsession){this.sqlsession = sqlsession; } public user getUser(String userId){return(user)sqlsession.selectone( "org.mybatis.spring.sample.mapper.usermapper.getuser"、userid); }}sqlsessionTemplateを次のように注入します。
<bean id = "userdao"> <プロパティ名= "sqlsession" ref = "sqlsession"/> </bean>
sqlsessiondaosupport
SQLSessionDaoSupportは、SQLSessionを提供するために使用される抽象的なサポートクラスです。 getSqlSession()メソッドを呼び出すと、SQLSessionTemplateが取得されます。これは、次のようなSQLメソッドを実行するために使用できます。
パブリッククラスuserdaoimpl拡張sqlsessiondaosupport explments userdao {public user getuser(string userid){return(user)getsqlsession()。 }}通常、MapperFactoryBeanは、追加のコードを必要としないため、このクラスの最初の選択肢です。ただし、DAOで他の非マイバティス作業を行う必要がある場合、または特定のクラスが必要な場合は、このクラスが便利です。 sqlSessionDaoSupportは、設定するためにSQLSessionFactoryまたはSQLSessionTemplateプロパティを必要とします。これらは明示的にセットアップされるか、春までに自動的に組み立てられます。両方が設定されている場合、SQLSessionFactoryは無視されます。
クラスのusermapperimplがsqlsessiondaosupportのサブクラスであると仮定し、春に次のように構成できます。
<bean id = "usermapper"> <プロパティ名= "sqlsessionfactory" ref = "sqlsessionfactory"/> </bean>