我必须从我的应用程序生成报告, 首先用户选择他的搜索条件,然后他验证他的选择(搜索条件:图表类型,分组等等) 我的问题是:我怎样才能构建我的报告? 我的想法是:如何动态填写报告?
1 declar字符串SQL
2 - 当用户选中一个搜索条件,我会Concat的他选择了SQL请求 如:
SQL字符串; String select =“select”; String =“from”; String where; =“where” String and =“and”; String GroupBY =“Group by”;
时,他选择计算... GROUPBY数.... 我会Concat的: 选择=选择+ “COUNT(*)” 等
ALSO
我'使用了配置JPA/Hibernate所以我不使用从我的代码连接到数据库(我的意思是我不明确con =连接....),所以我应该传递给方法.fillReportToFile,runReportToPdfStream等
方式太少了解答案。然而我要说的是,你迄今所说的话听起来像是SQL注入攻击的秘诀(http://en.wikipedia.org/wiki/SQL_injection)。 –
为什么不直接找出用户可能进行的查询类型,然后尽可能多地对查询进行硬编码?例如,你可以让String count_query =“select count(1)from”,然后你可以处理count_query +“whatever_table_the_user_wants”,并且同样适用于其他查询?我还应该补充说,如果这不是一个内部应用程序,那么显然你需要做一些解析来防止SQL注入。 – 2011-06-27 16:03:13
这只是一个想法,我没有尝试:) – rym