代码之家  ›  专栏  ›  技术社区  ›  BernardMarx

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

  •  0
  • BernardMarx  · 技术社区  · 16 年前

    我刚刚开始使用Spring(MVC、Webflow等),我正在尝试编写自己的小型web应用程序。作为一个数据库,我使用的是apachederby,我通过Eclipse数据库开发人员插件来设置它。

    现在我的问题是:每次通过JDBCTemplate激发查询时,运行时都会出现“Invalid cursor state”异常。这些查询在手动测试(也就是通过SQL剪贴簿询问数据库)时工作。

    这是我最简单的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;
    }
    

    这是相应的结果文本描述符:

    @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 回复  |  直到 16 年前
        1
  •  1
  •   Bryan Pendleton    16 年前

    我看到你说了 value=“org.apache.derby.jdbc.Driver169”

    推荐文章