mybatisplus 多数据源 batchInsertInto指定invalid bound statement (not found)
时间: 2023-12-06 14:38:03 浏览: 112
根据提供的引用内容,出现"mybatisplus Invalid bound statement (not found)"的问题可能不仅仅是xml配置问题,还可能是使用了错误的SqlSessionFactory。正确的使用方式是使用mybatisplus的MybatisSqlSessionFactoryBean,而不是mybatis的SqlSessionFactory。
针对"mybatisplus 多数据源 batchInsertInto指定invalid bound statement (not found)"的问题,可以按照以下步骤进行排查:
1. 确认是否使用了正确的SqlSessionFactory,即MybatisSqlSessionFactoryBean。
2. 确认是否在mapper.xml中正确定义了对应的SQL语句,且namespace与mapper接口的全限定名一致。
3. 确认是否在mapper接口中定义了对应的方法,并且方法名与mapper.xml中定义的id一致。
4. 确认是否在mapper接口中使用了@Mapper注解或在启动类中使用了@MapperScan注解扫描了mapper接口。
5. 确认是否在application.yml或application.properties中正确配置了数据源信息,并且在使用时指定了正确的数据源。
6. 确认是否在使用时指定了正确的mapper接口。
以下是一个使用mybatisplus实现多数据源批量插入的示例代码:
```java
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Autowired
private User2Mapper user2Mapper;
@Override
@Transactional(rollbackFor = Exception.class)
public void batchInsert(List<User> userList, List<User2> user2List) {
// 使用userMapper插入userList
userMapper.batchInsert(userList);
// 使用user2Mapper插入user2List
user2Mapper.batchInsert(user2List);
}
}
```
阅读全文