我正在努力寻找一个很好的解决方案,一个电影过滤系统建立在java和mysql数据库。用户应该能够根据许多属性过滤他们希望看的电影,例如:导演、演员、长度、流派、年份……。总共有11个字段可用于过滤查询。
问题是这些字段中的一些可以(并且很可能会)留空。例如,也许用户只想根据某个流派、导演和长度来过滤数据。或者他们只想根据prodution studio进行过滤,而不关心其他过滤选项。
我已经建立了到服务器的连接,问题出在创建我将在statement.executeQuery(SQL_String)
中使用的"SQL_String“。
假设我只想筛选一个字段。然后我就知道我可以写
String field = //user input (for example: actor)
String filter = //user input (for example: 'tom cruise')
String SQL_String = "SELECT * FROM Movies WHERE "+field + "=" +filter
但是,如果我想让用户根据几个(或零个)字段进行过滤,那么我不知道如何编写代码。
一些示例查询可能是:
"SELECT * FROM Movies WHERE (director = 'steven spielberg' AND genre = 'action' AND length >100)"
"SELECT * FROM Movies WHERE (type = 'tv-series' AND actor = 'bob odenkirk')"
因此,用户可以指定要过滤的字段(如果有),我需要想出一个java代码来考虑这些字段并构造一个查询字符串。
https://stackoverflow.com/questions/52826288
复制相似问题