我刚刚开始使用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"/>
有什么想法吗?
谢谢!
答案 0 :(得分:1)
我看到你指定了 value =“org.apache.derby.jdbc.Driver169”。您是否尝试在J2ME配置中运行?您是否可以使用带有完整JDK的嵌入式Derby配置来设置运行应用程序的测试,并查看您的程序在这种情况下是否正常工作?