在编写代码的时候,我对查询这个方法进行了重载,这样调用的时候会根据参数的不同,进而去执行不同的操作,但是......问题来了。想法都是美好的,实际情况却不是我理想的状态。运行代码的时候他动了几下,然后一片红色。

我仔细看了看代码:

     @Select("INSERT  INTO comment (com_pro,user_name,com_content,com_score) VALUES (#{comment.com_pro},#{comment.user_name},#{comment.com_content},#{comment.com_score}")
public int insertComment(Comment comment); @Select("DELETE FROM comment WHERE com_id =#{comment.com_id}")
public int delCommentById(int id); @Select("DELETE FROM comment where user_name=#{comment.user_name}")
public int delCommentAll(String name); @Select("update comment set com_content=#{comment.com_content},com_score=#{comment.com_score} where com_id=#{comment.com_id}")
public int updateComment(Comment comment); @Select("SELECT * FROM comment where com_pro=#{comment.com_pro}")
public List<Comment> findCommentAll(String proname); @Select("SELECT * FROM comment where com_pro=#{proname} and com_score=#{com_score}")
public List<Comment> findCommentAll(String proname,String com_score);

当我运行代码的时候,就会就收到如下错误:

严重: Error while adding the mapper 'interface com.sh.dao.CommentDao' to configuration.
java.lang.IllegalArgumentException: Mapped Statements collection already contains value for com.sh.dao.CommentDao.findCommentAll

告诉我这个方法“添加映射的接口的COM的错误。sh.dao commentdao”配置。”(百度翻译)

方法名是否真的不可以一样?

答案是肯定的,少侠。

mybatis @Select是不支持方法重载的(如果红字不算执行结果的话)。

封印代码:

     @Select("INSERT  INTO comment (com_pro,user_name,com_content,com_score) VALUES (#{comment.com_pro},#{comment.user_name},#{comment.com_content},#{comment.com_score}")
public int insertComment(Comment comment); @Select("DELETE FROM comment WHERE com_id =#{comment.com_id}")
public int delCommentById(int id); @Select("DELETE FROM comment where user_name=#{comment.user_name}")
public int delCommentAll(String name); @Select("update comment set com_content=#{comment.com_content},com_score=#{comment.com_score} where com_id=#{comment.com_id}")
public int updateComment(Comment comment); // @Select("SELECT * FROM comment where com_pro=#{comment.com_pro}")
// public List<Comment> findCommentAll(String proname);
//
// @Select("SELECT * FROM comment where com_pro=#{proname} and com_score=#{com_score}")
// public List<Comment> findCommentAll(String proname,String com_score);

运行我的Test:

     @Test
public void test() {
ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
ActivityService ad = ctx.getBean(ActivityService.class);
List<Activity> list = ad.findActivityAll();
for (Activity e : list) {
System.out.println(e.toString());
}
}

得到输出结果:

 Activity [act_id=1, act_theme=双十一, act_img=12345, act_time=Sat Nov 11 00:00:00 CST 2017]

总结:

记者:为什么要写注解?

我:没有钱了,肯定要做啊,不做没有钱用。

记者:你有手有脚的怎么不去写重载?

我:重载方面......重载是不可能重载的 这辈子不可能重载的,做实现类又不会写,就是接口这种东西,才能维持得了生活这样子.

记者:那你觉得注解好还是看重载好?

我:不写重载的感觉像回家一样,我一年写重载,大年三十 晚上我都不回去,就平时重载出点事,我就回去看看这样子,注解的感觉,比重载感觉好多了,在重载的时候一个人很无聊,都没有朋友,女朋友玩 ,写了注解发现个个都是人才,说话又好听,超 喜欢写注解。

@Select注解的情况下,重载的报错的更多相关文章

  1. [Android自动化] 在 pip-9.0.1 版本情况下安装 uiautomator2 报错的解决办法

    1.在命令窗口中使用命令: pip install uiautomator2 时报 pip 版本过低,需要先升级 pip 版本,理论上会按照提示进行升级 pip 操作,但执行升级命令时到最后却还是报错 ...

  2. linux 下 tomcat 运行报错 Broken pipe

    linux 下 tomcat 运行报错 Broken pipe 感谢:http://hi.baidu.com/liupenglover/blog/item/4048c23ff19f1cd67d1e71 ...

  3. 【转】Eclipse下启动tomcat报错:/bin/bootstrap.jar which is referenced by the classpath, does not exist.

    转载地址:http://blog.csdn.net/jnqqls/article/details/8946964 1.错误: 在Eclipse下启动tomcat的时候,报错为:Eclipse下启动to ...

  4. [转]解决IIS下UTF-8文件报错乱码的问题

    找了两天才找到解决办法…….晕晕晕...用第二种方法解决了. 网上找到的方法都没有写这一条 If objASPError.ASPDescription > "" Then 后 ...

  5. [原创] ubuntu下安装scrapy报错 error: command 'x86_64-linux-gnu-gcc' failed with exit status 1

    Ubuntu14.04在virtualenv下安装scrapy报错,Failed building wheel for cffi,lxml,cryptography 等. error: command ...

  6. mac下brew install 报错

    mac下brew install 报错 错误提示: 原因:是这个brew的权限不正确 修改一下这个brew的权限 chown root:wheel /usr/local/bin/brew

  7. Linux下Oracle11G RAC报错:在安装oracle软件时报file not found一例

    Linux下Oracle11G RAC报错:在安装oracle软件时报file notfound一例 1.现象 之前安装一切都比較顺利,安装oracle软件时,进度到30%时报错:file not f ...

  8. Linux系统下启动MySQL报错:Neither host &#39;localhost.localdomain&#39; nor &#39;localhost&#39; could be looked up with

    Linux系统下启动MySQL报错:Neither host 'localhost.localdomain' nor 'localhost' could be looked up with 摘要 Li ...

  9. window下安装redis报错: creating server tcp listening socket 127.0.0.1:6379: bind No error

    window下安装redis报错: creating server tcp listening socket 127.0.0.1:6379: bind No error 解决: 如果没有配置环境,在安 ...

随机推荐

  1. 如何写对kubernetes的模板文件

    kubernetes的模板配置文件随着版本更迭也会有相应的调整,正确配置模板关键字的方式是参考版本发布的doc,如下图 在docs\api-reference下面有不同功能的API目录,如下图 各个A ...

  2. 使用guava实现找回密码的tokenCache以及LRU算法

    源码包的简单说明: com.google.common.annotations:普通注解类型. com.google.common.base:基本工具类库和接口. com.google.common. ...

  3. Xcode9的xib只支持iOS7.0及以上版本

    Xcode升级到9以后,对xib的最低编译版本有了限制,以前未指定版本的xib会报错,如下 遇到这个情况,根据错误提示很明显提示的是ib文件支持的最低版本是iOS7,所以我就将该xib的版本设为iOS ...

  4. thinkphp5 taglib自定义标签教程

    学着写了一下,终于搞定了,顺便分享一下!taglib是tp框架自定义标签功能,如果你用过cms,肯定见过类似: {dede:arclist typeid='' row='' col='' titlel ...

  5. 纯CSS制作网页图标

    三角形 <div class="box"></div> <style>.box{ width: 0; height: 0; border-top ...

  6. 关于bootstrap的form表单的输入框间距样式

    <!-- 模态弹出窗内容 --> <div class="modal" tabindex="-1" role="dialog&quo ...

  7. 阿里云ECS的CPU100%排查

    一.背景和现象 初创公司,架构lanmp,web前端和后端分开服务器,业务驱动主要是nginx和apache,nginx主要是处理静态文件和反向代理,前后端.搜索引擎.缓存.队列等附加的服务都是用do ...

  8. 目前微服务/REST的最佳技术栈

    服务端 日期 编程语言 Web Framework DbAccess/ORM 数据库 2017-09-07 Node.js 8.4 Koa 2.3 sequelize 4.8 MySQL 2017-0 ...

  9. sphinx的安装

    1.下载sphinx 没想到sphinx3解压后即可: wget http://sphinxsearch.com/files/sphinx-3.0.2-2592786-linux-amd64.tar. ...

  10. 一个非常标准的连接Mysql数据库的示例代码

    一.About Mysql 1.Mysql 优点 体积小.速度快.开放源码.免费 一般中小型网站的开发都选择 MySQL ,最流行的关系型数据库 LAMP / LNMP Linux作为操作系统 Apa ...