Недопустимое состояние курсора при каждом запросе JDBC, Spring, Derby.Проблема с конфигурацией? - PullRequest
0 голосов
/ 27 июля 2010

Я только начинаю работать со Spring (MVC, Webflow и т. Д.) И пытаюсь написать собственное небольшое веб-приложение.В качестве базы данных я использую Apache Derby, который я настроил с помощью плагинов Eclipse Database Developer.

Теперь моя проблема: каждый раз, когда я запускаю запросы через JDBCTemplate, я получаю исключение "Недопустимое состояние курсора" во время выполнения.Это запросы, которые работают, когда они проверяются вручную (или запрашивают базу данных через SQL Scrapbook.

Это мой самый простой метод DAO:

public List<Player> getAllPlayers() {
    JdbcTemplate select = new JdbcTemplate(dataSource);
    List<Player> result = select.query(
                        "SELECT ID , Name , TeamID " +
                        "FROM PLAYERS " , new PlayerExtractor());
    return result;
}

И это соответствующий ResultSetExtractor:

@Override
public Object extractData(ResultSet rs) throws SQLException,
        DataAccessException {

    Player player = new Player();
    player.setId(Integer.valueOf(rs.getString(1)));
    player.setName(rs.getString(2));
    TeamDAO t_dao = new TeamDAOImpl();
    Team team = t_dao.getTeamByKey( Integer.valueOf(rs.getString(3)) );
    player.setTeam(team);

    return player;
}

Как только rs.getString (1) «недопустимое состояние курсора». В чем проблема? У меня такое ощущение, что это проблема конфигурации ..

Вот мойКонфигурация JDBC в моем ApplicationContext:

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="org.apache.derby.jdbc.Driver169"/>
<property name="url" value="jdbc:derby:C:\Dokumente und Einstellungen\araptarc\MyDB"/>
<property name="username" value="APP"/>
<property name="password" value="test"/>

Есть идеи?

Спасибо!

1 Ответ

1 голос
/ 27 июля 2010

Я вижу, вы указали value = "org.apache.derby.jdbc.Driver169" . Вы пытаетесь запустить в конфигурации J2ME? Можете ли вы настроить тест, в котором вы запустите свое приложение, используя встроенную конфигурацию Derby с полным JDK, и посмотрите, правильно ли работает ваша программа в этом случае?

...