我有这种情况:用户希望看到大量关于他自己的信息。例如:年龄,姓名,身份,收入,工作,爱好,孩子的姓名,妻子的姓名,姓名,祖父/祖母的名字。大约50个变量。他可以选择任何变量来显示信息。
所以,我有这个班*Impl.java
通过了50个参数。在50个参数范围内,让我们说25个将为空,其他将显示。它将返回所选信息。
如何在SQL中创建查询以从params中选择列?我应该创建一个过程,然后进行查询select
吗?或者做我想要实现的目标是不是很糟糕?
我正在使用Web Services
和Spring JDBC
。如果需要更多信息,我会进行编辑。
答案 0 :(得分:1)
构建一个SELECT语句来返回任意选择的列最好是棘手的(动态SQL),最糟糕的是危险(SQL注入)。如果只有50列并且用于提取它们的查询相对简单*,我会说编写查询以为一个用户提取所有可能的值,然后让应用程序筛选并对他们实际想要的数据进行排序见。
*看起来真的好像查询应该是微不足道的。在每列25个字节的超高平均值,即1250字节,在21世纪的条件下也没什么,并且每个表通过主键连接的每行可能只有一行,它应该仍然是低于100秒的工作。 / p>