【发布时间】:2016-05-13 23:33:12
【问题描述】:
我正在尝试实现一个功能,我必须使用输入参数值查询数据库。输入值是可选的。
例如
我有一个表学生,有以下字段
a)student_id b)student_roll_no c)student_first_name d)student_last_name ..等
我需要编写一个 dao 层函数,以便根据输入条件或参数检索学生详细信息。
1) 如果 Input 只包含 student_id 那么查询应该是 select * from student where student_id = :inputStudentId
2) 如果 Input 包含 student_id, firstName 那么查询应该是 select * from student where student_id = :inputStudentId and first_name = :inputFirstName
与其他输入参数一样,请注意输入参数可以是 0 到 n 大小
请建议最好的方法是什么? 我不想添加空检查并附加非空参数的查询。我想在 Java 或 sql(命名查询)中尝试一些合理且合乎逻辑的东西
我正在使用 java1.6 和休眠
【问题讨论】:
-
您是在问如何构建
String?如果是这样,请使用StringBuilder。 --- 为了获得最佳质量的答案,您应该展示如何您的 DAO 方法获取输入标准,以及您迄今为止尝试过的内容,即展示您拥有的代码。 -
Andreas 我不是在问如何构建一个字符串,我会在 DAO 函数中获取这些值,例如 hentStudentInfo(studentId, firstName, lastName ......)
-
但是您的整个问题似乎都围绕着如何构建 SQL 语句(
String),具体取决于您的输入。 --- 另外,不要在评论中显示代码,编辑问题。 --- 参数的类型是什么?您如何检测是否给出了值? ——不回答。编辑问题并澄清它。