SqlSessionTemplate
SQLSessionTemplate est le cœur de MyBatis-Spring. Cette classe est responsable de la gestion de SQLSession de MyBatis, d'appeler la méthode SQL de MyBatis et de traduire des exceptions. SQLSessionTemplate est en filetage et peut être partagé et utilisé par plusieurs DAO.
Lors de l'appel des méthodes SQL, il contient la méthode renvoyée de la méthode Mapper GetMapper (). SQLSessionTemplate s'assurera que la SQLSession utilisée est liée à la transaction Spring actuelle. De plus, il gère le cycle de vie de la session, y compris les opérations de clôture, de validation ou de recul nécessaires.
SQLSessionTemplate implémente SQLSession, ce qui signifie qu'il est nécessaire de simplement remplacer la SQLSession de MyBatis.
SQLSessionTemplate est généralement utilisé pour remplacer l'implémentation MyBatis par défaut de DefaultSqlSession car il ne peut pas participer à des transactions Spring ou injecté car il est insérété. La transformation entre deux classes dans la même application peut entraîner des problèmes de cohérence des données.
L'objet SQLSessionTemplate peut être créé à l'aide de SQLSessionFactory comme paramètre pour construire la méthode.
<bean id = "SqlSession"> <Constructor-Arg index = "0" ref = "SqlSessionFactory" /> </bant>
Ce haricot peut maintenant être injecté directement dans le haricot Dao. Vous devez ajouter une propriété SQLSession au Bean, comme le code suivant:
classe publique UserDaOIMPl implémente UserDao {private sqlSession sqlSession; public void setsqlSession (sqlSession sqlSession) {this.sqlSession = sqlSession; } public utilisateur getUser (String userId) {return (utilisateur) sqlSession.Selectone ("org.mybatis.spring.sample.mapper.usermapper.getuser", userId); }}Injecter SQLSessionTemplate comme suit:
<bean id = "userdao"> <propriété name = "sqlSession" ref = "sqlSession" /> </ank>
Sqlsessiondaosupport
SQLSessionDaOSupport est une classe de support abstraite utilisée pour vous fournir SQLSession. Appelant la méthode getSQLSession () Vous obtiendrez un SQLSessionTemplate, qui peut ensuite être utilisé pour exécuter la méthode SQL, comme celle-ci:
La classe publique UserDaOIMPL étend SQLSessionDaOSupport implémente userDao {public User GetUser (String userId) {return (user) getSQLSession (). SelectOne ("org.mybatis.spring.sample.mapper.usermapper.geturser", userrid); }} Habituellement, MapperFactoryBean est le premier choix pour cette classe car il ne nécessite pas de code supplémentaire. Cependant, si vous devez effectuer d'autres travaux non-mybatis dans DAO ou avoir besoin de classes spécifiques, cette classe est utile. SQLSessionDaOSupport nécessite une propriété SQLSessionFactory ou SQLSessionTemplate à définir. Ceux-ci sont explicitement configurés ou automatiquement assemblés par le printemps. Si les deux sont définis, le SQLSessionFactory est ignoré.
Supposons que la classe UserMapperImpll est une sous-classe de SQLSessionDaosupport, elle peut être configurée comme suit au printemps:
<bean id = "userMapper"> <propriété name = "SqlSessionFactory" ref = "SqlSessionFactory" /> </anEd>