idea中使用springboot+mybatis无法找到mapper接口!!!

weixin_35909567 2019-03-09 03:40:38
项目结构:

xml:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper xmlns="http://mybatis.org/schema/mybatis-mapper">
<resultMap id="baseMap" type="com.boom.demo.po.User">
<id column="name" property="name" jdbcType="varchar"></id>
<id column="gender" property="gender" jdbcType="varchar"></id>
</resultMap>

<select id="selectAllUser" resultMap="baseMap">
select* from user
</select>
</mapper>

dao层:
package com.boom.demo.dao;
import com.boom.demo.po.User;
import java.util.List;

public interface UserMapper {
List<User> selectAllUser();
}

Service层:
import com.boom.demo.dao.UserMapper;
import com.boom.demo.po.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;

@Service("userService")
public class UserServiceImpl implements UserService {

@Autowired
UserMapper userMapper;

@Override
public List<User> getAllUser() {
return userMapper.selectAllUser();
}
}

yml配置:

然后就一直报“Invalid bound statement (not found): com.boom.demo.dao.UserMapper.selectAllUser”!!!
求助!!!
...全文
718 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
m0_37110275 2019-04-29
  • 打赏
  • 举报
回复
idea的机制会一直有报错,显示没有实现类,其实是没事的,先试试能不能用
softFE 2019-04-28
  • 打赏
  • 举报
回复
6楼老铁 说的应该是正确答案. 你都没写 namespace .
搬砖的梦先生 2019-04-26
  • 打赏
  • 举报
回复
引用 楼主 weixin_35909567 的回复:
项目结构: xml:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper xmlns="http://mybatis.org/schema/mybatis-mapper">
    <resultMap id="baseMap" type="com.boom.demo.po.User">
        <id column="name" property="name" jdbcType="varchar"></id>
        <id column="gender" property="gender" jdbcType="varchar"></id>
    </resultMap>

   <select id="selectAllUser" resultMap="baseMap">
       select* from user
   </select>
</mapper>
dao层:
package com.boom.demo.dao;
import com.boom.demo.po.User;
import java.util.List;

public interface UserMapper {
    List<User> selectAllUser();
}
Service层:
import com.boom.demo.dao.UserMapper;
import com.boom.demo.po.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;

@Service("userService")
public class UserServiceImpl implements UserService {

    @Autowired
    UserMapper userMapper;

    @Override
    public List<User> getAllUser() {
        return userMapper.selectAllUser();
    }
}
yml配置: 然后就一直报“Invalid bound statement (not found): com.boom.demo.dao.UserMapper.selectAllUser”!!! 求助!!!
启动类加上注解扫描 @MapperScan("com.boom.demo.dao")
天禄永随 2019-04-26
  • 打赏
  • 举报
回复
UserMapper.xml没有指定命名空间。
Dkodak 2019-03-09
  • 打赏
  • 举报
回复 1
在启动类加上@MapperScan (basePackages = {"com.*.mapper"}) 启动的时候扫描mapper类
kwx110 2021-06-18
  • 举报
回复
@Dkodak 21年的 初学者 19年的大佬
daniel_kaka 2019-03-09
  • 打赏
  • 举报
回复

# mybatis配置
mybatis: 
  config-location: classpath:bean/mybatis/mybatis_config.xml
  mapper-locations: classpath:/bean/mybatis/mapping/*.xml
  type-aliases-package: com.beyonds.phoenix.shine.domain.dao.po
  type-dao-package: com.beyonds.phoenix.shine.domain.dao
  executorType: REUSE
你添加一项type-dao-package配置即可。
273971939 2019-03-09
  • 打赏
  • 举报
回复
DemoApplication上添加注解@MapperScan(),或者在每个mapper接口上添加@Mapper
weixin_35909567 2019-03-09
  • 打赏
  • 举报
回复
编译文件也有。。。
  • 打赏
  • 举报
回复
可以在maven中配置资源文件的路径,这样就能找到了,最有可能的原因就是程序没有把xml文件编译进去,你在target下的classes文件夹中找找是不是缺少了对应的xml,如果是那位提供的方案就能解决这个问题

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧