gpt4 book ai didi

java - 使用 Java 将变量值插入 SQL Server

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:07:30 26 4
gpt4 key购买 nike

到目前为止,只有当我在 executedUpdate 语句中声明值时,我才能将数据插入到我的 SQL 表中。我想知道是否有一种方法可以将这些值作为变量传递,我将在执行方法中声明为参数,如下所示:

public void updateSQL(String name, String dnsName, String ipV4, String ipV6, int statusCode)
{
try
{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Connection connection = DriverManager.getConnection("jdbc:sqlserver://servername;database=databasename;integratedSecurity=true");

System.out.println("Database Name: " + connection.getMetaData().getDatabaseProductName());

Statement statement = connection.createStatement();

statement.executeUpdate("INSERT INTO ComputerStatus(Name, DNSName, IPAddressV4, IPAddressV6, StatusCodeID)" + "VALUES(@Name, @DNSName, @IPAddressV4, @IPAddressV6, @StatusCodeID)");
System.out.println("Data Inserted");

ResultSet resultSet = statement.executeQuery("SELECT Name FROM ComputerStatus");

while(resultSet.next())
{
System.out.println("Computer Name: " + resultSet.getString("Name"));
}

connection.close();
}
catch (Exception e)
{
e.printStackTrace();
System.err.println("Problem Connecting!");
}
}

我已经尝试了几种不同的方法,但到目前为止都没有成功。有人知道这是否可以做到吗?

最佳答案

您可以使用 PreparedStatement 代替 Statement

PreparedStatement stmt = connection.prepareStatement("insert into test (firstname, lastname) values (?, ?");
stmt.setString(1, name);
stmt.setString(2, lname);
stmt.executeUpdate();

使用这种方式,您可以防止 SQL 注入(inject)。

关于java - 使用 Java 将变量值插入 SQL Server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12078744/

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