MyBatis在表名作为参数时遇到的问题
之前在用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在表名作为参数时遇到的问题的更多相关文章
- 动态游标(例如表名作为参数)以及动态SQL分析
表名作为参数的动态游标 DECLARE v_table_name VARCHAR2(30) := 'CUX_MES_WIP_BARCODE_MAP'; --l_rec SYS_REFCURSOR; T ...
- mysql表名作为参数传入存储过程
有以下存储过程: CREATE DEFINER=`root`@`localhost` PROCEDURE `P_HoverTreePages`( ), ) , ), ), ), IN `SortTyp ...
- sql 使用存储过程传递列名或表名作为参数
原网址: http://www.cnblogs.com/85538649/archive/2011/09/23/2186155.html alter procedure Proc_UpdateDate ...
- mybatis 单一参数时的动态语句
public void getBookList(String publisher,String author){ Map<String,Object> maps = new HashMap ...
- C语言中数组名作为参数进行函数传递
用数组名作函数参数与用数组元素作实参有几点不同. 1) 用数组元素作实参时,只要数组类型和函数的形参变量的类型一致,那么作为下标变量的数组元素的类型也和函数形参变量的类型是一致的.因此,并不要求函数的 ...
- Mysql中表名作为参数的问题
近期由于程序的异常,导致数据库中创建了大量的表(约4000个),纠结的是表中的数据还都是有用的. 需要合并到一个表中,首先想到的就是使用存储过程来处理,但由于表名都是动态生成的,需要解决在存储过程中处 ...
- SpringMVC中使用bean来接收form表单提交的参数时的注意点
这是前辈们对于SpringMVC接收表单数据记录下来的总结经验: SpringMVC接收页面表单参数 springmvc请求参数获取的几种方法 下面是我自己在使用时发现的,前辈们没有记录的细节和注意点 ...
- Mybatis映射文件中#取值时指定参数相关规则
Mybatis映射文件中#取值时指定参数相关规则 在#{}中,除了需要的数值外,还可以规定参数的一些其他规则. 例如:javaType,jdbcType,mode(存储过程),numericScale ...
- <MyBatis>入门四 传入的参数处理
1.单个参数 传入单个参数时,mapper文件中 #{}里可以写任意值 /** * 传入单个参数 */ Employee getEmpById(Integer id); <!--单个参数 #{} ...
随机推荐
- SkylineGlobe 如何实现FlyTo定位到目标点之后触发的事件函数
之前有朋友问,如何在Skyline里面实现FlyTo定位到目标点之后触发的事件函数呢? 下面的这段代码,就可以帮你解决这个问题. <!DOCTYPE html PUBLIC "-//W ...
- 玩转 ”hello word“,Python程序员大多数都没有实现过
很多人学习Python很长时间,对于'hello word' 的认知,很多已经从事Python多年的程序员的认知也就只有: print(hello wrod) 但是有没有让hello word 变得不 ...
- CF1105E Helping Hiasat 最大团
传送门 发现自己不会求最大团了可海星 如果将每一个朋友看做点,将两个\(1\)之间存在\(2\)操作的所有朋友之间互相连边,那么我们最后要求的就是这个图的最大独立集. 某个图的最大独立集就是反图的最大 ...
- jQuery的Cookie使用
为程序设置Cookie,可以在C#内进行,也可以在前端进行.如jQuery的Cookie也是一个很不错的插件. 在使用之前,可以先使用NuGet来安装cookie: 在MVC的视图中,引用jQuery ...
- Linux 开启端口命令
编者按 今天在配置Zookeeper集群的时候,碰到下面的问题: 这里说明是主机192.168.116.129:3888没有连通. 首先ping了一把,是通的,说明主机之间是连通的,然后再检查开放的端 ...
- python常用程序算法
一.冒泡排序: 1.冒泡排序是将无序的数字排列成从小到大的有序组合: 过程:对相邻的两个元素进行比较,对不符合要求的数据进行交换,最后达到数据有序的过程. 规律: 1.冒泡排序的趟数时固定的:n-1 ...
- Docker阿里云镜像加速
登录阿里云docker registry sudo docker login --username=zhangsan@163.com registry.cn-hangzhou.aliyuncs.com ...
- php类之clone 克隆
对象也能被“克隆” 在php5中,对象的传递方式默认为引用传递,如果我们想要在内存中生成两个一样的对象或者创建一个对象的副本,这时可以使用“克隆”. 通过 clone 克隆一个对象 对象的复制是通过关 ...
- 12.10 Daily Scrum
各种大作业,进度会放缓一些. Today's Task Tomorrow's Task 丁辛 完善餐厅列表,显示距离. 实现和菜谱相关的餐厅列表. 邓亚梅 ...
- 《Linux内核设计》第17章学习笔记