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