Mybatis, кажется, создает и закрывает SqlSession
для каждого запроса к базе данных (например, если в одном запросе http мы выполняем два запроса к базе данных, то создаются и уничтожаются два сеанса). Это нормально (приведет ли это к низкой производительности) и как мне это исправить?
Подробности:
Логи -
Creating a new SqlSession
SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@4b7e4174] was not registered for synchronization because synchronization is not active
JDBC Connection [HikariProxyConnection@163878081 wrapping com.mysql.cj.jdbc.ConnectionImpl@162e1fc3] will not be managed by Spring
Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@4b7e4174]
Creating a new SqlSession
SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@5d9714ab] was not registered for synchronization because synchronization is not active
JDBC Connection [HikariProxyConnection@91618474 wrapping com.mysql.cj.jdbc.ConnectionImpl@162e1fc3] will not be managed by Spring
Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@5d9714ab]
Коды -
Article a1 = dao.selectById(123);
Article a2 = dao.selectById(456);
где Дао - это обычный Mybatis Mapper
. (Точнее, это mybatis plus BaseMapper
)
Спасибо за любые идеи!
PS Мои наивные мысли -
официальный do c говорит -
Если вы используете веб-фреймворк любого рода, ... после получения HTTP-запроса вы можете открыть SqlSession, затем, вернув ответ, вы можете закрыть его ...
Таким образом, моя ситуация ненормальная. Поскольку в одном http-запросе с двумя запросами к базе данных я вижу две SqlSessions вместо одной.