使用springboot检查值是否在数据库中 - 只需调用一次

时间:2017-03-06 13:37:18

标签: java spring-boot mybatis

我想检查columnName是否在数据库中的表T中。我正在使用弹簧靴和mybatis。 这种检查应该只进行一次,以免在网络传输和时间上进行开销。

为什么?
mybatis SQL query SELECT * FROM T .. ORDER BY ${columnName}columnName。你知道它很容易出现SQL注入。所以我必须检查表中T是否是正确的列名。

方法1
List <String> columnNames; @PostConstruct void initColumnNames() { columnNames = mapper.getColumnNames(); } 的应用列中的硬代码。
方法2

void someDaoMethod(String columnName) {
   if (columnNames == null) { //using approach 2 this if is unneccessary
      columnNames = mapper.getColumnNames();
   }
   //check if columName is allowed (= is in columnNames)
}

方法3
在DAO(或mayby验证类)?:

src
|
+--app
   |
   +--components
   |  |
   |  +-component.ts
   |
   +--entities
      |
      +--entity.ts
你可以帮我解决这个问题吗?我应该选择什么方法?

0 个答案:

没有答案