Java 带Oracle DB的JDBC-使用具有相似条件的参数标记
在带有Oracle DB的JDBC中,我想检索名字以特定字母开头的员工。如何在类似条件下使用参数标记“?”Java 带Oracle DB的JDBC-使用具有相似条件的参数标记,java,sql,oracle,jdbc,Java,Sql,Oracle,Jdbc,在带有Oracle DB的JDBC中,我想检索名字以特定字母开头的员工。如何在类似条件下使用参数标记“?”setXXX()方法在我将其放在一个引号中时没有看到它 例: 将绑定值与通配符连接: "SELECT FIRST_NAME, LAST_NAME, SALARY FROM EMPLOYEES WHERE FIRST_NAME like ? || '%'" 您还可以使用以下内容明确检查第一个字母: "SELECT FIRST_NAME, LAST_NAME, SALARY FROM EMPL
setXXX()
方法在我将其放在一个引号中时没有看到它
例:
将绑定值与通配符连接:
"SELECT FIRST_NAME, LAST_NAME, SALARY FROM EMPLOYEES WHERE FIRST_NAME like ? || '%'"
您还可以使用以下内容明确检查第一个字母:
"SELECT FIRST_NAME, LAST_NAME, SALARY FROM EMPLOYEES WHERE SUBSTR(FIRST_NAME, 1, 1) = ?"
但这可能效率较低(除非添加基于函数的索引)。将绑定值与通配符连接起来:
"SELECT FIRST_NAME, LAST_NAME, SALARY FROM EMPLOYEES WHERE FIRST_NAME like ? || '%'"
您还可以使用以下内容明确检查第一个字母:
"SELECT FIRST_NAME, LAST_NAME, SALARY FROM EMPLOYEES WHERE SUBSTR(FIRST_NAME, 1, 1) = ?"
但这可能效率较低(除非您添加基于函数的索引)。通常的方法是在“setX”调用中设置%,因此您的查询变成
从名类似的员工处选择名、姓、工资,然后。setString(1,firstChar+“%”)代码>
另一种选择是@Alex Poole回答:使用WHERE FIRST_NAME,比如(?| |'%')
注意:此答案已编辑:查询末尾包含错误的%;它已被删除。通常的方法是在“setX”调用中设置%,因此您的查询将变成选择FIRST\u NAME、LAST\u NAME、来自FIRST\u NAME like?的员工的薪水,然后.setString(1,firstChar+“%”)代码>
另一种选择是@Alex Poole回答:使用WHERE FIRST_NAME,比如(?| |'%')
注意:此答案已编辑:查询末尾包含错误的%;它已被删除。最终找到了,但肯定有更好的方法,那部剧也是rzwitserloot的方法……最终找到了,但肯定有更好的方法,那部剧也是rzwitserloot的方法……不过你不应该在语句中仍然保留%的,对吧?比如?%
不会起作用。%
必须是字符串文本,因此?| |'%”
是唯一有效的方法。不过,您不应该在语句中仍然包含%,对吗?就像?%
不起作用。%
必须是字符串文本,因此?| |'%”代码>是唯一有效的方法。