一开始在dao中使用select注解,查询的时候表名作为入参结果报错
报错的时候在表名上加了两层单引号
// 原来错误的用法
public interface FreemarkerDao {
@Select("show columns from #{tableName}")
public List<Map<String, String>> showColumns(@Param("tableName")String tableName);
}
报错如下 其实是在表名外面加了两层引号
其实这里根本原因是表名和列名都要用$的方式带入 有点类似 mybatis里的like
另外 show column这种查找元数据的语句可以使用select去执行
public interface FreemarkerDao {
@Select("show columns from ${tableName}")
public List<Map<String, String>> showColumns(@Param("tableName")String tableName);
}