我正在尝试从Spring启动应用程序连接到运行Derby数据库,但每次启动我的应用程序时,我都可以看到嵌入式数据库正在启动而不是连接到现有的数据库。我很确定我的Derby数据库正在运行,因为执行java -jar $DERBY_HOME/lib/derbyrun.jar server start
时没有任何错误,我可以从终端连接到数据库(使用ij> connect 'jdbc:derby://localhost:1527/wrtschatz-db;'
)。
我正在自动装配jdbcTemplate
@Component
public class LessonItemsRetriever {
@Autowired
JdbcTemplate jdbcTemplate;
// methods doing jdbcTemplate.query(...)
}
我希望它能从我的application.yml
创建数据源spring.datasource:
url: jdbc:derby://localhost:1527/wortschatz-db
username: ""
password: ""
driverClassName: org.apache.derby.jdbc.ClientDriver
但实际上,当我尝试执行查询时,它会记录2017-05-14 11:10:36.698 INFO 6418 --- [ main] o.s.j.d.e.EmbeddedDatabaseFactory : Starting embedded database: url='jdbc:derby:memory:testdb;create=true', username='sa'
当然会产生Schema 'SA' does not exist; nested exception is java.sql.SQLSyntaxErrorException: Schema 'SA' does not exist
。
我的配置中缺少什么?
答案 0 :(得分:0)
好的,我回到了我的项目,我可以说是使用了错误的依赖。我使用嵌入式德比,而我需要一个客户端连接到外部德比数据库。在我的build.gradle中,正确的依赖是:
compile("org.apache.derby:derbyclient:10.13.1.1")