之前在用MyBatis的时候没用过表名作为参数,最近使用到了。

基于注释使用MyBatis的Dao层代码如下:

@Repository
public interface Base1102Dao {
@Select(value = "Select * from ${table_name} order by id")
@ResultType(HashMap.class)
List<HashMap> getAll(@Param("table_name") String tableName);
}

区别为:在用表作为参数使用的时候不在使用#{param},而是使用${param}。

同时遇到的一个问题是因为在参数的时候没有使用@Parem注解会导致编译器误以为String为一个class,报如下错

// 第二个标红的代码(@Param("table_name"))如果去掉就会报这个错

There is no getter for property named 'table_name' in 'class java.lang.String'

解决方案:加上@Param然后指定一个名字,在sql中使用就可以了

我之前经常不对单个String作为参数的函数用@Param参数注释,因为直接在sql 中写   #{string} 就可以了。但这个不知道为什么一定要这样写(因为参数去当表名了?)。不深究

一篇对@Param参数注解细讲的文章连接:

http://iyiguo.net/blog/2012/09/27/mybatis-param-mapping-rules/

MyBatis在表名作为参数时遇到的问题的更多相关文章

  1. 动态游标(例如表名作为参数)以及动态SQL分析

    表名作为参数的动态游标 DECLARE v_table_name VARCHAR2(30) := 'CUX_MES_WIP_BARCODE_MAP'; --l_rec SYS_REFCURSOR; T ...

  2. mysql表名作为参数传入存储过程

    有以下存储过程: CREATE DEFINER=`root`@`localhost` PROCEDURE `P_HoverTreePages`( ), ) , ), ), ), IN `SortTyp ...

  3. sql 使用存储过程传递列名或表名作为参数

    原网址: http://www.cnblogs.com/85538649/archive/2011/09/23/2186155.html alter procedure Proc_UpdateDate ...

  4. mybatis 单一参数时的动态语句

    public void getBookList(String publisher,String author){ Map<String,Object> maps = new HashMap ...

  5. C语言中数组名作为参数进行函数传递

    用数组名作函数参数与用数组元素作实参有几点不同. 1) 用数组元素作实参时,只要数组类型和函数的形参变量的类型一致,那么作为下标变量的数组元素的类型也和函数形参变量的类型是一致的.因此,并不要求函数的 ...

  6. Mysql中表名作为参数的问题

    近期由于程序的异常,导致数据库中创建了大量的表(约4000个),纠结的是表中的数据还都是有用的. 需要合并到一个表中,首先想到的就是使用存储过程来处理,但由于表名都是动态生成的,需要解决在存储过程中处 ...

  7. SpringMVC中使用bean来接收form表单提交的参数时的注意点

    这是前辈们对于SpringMVC接收表单数据记录下来的总结经验: SpringMVC接收页面表单参数 springmvc请求参数获取的几种方法 下面是我自己在使用时发现的,前辈们没有记录的细节和注意点 ...

  8. Mybatis映射文件中#取值时指定参数相关规则

    Mybatis映射文件中#取值时指定参数相关规则 在#{}中,除了需要的数值外,还可以规定参数的一些其他规则. 例如:javaType,jdbcType,mode(存储过程),numericScale ...

  9. <MyBatis>入门四 传入的参数处理

    1.单个参数 传入单个参数时,mapper文件中 #{}里可以写任意值 /** * 传入单个参数 */ Employee getEmpById(Integer id); <!--单个参数 #{} ...

随机推荐

  1. 使用gulp和bable实现实时编译ES6代码

    这篇文章最初发表在我自己折腾的博客站点上:使用gulp和bable实现实时编译ES6代码,该博客用了一位前辈开源的源码,基于thinkjs和vuejs开发,欢迎大家来逛逛. 问题描述> 项目开发 ...

  2. 汇编 指令lodsb,lodsw,lodsd

    知识点: 汇编指令 lodsb,lodsw,lodsd 一.汇编指令LODSB //scasb scasw scasd //stosb stosw stosd 1. __asm lodsb //作用 ...

  3. Log4net_简单使用

    log4net 有四种主要的组件,分别是Logger(记录器), Repository(库), Appender(附着器)以及 Layout(布局). 第一步:Log4net的安装 Install-P ...

  4. Nginx 负载均衡的Cache缓存批量清理的操作记录

    1)nginx.conf配置 [root@inner-lb01 ~]# cat /data/nginx/conf/nginx.conf user www; worker_processes 8; #e ...

  5. 牛客第二场-J-farm-二维树状数组

    二维树状数组真的还挺神奇的,更新也很神奇,比如我要更新一个区域内的和,我们的更新操作是这样的 add(x1,y1,z); add(x2+1,y2+1,z); add(x1,y2+1,-z); add( ...

  6. apacheTomcat

    Window+R ------>cmd || Window PowerShell apacheTomcat\bin> ./startup.sh

  7. ACM注意事项

           acm竞赛中不能使用一些屏幕控制和键盘读取的函数,如:getch(),geche(),gotoxy(),clrscr(),另外fflush(stdio)这个函数也不能使用,因为在有的编译 ...

  8. B. Vova and Trophies

    链接 [https://codeforces.com/contest/1082/problem/B] 题意 给你一个包含GS的字符串,只允许交换一次任意不同位置的字符,问最长的连续G串是多少 分析 很 ...

  9. Microsoft Visual Studio2013安装及单元测试

    和大家分享一下我安装VS2013和单元测试的过程.VS是微软多种编程软件的集合,功能与工作环境更全面,相比VC++6.0来说是一个很大的提升. VS安装: VS的安装和普通软件相同,只是花费的时间很长 ...

  10. jiedui

    源代码:https://github.com/hanzhaoyan/jieduizuoye/tree/master 功能要求: 该程序用图形界面实现下面功能:用计算机产生一个100以内的随机数,游戏者 ...