使用SQL表中的值填充ArrayList

时间:2014-11-20 05:33:06

标签: java sql netbeans arraylist prepared-statement

我正在开发一个项目,我有一个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(假期)似乎是空的。

2 个答案:

答案 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);

 [...]