欢迎大家关注我的公众号,添加我为好友!
关于mybatis批量插入出现“org.apache.ibatis.binding.BindingException: Type class com.hry.pojo.User is not known to the MapperRegistry.”的问题解决办法。
1.配置spring
<bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg name="sqlSessionFactory" ref="sqlSessionFactory"></constructor-arg>
<constructor-arg name="executorType" value="BATCH"></constructor-arg>
</bean>
2.加入注解
@Autowired
private SqlSessionTemplate sqlSessionTemplate;
大招:
看看文件目录比如我的,一定要注意mapper文件的位置,还有getMapper()方法里面写的class。
注意以上几点基本不会有错(ssm框架肯定是要通的)
测试代码:
// 指定spring配置文件
@ContextConfiguration(locations = {"classpath:spring/applicationContext.xml"})
@RunWith(SpringJUnit4ClassRunner.class)
public class MapperTest {
@Autowired
private UserMapper userMapper;
@Autowired
private SqlSessionTemplate sqlSessionTemplate;
@Test
public void testCurd() {
SqlSession sqlSession = sqlSessionTemplate.getSqlSessionFactory().openSession(ExecutorType.BATCH, false);
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
for (int i = 0; i < 1000; i++) {
String uname = UUID.randomUUID().toString().substring(0, 5).replace("-", "");
mapper.insert(new User(null, uname, "123"));
sqlSession.commit();
}
System.out.println("批量成功");
}
}
使用Junit单元测试一定要记得commit,否则是不会提交到数据库中取的。
欢迎大家关注我的公众号,添加我为好友!