mysql - 使用没有 SQLINjection 范围的 JPA 或 entityManager 查找列的不同值
问题描述
我正在尝试获取列的不同值,列名是动态的,用户将提供。所以动态查询可能是
public List<String> getDistinctValues(String paramName) {
String query = "SELECT DISTINCT " + paramName+ "FROM tableName";
return dataScalarDynamicQueryRepository.getDistinctValues(query);*/
}
它运行良好,但会导致 sql 注入。为了解决 SQL 注入,尝试使用 JPA。
@Query(value ="SELECT DISTINCT (:paramName) FROM tableName", nativeQuery=true) List getDistinctValues(@Param("paramName") String paramName)
假设它与上面的查询相同,但结果返回 ["file_name"] 而不是 ["value1","value2"]
任何人都可以就此提出建议。
我的数据库是 SQL Server。
解决方案
推荐阅读
- c++ - 为什么我用于在堆栈中打印最大元素的 C++ 代码没有产生正确的输出?
- kentico - Kentico 12 智能搜索页面爬虫索引不起作用
- python-3.x - 在python中设置变量时,为什么顺序很重要?
- python-3.x - Python 代码仅删除引号内的句点
- python - 如何在 Python 中编写“EvenWord”递归
- html - 为什么字体文件用 CSS 中的引号替换空格?
- javascript - 如何使用 jQuery slim 和新的 @popperjs 使用 Laravel-mix 构建 Bootstrap 4?
- html - 如何在 flexbox 中将图像居中?
- python - 我做了这个素数计算器,它工作得很好,但对于大数字来说可以持续很长时间。我能做些什么来让它变得更好?(Python)
- reactjs - react-native-checkbox 的类型定义