【发布时间】:2020-06-09 11:48:17
【问题描述】:
我可以使用 JDBC 驱动程序访问用于 android 应用程序的 SQL SERVER。将值插入一列可以正常工作。但我想在该单行中插入具有单个查询的多列的值。
这是我尝试过的
public void insertValues(String number, Long caller_id) {
Statement statement = connect.createStatement();
String queryID = "INSERT INTO Phone(PhoneNumber, CallerID) VALUES ('" + number + "'),('" + caller_id + "')";
statement.execute(queryID);
}
如果我尝试按如下方式仅插入一列,则效果很好。
public void insertValues(String number) {
Statement statement = connect.createStatement();
String queryID = "INSERT INTO Phone(PhoneNumber) VALUES ('" + number + "')";
statement.execute(queryID);
}
多个输入项我缺少什么?
【问题讨论】:
-
我非常 强烈建议您学习参数化。这是非常可以注入的。至于
INSERT如何为多列取值,那basic syntax的文档你没看懂,我们可以尝试详述。 -
@Larnu 我遵循了基本的 INSERT 结构。单项工作正常。但不知何故,多列似乎不起作用。
-
在第一个示例中,您有
Phone(PhoneNumber,ID) VALUES(Phonenumber), (ID),您在两行中都定义了一列。再看一下文档。然后堵住你那里的巨大安全漏洞。 -
您是手动处理 id 还是数据库表中的
UNIQUEIDENTIFIERs?在后一种情况下,不要尝试自己插入,数据库会处理它们...是的,使用PreparedStatements 安全地设置变量值。 -
@deHaar ID 可能具有误导性,它是 caller_id - 我从另一个表中获取自动生成的密钥。
标签: java android sql-server