gpt4 book ai didi

java - 将参数从 Java 传递给 Sql

转载 作者:行者123 更新时间:2023-11-29 04:40:58 25 4
gpt4 key购买 nike

我曾使用过 sqlplus 和 Java,但直到现在才一起使用。我很难将命令行参数输入 sql 以返回特定于正则表达式的用户列表。我的 if 语句和错误如下。我相信该程序实际上是在用户列表中搜索“^A”。非常感谢有关解决此问题的任何提示。

else if (num == 1 && !args[0].equals("-n"))
{
String cmd = "select * from all_users where regexp_like(username, " + args[0] + ", 'i') order by username";
System.out.println(cmd);
String users[] = ora.doSql(cmd);
for (String u: users)
System.out.println(u);
}

我的结果:

java ShowUsers ^A
select * from all_users where regexp_like(username, ^A, 'i') order by username
select * from all_users where regexp_like(username, ^A, 'i') order by username
*
ERROR at line 1:
ORA-00936: missing expression

最佳答案

您永远不应该对 JDBC 查询使用字符串连接,因为它们容易受到 SQL 注入(inject)攻击。

相反,您应该使用 prepared statements .

如果您必须使用字符串连接,您可以按照@vkp 在评论中提到的任何内容进行操作。

关于java - 将参数从 Java 传递给 Sql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39213267/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com