我試圖得到只從我的數據庫旅行,其中source_name,目的地是特定的。我想要使用準備好的語句從我的數據庫中獲取旅行清單。但我無法得到相同的結果。我在我的數據庫中手動檢查,但我的列表返回空?
package com.indiabus1.Dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import com.indiabus1.beans.*;
import com.indiabus1.Dao.*;
import com.indiabus1.*;
import com.indiabus1.Dao.ConnectionFactory;
import com.indiabus1.beans.BusSelectionBeans;
public class BusSelectionDAO {
Connection connection;
public BusSelectionDAO(){}
private static Connection getConnection()
throws SQLException,
ClassNotFoundException
{
Connection con = ConnectionFactory.
getInstance().getConnection();
return con;
}
public static List<BusSelectionBeans> getRecords(String s, String s2){
List<BusSelectionBeans> list=new ArrayList<BusSelectionBeans>();
try{
Connection con=getConnection();
System.out.println(s+" to "+s2);
String SQL="select travels from new_trips.dt_trips where
source_name='"+s+"' and destination_name='"+s2+"' limit 5";
PreparedStatement ps=con.prepareStatement(SQL);
//ps.setString(1, s);
// ps.setString(2, s2);
ResultSet rs=ps.executeQuery();
while(rs.next()){
BusSelectionBeans d=new BusSelectionBeans();
String x1=rs.getString(1);
// String x2=rs.getString(1);
// String x3=rs.getString(2);
d.setBusOperator(x1);
// d.setS_name(x2);
// d.setD_name(x3);
list.add(d);
}
con.close();
}catch(Exception e){System.out.println(e);}
System.out.println(list);
return list;
}
}
爲什麼我得到我的列表返回空,但手動SQL查詢結果給出。
現在在您的代碼中,您不會爲語句設置任何字符串。打印出當前正在執行的查詢並檢查是否給出結果。還可以使用[預準備語句](https://docs.oracle.com/javase/7/docs/api/java/sql/PreparedStatement.html)?作爲佔位符 – XtremeBaumer
我已檢查,但它仍然給它的空列表... –
首先,我不知道爲什麼你使用preparedStatement,當你沒有一個preparedStatement作爲查詢,你應該使用的executeQuery。 –