SqlsessionTemplate
SQLSessionTemplate es el núcleo de MyBatis-Spring. Esta clase es responsable de administrar la SQLSession de MyBatis, llamar al método SQL de MyBatis y traducir excepciones. SQLSessionTemplate es ausente y puede ser compartido y utilizado por múltiples DAO.
Al llamar a los métodos SQL, contiene el método devuelto del método mapper getMapper (). SQLSessionTemplate asegurará que la SQLSession utilizada esté relacionada con la transacción de resorte actual. Además, administra el ciclo de vida de la sesión, incluidas las operaciones necesarias de cierre, confirmación o reversión.
SQLSessionTemplate implementa sqlsession, lo que significa que es necesario simplemente reemplazar la sqlsession de mybatis.
SQLSessionTemplate generalmente se usa para reemplazar la implementación predeterminada de MyBatis de DefaultSQLSession porque no puede participar en transacciones de primavera o inyectado porque es una insecuación de subprocesos. La transformación entre dos clases en la misma aplicación puede causar problemas con la consistencia de los datos.
El objeto SQLSessionTemplate se puede crear utilizando SQLSessionFactory como parámetro para construir el método.
<bean id = "sqlsession"> <constructor-arg index = "0" ref = "sqlsessionFactory"/> </le bean>
Este frijol ahora se puede inyectar directamente en el DAO Bean. Debe agregar una propiedad SQLSession al bean, como el siguiente código:
La clase pública userdaoImpl implementa 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); }}Inyectar sqlsessionTemplate de la siguiente manera:
<bean id = "userdao"> <propiedad name = "sqlsession" ref = "sqlsession"/> </bean>
Sqlsessiondaosupport
SQLSessionDaosupport es una clase de soporte abstracto utilizada para proporcionarle SQLSession. Llamando al método getsqlsession () obtendrá un sqlsessionTemplate, que luego se puede usar para ejecutar el método SQL, así:
La clase pública userDaoImpl extiende sqlsessiondaosupport implementa userdao {public user getUser (string userId) {return (user) getSqlSession (). SelectOne ("org.mybatis.spring.sample.mapper.usermapper.getUser", userId); }} Por lo general, MapperFactoryBean es la primera opción para esta clase porque no requiere código adicional. Sin embargo, si necesita hacer otro trabajo no mybatis en DAO o necesita clases específicas, esta clase es útil. SQLSessionDaosupport requiere una propiedad SQLSessionFactory o SQLSessionTemplate para establecer. Estos se configuran explícitamente o se ensamblan automáticamente por Spring. Si ambos están establecidos, entonces se ignora el SQLSessionFactory.
Suponga que la clase USERMAPPERIMPL es una subclase de SQLSessionDaosupport, se puede configurar de la siguiente manera en la primavera:
<bean id = "usermapper"> <propiedad name = "sqlsessionFactory" ref = "sqlsessionFactory"/> </le bean>