mybatis+spring-boot出现Invalid bound statement (not found):问题

JerFer 2017-04-29 08:51:58
初学mybatis+spring-boot整合,报错如下:
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.nx.zhjf.mapper.UserMapper.findUserByUsername

我的代码结构如下:

application.ym配置文件如下:

spring:
datasource:
driver-class-name:org.postgresql.Driver
url:jdbc:postgresql://localhost:5432/nx
username:postgres
password:postgres
# schema:classpath:import.sql
tomcat:
max-active:30
max-wait:1000
max-idle:20
remove-abandoned-timeout:180
mybatis:
config-location:classpath:mybatis-config.xml



UserMapper.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 namespace="com.nx.zhjf.mapper.UserMapper">
<insert id="save" parameterType="com.nx.zhjf.model.User">
insert into t_user(username,age) values(#{userName,jdbcType=VARCHAR},#{age,jdbcType=NUMERIC})
</insert>

<select id="selectById" parameterType="java.lang.Integer" resultType="com.nx.zhjf.model.User">
select * from t_user where id = #{id,jdbcType=NUMERIC}
</select>

<update id="updateById" parameterType="com.nx.zhjf.model.User">
update t_user set
username = #{userName,jdbcType=VARCHAR} ,
age = #{age,jdbcType=NUMERIC}
where id = #{id,jdbcType=NUMERIC}
</update>

<delete id="deleteById" parameterType="java.lang.Integer">
delete from t_user where id = #{id,jdbcType=NUMERIC}
</delete>

<select id="findUserByUsername" parameterType="java.lang.String" resultMap="user">
<bind name="pattern" value="'%' + username + '%'" />
select * from t_user where username LIKE #{pattern}
</select>

<select id="count" resultType="java.lang.Integer">
SELECT COUNT(*) FROM t_user
</select>

<select id="queryAll" resultMap="user">
select * from t_user
</select>



</mapper>

UserMapper.java如下:

@Mapper
public interface UserMapper {
int save(User user);

User selectById(Integer id);

int updateById(User user);

int deleteById(Integer id);

List<User> findUserByUsername(String username);

int count();

List<User> queryAll();
}


请大神帮我看下,哪里出问题了。



...全文
14394 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
木林森淼 2018-01-08
  • 打赏
  • 举报
回复
问题解决了没有,可以试试在application.properties中添加:mybatis.mapper-locations=classpath*:/mapper/*Mapper.xml
袭人之虹 2017-12-21
  • 打赏
  • 举报
回复
10发现了问题
Fate- 2017-12-21
  • 打赏
  • 举报
回复
<bind name="pattern" value="'% + username + %'" /> like ‘ % xxx ’ 试试
Sekilly 2017-12-19
  • 打赏
  • 举报
回复 1
在pom把这个加进去试试,可能是编译的时候没编译进去 <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> </resource> </resources>
jeffsc 2017-11-28
  • 打赏
  • 举报
回复
然后结论是什么呢
minemine0418 2017-07-19
  • 打赏
  • 举报
回复
<select id="findUserByUsername" parameterType="java.lang.String" resultMap="user"> resultMap="user" 没有id为user的resultMap????
Pink_牛奶 2017-07-19
  • 打赏
  • 举报
回复
楼主,我也遇到这问题了,求解决办法啊,急!!
鸟与树 2017-06-29
  • 打赏
  • 举报
回复
lz,解决了吗。我遇到和你一样的问题。各种不好使啊
JerFer 2017-04-29
  • 打赏
  • 举报
回复
引用 6 楼 pany1209 的回复:
[quote=引用 3 楼 polixiaohai 的回复:] 你说的把/换成.我试过了,还是不行。 我的Service代码如下:
@Service
public class CityServiceImpl {

    @Autowired
    private CityMapper cityMapper;

    public City findById(long id) {
        return cityMapper.selectCityById(id);
    }
}
然后报什么错了???[/quote] 还是开头的错误,但是我看了下target下面内容,所有的mapper.xml是有的。
李德胜1995 2017-04-29
  • 打赏
  • 举报
回复
引用 3 楼 polixiaohai 的回复:
你说的把/换成.我试过了,还是不行。 我的Service代码如下:
@Service
public class CityServiceImpl {

    @Autowired
    private CityMapper cityMapper;

    public City findById(long id) {
        return cityMapper.selectCityById(id);
    }
}
然后报什么错了???
JerFer 2017-04-29
  • 打赏
  • 举报
回复
JerFer 2017-04-29
  • 打赏
  • 举报
回复

如果是resource 则用/
如果是class 则用.
JerFer 2017-04-29
  • 打赏
  • 举报
回复
你说的把/换成.我试过了,还是不行。 我的Service代码如下:
@Service
public class CityServiceImpl {

    @Autowired
    private CityMapper cityMapper;

    public City findById(long id) {
        return cityMapper.selectCityById(id);
    }
}
李德胜1995 2017-04-29
  • 打赏
  • 举报
回复
<mapper resource="com/nx/zhjf/mapper/UserMapper.xml"/>....这个写的有问题吧??? 改为<mapper resource="com.nx.zhjf.mapper/UserMapper.xml"/>试试
JerFer 2017-04-29
  • 打赏
  • 举报
回复
mybatis-config.xml配置如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <typeAliases>
        <package name="com.nx.zhjf.model"/>
    </typeAliases>
    <mappers>
        <mapper resource="com/nx/zhjf/mapper/CityMapper.xml"/>
        <mapper resource="com/nx/zhjf/mapper/HotelMapper.xml"/>
        <mapper resource="com/nx/zhjf/mapper/UserMapper.xml"/>
    </mappers>
</configuration>

67,550

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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