mybatis plus SqlSession问题
最近使用springboot2.2.4、mybatis-plus-boot-starter3.1.1做一个连接mysql数据库的web项目遇到一个SqlSession创建问题,当我直接使用继承mybatis plus的ServiceImpl的方式来定义某张表的service类,例如:
其中DataStoreTableServiceImpl为自定义的Service实现类,ServiceImpl为mybatis plus提供的父类:
@Service
@Slf4j
public class DataStoreTableServiceImpl extends ServiceImpl<DataStoreTableMapper, DataStoreTable> implements DataStoreTableService {
}
然后我在对应的DataStoreController类中调用ServiceImpl提供的查询方法,例如:
@GetMapping("/tables")
@ApiOperation("列表查询表定义")
public ResultResponse<List<DataStoreTable>> listTable(@ApiParam(value = "分组名称", allowableValues = "政务数据,经营数据,风险数据") @RequestParam(required = false) String group) {
QueryWrapper<DataStoreTable> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("is_delete", 0);
if (!StringUtils.isEmpty(group)) {
queryWrapper.eq("group_name", group);
}
return new ResultResponse<List<DataStoreTable>().buildSuccessResult(dataStoreTableService.list(queryWrapper));
}
控制台会输出以下日志,接口查询数据库成功:
Creating a new SqlSession
SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@42c09d4b] was not registered for synchronization because synchronization is not active
JDBC Connection [com.mysql.cj.jdbc.ConnectionImpl@941382d] will not be managed by Spring
我有几个疑问:
1、出现以上日志是否表示我未正确配置mybatis的sqlsession?每次都创建新sqlsession是否会影响系统性能?
2、当我调用ServiceImpl类中使用@Transcational注解的saverOrUpdate、batchInsert等方法时不会出现以上日志而是显示:
JDBC Connection [com.mysql.cj.jdbc.ConnectionImpl@941382d] managed by Spring
这个是否表示第1点提到的问题仅仅是因为调用没使用@Transcational注解的正常现象?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
是的是的是的是的
以前看到过这段日志,当时没有仔细分析过,也来讨论讨论。日志只是说sqlSession 并没有同步,并不能说明sqlSession 配置错误吧,查询是不需要同步的。