我尝试使用jdbcTemplate.query
,但收到类未找到错误。我正在使用 spring-dao 2.0.8 并查看了库内部,确实找不到任何 DuplicateKeyException
类。从 maven repository 来看,这似乎是 spring-dao 的最新版本。
我收到错误的代码是:
ResultSet resultSet = (ResultSet)jdbcTemplate.query (query, new ResultSetExtractor<ResultSet>() {
@Override
public ResultSet extractData(ResultSet rs) throws SQLException, DataAccessException {
return rs;
}
});
和堆栈:
Exception in thread "main" java.lang.NoClassDefFoundError: org/springframework/dao/DuplicateKeyException
at org.springframework.jdbc.support.JdbcAccessor.getExceptionTranslator(JdbcAccessor.java:99)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:407)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:456)
at DAO.MySQLAccess.getAccounts(MySQLAccess.java:95)
Caused by: java.lang.ClassNotFoundException: org.springframework.dao.DuplicateKeyException
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
... 7 more
这不是最新版本吗?为什么它首先会出现错误?
最佳答案
听起来类路径中缺少一个 jar。我猜你没有使用maven。
我搜索了包含此类的 jar 并想出了这个。
http://mavenhub.com/c/org/springframework/dao/DuplicateKeyException/jar
看起来您需要 org.springframework.transaction jar。或者使用 Maven,它应该会为您解决依赖关系。
关于java - Spring dao 类未找到 org.springframework.dao.DuplicateKeyException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20499200/