type 语句中的方法 executeQuery(string) 不适用于 arguments(),我哪里出错了?使用 Eclipse
Posted
技术标签:
【中文标题】type 语句中的方法 executeQuery(string) 不适用于 arguments(),我哪里出错了?使用 Eclipse【英文标题】:method executeQuery(string) in the type statement is not applicable for the arguments (), Where am I going wrong? Using Eclipse 【发布时间】:2021-05-05 22:02:07 【问题描述】:这是我遇到问题的代码,直接从我录制的讲座中赶上,他的行旁边没有错误但是我有吗?很好奇我做错了什么,因为我直接从屏幕上复制代码。
'''
public class DisplayAuthors
// database URL
static final String DATABASE_URL = "jdbc:mysql://localhost/books";
public static void main ( String args[] )
Connection connection = null;
Statement pstat = null;
ResultSet resultSet = null;
try
// establish connection to database
connection = DriverManager.getConnection(DATABASE_URL, "root", "");
// create Prepared Statement for querying table
pstat = connection.prepareStatement("SELECT AuthorID, FirstName, LastName FROM Authors");
// query database
resultSet = pstat.executeQuery();
//process query results
ResultSetMetaData metaData = resultSet.getMetaData();
int numberOfColumns = metaData.getColumnCount();
System.out.println(" Authors Table of Books Database:\n");
for (int i = 1; i <= numberOfColumns; i++ )
System.out.print(metaData.getColumnName( i )+ "\t");
System.out.println();
'''
【问题讨论】:
Statement pstat
应该是PreparedStatement pstat
。
你真是个救世主,我都不知道我怎么不感谢你!
【参考方案1】:
语句没有 executeQuery() 方法,它只有 executeQuery(String) - 这就是错误告诉你的内容。
PreparedStatement 确实有 executeQuery(),但您将 pstat 定义为 Statement 而不是 PreparedStatement。改变
Statement pstat = ...
到
PreparedStatement pstat = ...
【讨论】:
以上是关于type 语句中的方法 executeQuery(string) 不适用于 arguments(),我哪里出错了?使用 Eclipse的主要内容,如果未能解决你的问题,请参考以下文章
executeexecuteQuery和executeUpdate之间的区别
00312_预处理对象executeQuery方法(实现数据库的查询)
execute(),executeQuery(),executeUpdate()和executeBatch()的使用与区别