我刚刚开始使用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"/>
有什么想法吗?
谢谢!