欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Type class com.hry.pojo.User is not known to the MapperRegistry.

程序员文章站 2024-03-23 20:00:34
...

关于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。

Type class com.hry.pojo.User is not known to the MapperRegistry.

Type class com.hry.pojo.User is not known to the MapperRegistry.

Type class com.hry.pojo.User is not known to the MapperRegistry.

注意以上几点基本不会有错(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,否则是不会提交到数据库中取的。

 
相关标签: 批量 mybatis