1. Asuntos
La esencia de las transacciones de primavera es en realidad el soporte de la base de datos para las transacciones. Sin soporte de transacciones de la base de datos, Spring no puede proporcionar funciones de transacción. Al final, todo se llama conexión a la base de datos para completar la apertura de la transacción, cometer y rodar hacia atrás.
2. Módulo
Entonces, para las transacciones de primavera, varios módulos indispensables son fuentes de datos, administradores de transacciones y programación de transacciones.
3. Configuración XML
<!-Transaction Manager-> <bean id = "SpringTransactionManager"> <Property Name = "DataSource" ref = "dataSource" /> </ bean> <!-fuente de datos-> <bean id = "dataSource"> <Property name = "DriverClassName" value = "com.mysql.jdbc.driver" /> <name de propiedad = "url" "url" "url" "valor =" com.mysql.jdbc.driver " /> <nombre de propiedad =" url "url" "url" "url" "Value =" com.mysql.jdbc.driver " /> <nombre de propiedad =" url "url" "url" "url" "Value =" com.mysql.jdbc.driver " /> <nombre de propiedad =" url "url" "url" "url" "Url" valor = "jdbc: mysql: //127.0.0.1: 3306 /test? caracterSencoding = utf8" /> <propiedad name = "username" value = "root" /> <propiedad name = "contraseña" valor = "123456" /> < /bean> <bean id = "sqlSessionFactory"> <name de propiedad = "dataSource" ref Ref refin "refin Especifique el archivo de configuración total SQLMAPCONFIG TOTAL. El entorno personalizado no es efectivo en el contenedor de primavera-> <!-Especifique el archivo de asignación de clase de entidad. Puede especificar el paquete especificado y todos los archivos de configuración en el subpackage al mismo tiempo. Hay un mapeador y configlocation. Cuando necesite especificar un alias para la clase Entity, puede especificar la propiedad de configlocation y luego usar mapper para introducir el archivo de asignación de clase de entidad en el archivo de configuración total de mybatis-> <!-<name de propiedad = "configlocation" valor = "classpath: fwportal/beans/dbconfig/mybatis.xml"/>-> <<motion name = "mApperLocations" "mApperLocations" "mApperLocations" " valor = "classpath: mapper/*. xml"/> </bean> <!-Registre la interfaz Dao como Bean-> <Bean> <Property Name = "BasePackage" Value = "Transaction.dao"/> </lebre>
4. Programación de transacciones
@Test public void testDelete () lanza la excepción {ApplicationContext context = new ClassPathXMLApPlicationContext ("mySQLTRANSACTION.XML"); DataSourCetRansactionManager SpringTransactionManager = (DataSoUrcanSactionManager) context.getBean ("SpringTransactionManager); DefaultTransactionDefinition Def = niewfinition def = niewfinic = niewfinic = niewfinf = niewfin. DefaultTransactionDefinition (); def.setPropagationBehavior (transaccionDefinition.propagation_required); // Abra la transacción transaccionStatus status = springTransactionManager.getTransaction (def); final StudentDao Dao = (StudentDao) context.getBean ("StudentDaO"); Try {Dao.DaLETE (2L); {SpringTransactionManager.Rollback (Status); // Transaction Rollback Throw EX;} SpringTransactionManager.Commit (Status); // Transaction Commit}5. Resumen
Lo anterior es un caso breve de uso de MyBatis y Spring para completar las operaciones de transacción. El nivel de aislamiento de la transacción de la base de datos se puede configurar y el nivel de aislamiento de la base de datos de MySQL está en la dimensión de conexión.
También puede establecer el tiempo de tiempo de espera de la transacción, es decir, la transacción de tiempo de espera se volverá automáticamente.
Lo anterior es todo el contenido de este artículo sobre el análisis del código de transacción de primavera de mybatis, espero que sea útil para todos. Los amigos interesados pueden continuar referiéndose a otros temas relacionados en este sitio. Si hay alguna deficiencia, deje un mensaje para señalarlo. ¡Gracias amigos por su apoyo para este sitio!