Java 在Spring中获取数据库路径时出错
我是Spring boot的新手,我正在编写一个代码,当我用postman的请求点击控制器时,它将获取到数据库的路径。但是我写的代码给我带来了一个错误。我写的代码是在谷歌上找到的。 我能得到一些帮助吗? 这是我的控制器代码:Java 在Spring中获取数据库路径时出错,java,spring,spring-boot,derby,Java,Spring,Spring Boot,Derby,我是Spring boot的新手,我正在编写一个代码,当我用postman的请求点击控制器时,它将获取到数据库的路径。但是我写的代码给我带来了一个错误。我写的代码是在谷歌上找到的。 我能得到一些帮助吗? 这是我的控制器代码: import org.apache.derby.client.am.SqlException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework
import org.apache.derby.client.am.SqlException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.*;
import javax.sql.DataSource;
import javax.validation.Valid;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.SQLException;
import java.util.List;
@RestController
@RequestMapping("/createBackup")
public class UserController
{
@Autowired
private ApplicationContext appContext;
@GetMapping("/getPath")
public void getPath()
{
DataSource ds = (DataSource)appContext.getBean("dataSource");
Connection conn = null;
DatabaseMetaData dmd = null;
String url = "";
try
{
conn = ds.getConnection();
dmd = conn.getMetaData();
url = url + dmd.getURL();
}
catch(SQLException sqe)
{
sqe.printStackTrace();
}
System.out.println(url);
}
}
我用邮递员点击这个控制器,得到我数据库的路径。现在我正在我的控制台上打印出来,但是这个错误让我很烦恼
服务开始得很好。但是当我用邮递员的请求点击这个控制器时,我得到了这个错误:
java.lang.AbstractMethodError: org.apache.derby.client.net.NetConnection.isValid(I)Z
at com.zaxxer.hikari.pool.PoolBase.checkDriverSupport(PoolBase.java:454) ~[HikariCP-3.2.0.jar:na]
at com.zaxxer.hikari.pool.PoolBase.setupConnection(PoolBase.java:421) ~[HikariCP-3.2.0.jar:na]
at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:374) ~[HikariCP-3.2.0.jar:na]
at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:198) ~[HikariCP-3.2.0.jar:na]
at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:467) ~[HikariCP-3.2.0.jar:na]
at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:541) ~[HikariCP-3.2.0.jar:na]
...................................and on and on it goes..............................
derby驱动程序实现和JDBCAPI之间存在差异 这里回答了一个类似的问题: 如果可能,请使用最新版本的derby驱动程序,并结合最新版本的Spring boot。 下面是一个带有Spring boot/derby的简单Rest控制器示例: 请注意,如果希望从数据源获取信息,则更容易注入bean:
@Autowired
private Datasource ds;
而不是拿着它
DataSource ds = (DataSource)appContext.getBean("dataSource");