SQLSessionTemplate
SQLSessionTemplate ist der Kern von MyBatis-Spring. Diese Klasse ist verantwortlich für die Verwaltung von MyBatis 'SQLSession, als MyBatis' SQL -Methode und die Übersetzung von Ausnahmen. SQLSessionTemplate ist thread-sicher und kann von mehreren DAOs geteilt und verwendet werden.
Beim Aufrufen von SQL -Methoden enthält es die von der Mapper getMapper () -Methode zurückgegebene Methode. SQLSessionTemplate stellt sicher, dass die verwendete SQLSession mit der aktuellen Federtransaktion zusammenhängt. Darüber hinaus verwaltet es den Lebenszyklus der Sitzung, einschließlich der notwendigen Schließ-, Commit- oder Rollback -Operationen.
SQLSessionTemplate implementiert SQLSession, was bedeutet, dass es notwendig ist, einfach die SQLSession von mybatis zu ersetzen.
SQLSessionTemplate wird normalerweise verwendet, um die Standard-MyBatis-Implementierung von DefaultSQLSession zu ersetzen, da sie nicht an Frühlingstransaktionen teilnehmen oder injiziert werden kann, da es sich um eine Thread-Unsicherheit handelt. Die Transformation zwischen zwei Klassen in derselben Anwendung kann Probleme mit der Datenkonsistenz verursachen.
Das SQLSessionTemplate -Objekt kann mit SQLSessionFactory als Parameter erstellt werden, um die Methode zu konstruieren.
<bean id = "sqlSession"> <constructor-arg index = "0" ref = "sqlSessionFactory"/> </bean>
Diese Bohne kann jetzt direkt in die Dao -Bohne injiziert werden. Sie müssen der Bean eine SQLSession -Eigenschaft hinzufügen, wie der folgende Code:
public class userDaoImpl implementiert 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.Usermaper.getUser", userId); }}Inject SQLSessionTemplate wie folgt injizieren:
<bean id = "userDao"> <Eigenschaft name = "sqlSession" ref = "sqlSession"/> </bean>
SqlSessiondaosupport
SQLSessionDaOSupport ist eine abstrakte Support -Klasse, die Ihnen verwendet wird, um Ihnen SQLSession zu bieten. Aufrufen der methode getQlSession () Sie erhalten eine SQLSessionTemplate, mit der dann die SQL -Methode wie folgt ausgeführt werden kann:
public class userDaoImpl erweitert SQLSessionDaOSupport implementiert UserDao {public user GetUser (String userID) {return (user) getQlSession (). SelectOne ("org.mybatis.spring.sample.mapper.usermapper.getUser", uerid); }} Normalerweise ist MapperFactoryBean die erste Wahl für diese Klasse, da kein zusätzlicher Code erforderlich ist. Wenn Sie jedoch andere Nicht-Mybatis-Arbeiten in DAO oder bestimmte Klassen benötigen, ist diese Klasse nützlich. SQLSessionDaOSupport erfordert eine SQLSessionFactory- oder SQLSessionTemplate -Eigenschaft, um festgelegt zu werden. Diese werden explizit eingerichtet oder automatisch durch Feder zusammengestellt. Wenn beide eingestellt sind, wird die SQLSessionFactory ignoriert.
Angenommen, die Klasse UsMapperImpl ist eine Unterklasse von SQLSessionDaOSupport, sie kann wie folgt im Frühjahr konfiguriert werden:
<bean id = "usermapper"> <Eigenschaft name = "sqlSessionFactory" ref = "sqlSessionFactory"/> </bean