Intellij上的德比 [英] Derby on Intellij

查看:142
本文介绍了Intellij上的德比的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在IntelliJ IDEA上设置一个derby数据库。我已经搜索了很多这个问题,但我找不到有用的答案。每次我尝试连接到derby数据库时,都会出现以下错误。

I want to setup a derby database on IntelliJ IDEA. I have searched a lot for this issue but I could not find a useful answer. Every time I try to connect to the derby database, I get the following error.

任何人都可以帮我解决这个问题吗?

Can anyone help me fix this issue?

java.sql.SQLException: Failed to create database 'C:/Users/Omar/IdeaProjects/untitled3', see the next exception for details.
  at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source)
  at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source)
  at org.apache.derby.impl.jdbc.Util.seeNextException(Unknown Source)
  at org.apache.derby.impl.jdbc.EmbedConnection.createDatabase(Unknown Source)
  at org.apache.derby.impl.jdbc.EmbedConnection.<init>(Unknown Source)
  at org.apache.derby.jdbc.InternalDriver.getNewEmbedConnection(Unknown Source)
  at org.apache.derby.jdbc.InternalDriver.connect(Unknown Source)
  at org.apache.derby.jdbc.InternalDriver.connect(Unknown Source)
  at org.apache.derby.jdbc.EmbeddedDriver.connect(Unknown Source)
  at com.intellij.database.remote.jdbc.impl.RemoteDriverImpl.connect(RemoteDriverImpl.java:27)
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  at java.lang.reflect.Method.invoke(Method.java:483)
  at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:323)
  at sun.rmi.transport.Transport$1.run(Transport.java:178)
  at sun.rmi.transport.Transport$1.run(Transport.java:175)
  at java.security.AccessController.doPrivileged(Native Method)
  at sun.rmi.transport.Transport.serviceCall(Transport.java:174)
  at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:557)
  at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:812)
  at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:671)
  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
  at java.lang.Thread.run(Thread.java:745)
  at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:276)
  at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:253)
  at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:162)
  at java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(RemoteObjectInvocationHandler.java:194)
  at java.rmi.server.RemoteObjectInvocationHandler.invoke(RemoteObjectInvocationHandler.java:148)
  at com.sun.proxy.$Proxy106.connect(Unknown Source)
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  at java.lang.reflect.Method.invoke(Method.java:483)
  at com.intellij.execution.rmi.RemoteUtil.invokeRemote(RemoteUtil.java:124)
  at com.intellij.execution.rmi.RemoteUtil.access$100(RemoteUtil.java:36)
  at com.intellij.execution.rmi.RemoteUtil$RemoteInvocationHandler.invoke(RemoteUtil.java:227)
  at com.sun.proxy.$Proxy108.connect(Unknown Source)
  at com.intellij.database.dataSource.LocalDataSource.getConnection(LocalDataSource.java:240)
  at com.intellij.database.dataSource.LocalDataSource.getConnection(LocalDataSource.java:208)
  at com.intellij.database.view.DatabaseRefactoringHandler$3.run(DatabaseRefactoringHandler.java:95)
  at com.intellij.openapi.progress.impl.ProgressManagerImpl$TaskRunnable.run(ProgressManagerImpl.java:621)
  at com.intellij.openapi.progress.impl.ProgressManagerImpl$3.run(ProgressManagerImpl.java:194)
  at com.intellij.openapi.progress.impl.ProgressManagerImpl.a(ProgressManagerImpl.java:281)
  at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:233)
  at com.intellij.openapi.progress.impl.ProgressManagerImpl.runProcess(ProgressManagerImpl.java:181)
  at com.intellij.openapi.progress.impl.ProgressManagerImpl$9.run(ProgressManagerImpl.java:530)
  at com.intellij.openapi.application.impl.ApplicationImpl$8.run(ApplicationImpl.java:406)
  at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
  at java.util.concurrent.FutureTask.run(FutureTask.java:266)
  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
  at java.lang.Thread.run(Thread.java:745)
  at org.jetbrains.ide.PooledThreadExecutor$1$1.run(PooledThreadExecutor.java:56)
Caused by: java.lang.RuntimeException: ERROR XJ041: Failed to create database 'C:/Users/Omar/IdeaProjects/untitled3', see the next exception for details.
  at org.apache.derby.iapi.error.StandardException.newException(Unknown Source)
  at org.apache.derby.impl.jdbc.SQLExceptionFactory.wrapArgsForTransportAcrossDRDA(Unknown Source)
  at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source)
  at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source)
  at org.apache.derby.impl.jdbc.Util.seeNextException(Unknown Source)
  at org.apache.derby.impl.jdbc.EmbedConnection.createDatabase(Unknown Source)
  at org.apache.derby.impl.jdbc.EmbedConnection.<init>(Unknown Source)
  at org.apache.derby.jdbc.InternalDriver.getNewEmbedConnection(Unknown Source)
  at org.apache.derby.jdbc.InternalDriver.connect(Unknown Source)
  at org.apache.derby.jdbc.InternalDriver.connect(Unknown Source)
  at org.apache.derby.jdbc.EmbeddedDriver.connect(Unknown Source)
  at com.intellij.database.remote.jdbc.impl.RemoteDriverImpl.connect(RemoteDriverImpl.java:27)
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  at java.lang.reflect.Method.invoke(Method.java:483)
  at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:323)
  at sun.rmi.transport.Transport$1.run(Transport.java:178)
  at sun.rmi.transport.Transport$1.run(Transport.java:175)
  at java.security.AccessController.doPrivileged(Native Method)
  at sun.rmi.transport.Transport.serviceCall(Transport.java:174)
  at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:557)
  at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:812)
  at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:671)
  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
  at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.RuntimeException: ERROR XBM0J: Directory C:\Users\Omar\IdeaProjects\untitled3 already exists.
  at org.apache.derby.iapi.error.StandardException.newException(Unknown Source)
  at org.apache.derby.iapi.error.StandardException.newException(Unknown Source)
  at org.apache.derby.impl.services.monitor.StorageFactoryService$10.run(Unknown Source)
  at java.security.AccessController.doPrivileged(Native Method)
  at org.apache.derby.impl.services.monitor.StorageFactoryService.createServiceRoot(Unknown Source)
  at org.apache.derby.impl.services.monitor.BaseMonitor.bootService(Unknown Source)
  at org.apache.derby.impl.services.monitor.BaseMonitor.createPersistentService(Unknown Source)
  at org.apache.derby.impl.services.monitor.FileMonitor.createPersistentService(Unknown Source)
  at org.apache.derby.iapi.services.monitor.Monitor.createPersistentService(Unknown Source)
  ... 22 more


推荐答案

我假设您要创建IntelliJ数据源。

I will assume that you want to create a IntelliJ Data Source.

这些是重新步骤:


  1. 转到Apache Derby安装bin目录(例如cd c:\derby\bin )。

  2. 启动Apache Derby(例如 startNetworkServer

  3. 打开IntelliJ Idea项目

  4. 转到数据库选项卡

  5. 点击+图标到新数据源。

  6. 选择德比远程

  7. 填写表格。这是我如何做到的一个例子:

  1. Go to your Apache Derby installation bin directory (e.g. cd c:\derby\bin).
  2. Start Apache Derby (e.g. startNetworkServer)
  3. Open IntelliJ Idea Project
  4. Go to Database Tab
  5. Click on the + icon to a new data source.
  6. Choose Derby Remote
  7. Fill in the form. This is an example of how I did it:


  • 主机:localhost

  • 端口:1527

  • 数据库:demo; create = true

  • 用户:admin

  • 密码:admin

  • Host: localhost
  • Port: 1527
  • Database: demo;create=true
  • User: admin
  • Password: admin

在我的情况下,URL如下所示:

The URL looks as follows in my case:

jdbc:derby:/ / localhost:1527 / demo; create = true

请注意使用create = true参数。这很重要,因为否则Derby不会自动创建您的数据库,这可能是导致您出现问题的原因。

Notice the use of the "create=true" parameter. This is important because otherwise Derby will not automatically create your database and that's probably what's causing your problem.

点击Apply按钮,然后点击Test Connection按钮就可以了。 Derby将创建您的数据库并连接到它。

Hit the Apply button and after that the Test Connection button and that's it. Derby will create you database and connect to it.

数据库将放在 DERBY_HOME / bin 目录中这是我们启动Derby服务器的地方。

The database will be placed in the DERBY_HOME/bin directory since this is the place where we started the Derby server.

这篇关于Intellij上的德比的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆