首页 > 解决方案 > type 语句中的方法 executeQuery(string) 不适用于 arguments(),我哪里出错了?使用 Eclipse

问题描述

这是我遇到问题的代码,直接从我录制的讲座中赶上,他的行旁边没有错误,我有吗?好奇我做错了什么,因为我直接从屏幕上复制代码。

'''

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();

'''

标签: javamysqlstringeclipsemethods

解决方案


语句没有 executeQuery() 方法,它只有 executeQuery(String) - 这就是错误告诉你的。

PreparedStatement 确实有 executeQuery(),但您将 pstat 定义为 Statement 而不是 PreparedStatement。改变

Statement pstat = ...

PreparedStatement pstat = ...

推荐阅读