Java Derby添加create=true参数仍无法找到数据库求助
解决Derby数据库创建后无法在IJ工具中找到的问题
问题原因
你的Java代码中jdbc:derby:javaDb;create=true使用的是相对路径,数据库会被创建在Java程序运行时的当前工作目录下。而你在CMD的libs目录下启动IJ工具,两个目录不一致,导致IJ找不到对应的数据库文件。
解决方案
方案1:在IJ中使用数据库的绝对路径连接
- 定位Java程序创建的
javaDb数据库实际位置:- 比如你在
D:\myProject目录下运行Java程序,数据库文件夹就会生成在D:\myProject\javaDb
- 比如你在
- 在IJ中通过绝对路径连接数据库:
Windows系统路径可使用反斜杠connect 'jdbc:derby:D:\myProject\javaDb';\,或转义后的正斜杠//。
方案2:切换到数据库所在目录再启动IJ
- 打开CMD,切换到
javaDb数据库所在的目录(即Java程序运行的工作目录):cd D:\myProject - 从该目录启动IJ工具(需指定
derbyrun.jar的相对路径):java -jar libs/derbyrun.jar ij - 执行连接命令即可找到数据库:
connect 'jdbc:derby:javaDb';
方案3:修改Java代码使用绝对路径创建数据库
如果希望数据库固定在某个位置,直接在代码中指定绝对路径,这样无论程序在哪运行,数据库位置都保持固定:
public class Main{ public static void main(String[] args) { try { // 替换为你指定的数据库绝对路径 DriverManager.getConnection("jdbc:derby:D:/myDatabases/javaDb;create=true"); } catch (SQLException e){ e.printStackTrace(); } } }
之后在IJ中直接使用该绝对路径连接即可。
内容的提问来源于stack exchange,提问作者JamesB
相关产品推荐
相关产品推荐

