我正在开发一个项目,我有一个SQL表,其中只有一列包含假日名称字符串。我试图使用预准备语句将该列中的所有假日名称转换为arraylist(我必须使用预准备语句)。但是,我只是迷失了我做错了什么。谢谢!随意要求任何澄清。 (仅供参考,数据库网址正确,我想访问的列名是假期
public class Holidays
{
private ArrayList<String> holidays;
final String DATABASE_URL = "jdbc:derby://localhost:1527/MovieAgent";
final String SELECT_QUERY = "SELECT HOLIDAYS FROM HOLIDAY";
final String USERNAME = "james";
final String PASSWORD = "am";
private Connection connection;
private Statement statement;
private PreparedStatement selectHolidays;
private PreparedStatement insertHoliday;
private int rowCount;
public Holidays()
{
String holidayName;
holidays = new ArrayList<>();
try{
connection = DriverManager.getConnection(DATABASE_URL, "al", "al");
statement = connection.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
selectHolidays = connection.prepareStatement(SELECT_QUERY);
ResultSet resultSet;
resultSet = selectHolidays.executeQuery();
while(resultSet.next())
{
holidayName = resultSet.getString(1);
holidays.add(holidayName);
}
}catch(SQLException sqlException)
{
sqlException.printStackTrace();
System.exit(1);
}
}
编辑:抱歉,我遗漏了它根本就没有用。这些值只是没有出现在arraylist中。 arraylist(假期)似乎是空的。
答案 0 :(得分:0)
尝试更改
final String SELECT_QUERY = "SELECT HOLIDAYS FROM HOLIDAY";
到
final String SELECT_QUERY = "SELECT * FROM HOLIDAY";
因为该表只有一列。
答案 1 :(得分:0)
生成列表,然后设置一个起始值,然后查看它是否至少在列表中 如果是这样,那么查询或准备就会出错。
public Holidays()
{
String holidayName;
ArrayList<String> holidays = new ArrayList<String>();
holidays.add("-- start --");
try{
[...]
while(resultSet.next())
{
}
System.out.println("Holidays names are : "+holidays);
[...]