MyBatis Spring MVC 错误:无效的绑定语句(未找到)

2023-12-19

这是我尝试使用 MyBatis 执行简单查询时的堆栈跟踪:

org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.my.package.persistence.BrandMapper.getBrand
    org.apache.ibatis.binding.MapperMethod$SqlCommand.<init>(MapperMethod.java:189)
    org.apache.ibatis.binding.MapperMethod.<init>(MapperMethod.java:43)
    org.apache.ibatis.binding.MapperProxy.cachedMapperMethod(MapperProxy.java:58)
    org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:51)
    com.sun.proxy.$Proxy25.getBrand(Unknown Source)
    com.my.package.service.BrandService.getBrand(BrandService.java:18)
    com.my.package.service.BrandService$$FastClassBySpringCGLIB$$1140c60a.invoke(<generated>)
    org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
    org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:649)
    com.my.package.service.BrandService$$EnhancerBySpringCGLIB$$ea6f89cd.getBrand(<generated>)
    com.my.package.controller.HomeController.getBrands(HomeController.java:28)
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    java.lang.reflect.Method.invoke(Method.java:483)
    org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:221)
    org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:137)
    org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:110)
    org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:777)
    org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:706)
    org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
    org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:943)
    org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:877)
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:966)
    org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:857)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:622)
    org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:842)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

我使用 Javaconfig 语法而不是 XML 配置。这是我的持久性配置:

@Configuration
@EnableTransactionManagement
@MapperScan("com.my.package.persistence")
public class PersistenceConfig {

    @Bean
    public DataSource dataSource() {

        DriverManagerDataSource dataSource = new DriverManagerDataSource();

        try {
            dataSource.setDriverClassName("com.mysql.jdbc.Driver");
            dataSource.setUrl("jdbc:mysql//localhost:3306/db");
            dataSource.setUsername("dbuser");
            dataSource.setPassword("dbpassword");
        } catch (Exception e) {
            System.out.print(e);
        }
        return dataSource;
    }

    @Bean
    public DataSourceTransactionManager transactionManager() {
        return new DataSourceTransactionManager(dataSource());
    }

    @Bean
    public SqlSessionFactoryBean sqlSessionFactory() throws Exception {
        SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
        sessionFactory.setDataSource(dataSource());
        sessionFactory.setTypeAliasesPackage("com.my.package.domain");
        return sessionFactory;
    }
}

这是我的控制器:

@Controller
public class HomeController {

    private static Logger logger = LoggerFactory.getLogger(HomeController.class);

    @Autowired
    private BrandService brandService;

    @RequestMapping(value = "/", method = RequestMethod.GET)
    public String index() {
        return "index";
    }

    @RequestMapping(value = "/brands", method = RequestMethod.GET)
    public String getBrands(Model model) {
        model.addAttribute("brands",brandService.getBrand(1));
        return "brands";
    }

}

这是我的品牌映射器界面:

public interface BrandMapper {

    Brand getBrand(int id);

    Brand getBrandByName(String name);

    List<Brand> getBrandList();

    void addBrand(Brand brand);

    void updateBrand(Brand brand);

    void deleteBrand(int id);

}

这是我的 BrandMapper 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.my.package.persistence.BrandMapper">

    <select id="getBrand" resultType="Brand" parameterType="int">
        SELECT id, name
        FROM brand
        WHERE id = #{id};
    </select>

    <select id="getBrandByName" resultType="Brand" parameterType="String">
        SELECT id, name
        FROM brand
        WHERE name = #{name};
    </select>

    <select id="getBrandList" resultType="Brand">
        SELECT id, name
        FROM brand;
    </select>

    <insert id="addBrand" parameterType="Brand">
        INSERT INTO brand (id, name)
        VALUE (#{id}, #{name})
    </insert>

    <update id="updateBrand" parameterType="Brand">
        UPDATE brand
        SET
        name = #{name}
        where id = #{id}
    </update>

    <delete id="deleteBrand" parameterType="int">
        DELETE FROM brand
        WHERE id = #{id}
    </delete>

</mapper>

我做了一些研究,但没有一个解决方案对我有用。我的 XML Mapper 文件位于名为“com.my.package.persistence”的包中的资源下

有人知道这里出了什么问题吗?

提前致谢


尝试检查 mybatis-conf.xml (无论您调用此文件的名称是什么)文件,看看您是否有如下所示的 xml 映射器:


<mappers> 
    <mapper resource="BrandMapper.xml">
<mappers>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MyBatis Spring MVC 错误:无效的绑定语句(未找到) 的相关文章

随机推荐

  • 尝试在 JavaScript 中使用 Gruber 的“改进的”URL 匹配正则表达式模式时,如何修复“无效组”错误?

    我正在尝试整合约翰 格鲁伯的一种改进的自由 准确的正则表达式模式 用于匹配 URL http daringfireball net 2010 07 improved regex for matching urls进入我的 JavaScrip
  • JS - 动态更改文本字段

    我正在尝试在不提交任何内容的情况下更改一个文本字段中另一个文本字段的值 例子 文本字段 1 输入 你好 文本字段 2 此处也插入了 你好 下面是我的表格
  • 当应用程序位于前台时,如何计算应用程序的使用时间?

    我正在开发一个 Android 应用程序来跟踪每日应用程序的使用情况 这个想法是 用户可以为任何应用程序设置每日时间限制 超过限制后最多 2 分钟内会出现通知 延迟的原因 我使用创建了一个警报系统报警管理器每分钟都会运行一个类求职意向服务这
  • 将库版本设置为稳定时遇到问题

    我创建了一个在另一个应用程序脚本中使用的库 并查看 Google 上的清单文档 它说如果您希望它自动使用最新版本 您可以将 库 部分中的 版本 设置为 稳定 可用版本 dependency libraries version 字符串 脚本使
  • 表单初始加载后会触发什么事件?

    我对可以在加载表单后触发的事件特别感兴趣 这样我就可以在控制器代码中初始化字段等 没有事件 但您可以添加一个initialize方法 该方法由FXMLLoader创建内容并将字段注入到控制器实例后 public MyController F
  • 使用自动布局的 iOS 消息单元格宽度/高度

    The Goal 我正在尝试创造一个动态message使用自动布局的单元格 我尝试过的 在大多数情况下 单元格的定位正确 并且具有以下约束的自动布局 问题 我的第一个问题是消息标签 可复制标签 宽度受到限制 这似乎可以通过使用来解决setP
  • 字符串中的空字符

    考虑这个字符串 var s A 0Z 它的长度为 3 由下式给出s length Using console log你可以看到绳子没有被切断s 1 is and s charCodeAt 1 is 0 当你在 Firefox 中提醒它时 你
  • Java - 为什么 str.substring(str.length()) 是可接受的代码行? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 长话短说 为什么Java不会为这行代码抛出IndexOutOfBoundsException str substring str length
  • 只是想知道 spring mvc 与 django 之间的区别[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何在scala中将元组列表转换为数据帧

    我有一个字符串元组列表 List String String String 如何使用 Scala 将其转换为数据帧 你创建一个SparkSession 从 Spark 2 0 0 开始 或SQLContext 然后你可以使用隐式toDF S
  • 有没有办法可以为自适应卡提供列填充-自适应 MS BOT

    我正在使用自适应卡来使用自适应卡模板包在表格中显示动态内容 我已经对其进行了自定义 但有一列仍然拒绝到位 该列总是比其他列有更多的内容 因此它超出了行数 因此扩大了表格并使其看起来很难看 在此处输入图像描述 1 1 async testTa
  • Erlang 中的 Ruby

    是否可以将 Ruby 嵌入到 Erlang 中 Yecc 是正确的工具吗 如果可以的话 大概需要多少工时 Erlectricity 将 Ruby 暴露给 Erlang 反之亦然 http github com mojombo erlectr
  • sqlite3 从 C 批量插入?

    我遇到了 import 命令来执行此操作 批量插入 但是是否有一个可以使用 sqlite3 exec 执行的查询版本 我只想将一个小文本文件内容复制到表中 下面这个的查询版本 import demotab txt mytable Sqlit
  • 在 ActionbarSherlock 中设置进度条样式

    ActionbarSherlock 中的水平进度条太细 很难看到 我怎样才能将其设计得厚一些像素 我尝试通过继承 Widget Sherlock Light ProgressBar Horizo ntal 的样式来在 styles xml
  • 流畅的 NHibernate 一对多关系设置外键为 null

    我有一个简单的 Fluent NHibernate 模型 其中包含两个相关的类 public class Applicant public Applicant Tags new List
  • Django模型表单过滤器查询集

    我有以下模型 class Article models Model title models CharField description models TextField author models ForeignKey User clas
  • 使用JQuery在Head标签中添加元数据

    我正在尝试在 Head 中插入一个新的元标记 我使用的内容管理系统不允许在 Head 中进行编辑 因此我尝试使用 jQuery 来执行此操作 不幸的是我不能工作 这是我添加到以下网页的代码 http www newcastlegateshe
  • Handlebars:访问已被拒绝解析“来自”的属性,因为它不是其父级的“自己的属性”

    我正在使用 Nodejs 后端 并使用把手进行服务器端渲染 读完一篇后doc车把中的对象数组 其中包含键 content 和 from 但是当我尝试使用 each循环遍历对象数组 出现错误 Handlebars 解析属性 from 的访问被
  • Twilio 视频将参与者静音

    由于新的 Twilio 视频 API 和缺乏文档 我无法弄清楚如何在视频通话中将参与者 甚至是本地参与者 静音 请帮忙 控制单个设备的静音 取消静音或暂停 取消暂停状态LocalAudioTrack of LocalVideoTrack 您
  • MyBatis Spring MVC 错误:无效的绑定语句(未找到)

    这是我尝试使用 MyBatis 执行简单查询时的堆栈跟踪 org apache ibatis binding BindingException Invalid bound statement not found com my package