每个查询JDBC,Spring,Derby上的游标状态无效。配置问题?

时间:2010-07-27 14:16:11

标签: spring jdbc derby

我刚刚开始使用Spring(MVC,Webflow等),我正在尝试编写自己的小型Web应用程序。作为一个数据库,我使用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)出现“无效的游标状态”。问题是什么?我觉得这是配置问题..

这是我的ApplicationContext中的JDBC配置:

<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 个答案:

答案 0 :(得分:1)

我看到你指定了 value =“org.apache.derby.jdbc.Driver169”。您是否尝试在J2ME配置中运行?您是否可以使用带有完整JDK的嵌入式Derby配置来设置运行应用程序的测试,并查看您的程序在这种情况下是否正常工作?