Mybatis动态选择查询,防止“无列退出”错误

时间:2018-02-20 20:56:43

标签: mybatis ibatis

拥有像

这样的动态查询的最佳方法是什么?
select $dynamic_columns from table

但也可以防止未找到列等错误,并获取可用列的结果。考虑$dynamic_columns由最终用户提供。

一种方法是将模式存储在java对象中并对其进行过滤。如果在DB中更新架构,我们将需要更新架构java对象缓存。有没有更好的方法来处理这个?

1 个答案:

答案 0 :(得分:0)

要小心,因为它更容易受到 SQL注入的攻击。

  

永远不要让用户在文本字段中键入内容,而是构建一个   列表供他们选择。

为了构建列表,我认为最好的方法是使用JDBC方法DatabaseMetaData.getColumns(...)来检索表的列列表。我认为不需要缓存任何内容。