Java 无法解析方法executeQuery();

Java 无法解析方法executeQuery();,java,sqlite,Java,Sqlite,我不知道为什么,但当我尝试使用方法“executeQuery()”时,inteliJ抛出了它的手,告诉我“无法解析方法executeQuery() 我已经仔细检查了是否已经导入了所有与sql相关的包。我看了其他相关的文章。当我尝试“shift”+“enter”时,它为我提供了编辑设置的选项,而这些设置似乎没有任何明显的解决方案 package Student_Tech_Services_Tracking_Log; import java.sql.*; import java.util.Arra

我不知道为什么,但当我尝试使用方法“executeQuery()”时,inteliJ抛出了它的手,告诉我“无法解析方法executeQuery()

我已经仔细检查了是否已经导入了所有与sql相关的包。我看了其他相关的文章。当我尝试“shift”+“enter”时,它为我提供了编辑设置的选项,而这些设置似乎没有任何明显的解决方案

package Student_Tech_Services_Tracking_Log;

import java.sql.*;
import java.util.ArrayList;

public class TicketDB {

    private static final String url = "jdbc:sqlite:products.db";

    protected ArrayList<Ticket> loadTickets(){

        final String srchSql = "select * from tickets";

        try(Connection conect = DriverManager.getConnection(url);
            PreparedStatement prepState = conect.prepareStatement(srchSql)){

            ResultSet tikRs = srchSql.executeQuery();
        }catch (SQLException e){
            System.out.println(e);
        }

        return new ArrayList<>();
    }
打包学生技术服务跟踪日志;
导入java.sql.*;
导入java.util.ArrayList;
公务舱票{
私有静态最终字符串url=“jdbc:sqlite:products.db”;
受保护的ArrayList loadTickets(){
最后一个字符串srchSql=“从票据中选择*”;
try(Connection conect=DriverManager.getConnection(url);
PreparedStatement prepState=conect.prepareStatement(srchSql)){
ResultSet tikRs=srchSql.executeQuery();
}捕获(SQLE异常){
系统输出打印ln(e);
}
返回新的ArrayList();
}
预期结果是executeQuery()不应作为错误突出显示

ResultSet tikRs = srchSql.executeQuery();
应该是:

ResultSet tikRs = prepState.executeQuery();
executeQuery()是语句而不是字符串的方法

查看代码后,您可以在

中阅读:
executeQuery()
不是
String
的方法,而是
PrepareStatement
的方法,所以您可以这样做:

public class TicketDB {

    private static final String url = "jdbc:sqlite:products.db";

    protected ArrayList<Ticket> loadTickets(){

        final String srchSql = "select * from tickets";

        try(Connection conect = DriverManager.getConnection(url);
            PreparedStatement prepState = conect.prepareStatement(srchSql)){

            ResultSet tikRs = prepState.executeQuery();

while(tikRs.next()){  
    System.out.println(tikRs.getInt(1)+" "+tikRs.getString(2));// here put your get logic..
    }
        }catch (SQLException e){
            System.out.println(e);
        }

        return new ArrayList<>();
    }
public class TicketDB{
私有静态最终字符串url=“jdbc:sqlite:products.db”;
受保护的ArrayList loadTickets(){
最后一个字符串srchSql=“从票据中选择*”;
try(Connection conect=DriverManager.getConnection(url);
PreparedStatement prepState=conect.prepareStatement(srchSql)){
ResultSet tikRs=prepState.executeQuery();
while(tikRs.next()){
System.out.println(tikRs.getInt(1)+“”+tikRs.getString(2));//这里是get逻辑。。
}
}捕获(SQLE异常){
系统输出打印ln(e);
}
返回新的ArrayList();
}

srchSql
是一个
字符串
。我想你的意思是
prepState.executeQuery()