gpt4 book ai didi

java - CallableStatement 可以用来代替PreparedStatement 吗?

转载 作者:太空宇宙 更新时间:2023-11-04 14:05:26 24 4
gpt4 key购买 nike

需要有关 JDBC 查询的一些帮助。我本来想亲自尝试一下,但现在我无法访问数据库。

我的问题是:既然CallableStatement扩展了PreparedStatement,这是否意味着我们可以使用CallableStatement来执行为准备好的语句准备的任何查询?

更具体地说,使用 Callable 的任何缺点如下:

CallableStatement stmt = null;
String sql = "UPDATE Employees set age=30 WHERE id=";
stmt = conn.prepareCall(sql);
int empID = 102;
stmt.setInt(1, empID); );
stmt.execute();
stmt.close();
conn.close();

最佳答案

是的,可以。 prepareCall的差异和 prepareStatement文档中描述的方法。正如您所看到的,它们只是针对不同的任务进行了优化。

package com.company;

import java.sql.*;

public class Main {

public static void main(String[] args) throws ClassNotFoundException, SQLException {
Class.forName("com.mysql.jdbc.Driver");

Connection connection = DriverManager.getConnection("jdbc:mysql://localhost/mysql", "user", "password");

CallableStatement callableStatement = connection.prepareCall("SELECT * FROM db WHERE user = ?");
callableStatement.setString(1, "deployer");
ResultSet resultSet = callableStatement.executeQuery();

while(resultSet.next()) {
System.out.println(resultSet.getString("Db"));
}

connection.close();
}
}

关于java - CallableStatement 可以用来代替PreparedStatement 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28915264/

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