Механизму Mybatis требуется DataSource
для создания jdbc Connection
, который он может использовать для выполнения запросов.При обычной настройке это DataSource
настраивается как компонент в весеннем контексте.Mappers также являются бинами в контексте Spring, которые используют этот источник данных (косвенно через SqlSession
).
Вы можете настроить DataSource
в mybatis-config.xml
, как описано в документации .Единственная проблема заключается в том, что в случае, если Spring не будет знать об этом DataSource
, он не будет компонентом в контексте Spring.И это проблема, с которой вы сталкиваетесь.
Spring не будет управлять транзакциями для вас в этом случае, вы не сможете внедрять мапперы или SqlSession
в свои bean-компоненты.По сути, вы потеряете все, что дает интеграция mybatis-spring, поэтому нет смысла настраивать mybatis DataSource
в конфигурации mybatis.
Если вы, тем не менее, сделаете это, вам потребуется вручную создать SqlSession
из конфигурации xml и затем вручную зафиксировать / откатить транзакцию с помощью SqlSession.commit
/ SqlSession.rollback
.