我已經創建了Apache Derby的一個序列:嵌入式的Apache Derby序列
CREATE SEQUENCE app.patient_id_seq AS BIGINT START WITH 100000 INCREMENT BY 1;
我得到在德比控制檯一個序列值 -
values NEXT VALUE FOR patient_id_seq;
但是,當我在Java代碼中使用它來獲取下一序列,它說 -
java.sql.SQLSyntaxErrorException:序 'APP.PATIENT_ID_SEQ' 並不 不存在
17:52:50291 ERROR [stderr的](AJP-本地主機/ 127.0.0.1:8009-1)在 org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(未知 源)
17:52:50301 ERROR [stderr的](AJP-本地主機/ 127.0.0.1:8009-1)在 org.apache.derby.impl.jdbc.Util.generateCsSQLException(未知來源)
17:52:50312 ERROR [stderr](ajp-localhost/127.0.0.1:8009-1)at org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown Source)
17:52:50323 ERROR [stderr的](AJP-本地主機/ 127.0.0.1:8009-1)在 org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(未知 源)
17 :52:50336 ERROR [stderr的](AJP-本地主機/ 127.0.0.1:8009-1)在 org.apache.derby.impl.jdbc.EmbedConnection.handleException(未知 源)
17:52:50347 ERROR [stderr](ajp-localhost/127.0.0.1:8009-1)at org.apache.derby.impl.jdbc.ConnectionChild.handleException(Unknown Source)
17:52:50357 ERROR [stderr的](AJP-本地主機/ 127.0.0.1:8009-1)。在 org.apache.derby.impl.jdbc.EmbedPreparedStatement(未知 源)
17時52分:50371 ERROR [stderr的](AJP-本地主機/ 127.0.0.1:8009-1)在 org.apache.derby.jdbc.InternalDriver.newEmbedPreparedStatement(未知 源)
17:52:50382 ERROR [標準錯誤] (ajp-localhost/127.0.0.1:8009-1)at org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(Unknown Source)
17:52:50397 ERROR [stderr的](AJP-本地主機/ 127.0.0.1:8009-1)在 org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(未知 源)
17時52 :50408 ERROR [stderr的](AJP-本地主機/ 127.0.0.1:8009-1)在 com.laput.dao.PatientDAO.savePatientDetails(PatientDAO.java:30)
17:52:50420 ERROR [標準錯誤] (AJP-本地主機/ 127.0.0.1:8009-1)在 com.laput.dao.PatientDAO.savePatientInfo(PatientDAO.java:21)
17:52:50431 ERROR [stderr的](AJP-本地主機/ 127.0 0.0。1:8009-1)at com.laput.controller.HospController.login(HospController.java:66)
17:52:50,443 ERROR [stderr](ajp-localhost/127.0.0.1:8009-1)在 sun.reflect.NativeMethodAccessorImpl.invoke0(本機方法)
17:52:50454 ERROR [stderr的](AJP-本地主機/ 127.0.0.1:8009-1)在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl的.java:57)
17:52:50465 ERROR [stderr的](AJP-本地主機/ 127.0.0.1:在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43 8009-1))
17:52:50477 ERROR [stderr的](AJP-本地主機/ 127.0.0.1:8009-1)在 java.lang.reflect.Method.invoke(Method.java:606)
17: 52:50491 ERROR [stderr的](AJP-本地主機/ 127.0.0.1:8009-1)在 org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:221)
17時52: 50,509 ERROR [stderr](ajp-localhost/127.0.0.1:8009-1)at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)
17:52:50,522 ERROR [stderr](ajp-localhost/127.0.0.1:8009-1)at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:114)
17:52:50535 ERROR [stderr的](AJP-本地主機/ 127.0.0.1:8009-1)在 org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java: 827)
17:52:在 org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter 8009-1):50552 ERROR [stderr的](AJP-本地主機/ 127.0.0.1。 java:738)
17:52:50566 ERROR [stderr的](AJP-本地主機/ 127.0.0.1:8009-1)在 org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
17:52:50579 ERROR [stderr的](AJP-本地主機/ 127.0.0.1:8009-1)在 org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:963)
17:52:50,591 ERROR [stderr](ajp-localhost/127.0.0.1:8009-1)at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897)
17:52:50606 ERROR [stderr的](AJP-本地主機/ 127.0.0.1:8009-1)在 org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
17: 52:50618 ERROR [stderr的](AJP-本地主機/ 127.0.0.1:8009-1)在 org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
17:52:50629 ERROR [標準錯誤](AJP-本地主機/ 127.0.0.1:8009-1)在 javax.servlet.http.HttpServlet.service(HttpServlet.java:754)
17:52:50640 ERROR [stderr的](ajp-本地主機/ 127.0.0。1:8009-1)在 org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
17:52:50657 ERROR [stderr的](AJP-本地主機/ 127.0.0.1:8009- 1)在 javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
17:52:在 組織8009-1):50669 ERROR [stderr的](AJP-本地主機/ 127.0.0.1。 apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:295)
17:52:在 org.apache.catalina:50685 ERROR [stderr的](8009-1 AJP-本地主機/ 127.0.0.1)。 core.ApplicationFilterChain.doFilter(A pplicationFilterChain.java:214)
17:52:50697 ERROR [stderr的](AJP-本地主機/ 127.0.0.1:8009-1)在 org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java: 230)
17:52:50711 ERROR [stderr的](AJP-本地主機/ 127.0.0.1:8009-1)在 org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:149)
17:52:50,723 ERROR [stderr](ajp-localhost/127.0.0.1:8009-1)at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:169)
17:52:50735 ERROR [stderr的](AJP-本地主機/ 127.0.0.1:8009-1)在 org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:145)
17 :52:50747 ERROR [stderr的](AJP-本地主機/ 127.0.0.1:8009-1)在 org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:97)
17:52:50767 ERROR [stderr的](AJP-本地主機/ 127.0.0.1:8009-1)在 org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:102)
17:52:50780 ERROR [stderr的在 org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:336)
17:(8009-1 AJP-本地主機/ 127.0.0.1):52:50792 ERROR [stderr的](ajp-本地主機/ 127.0.0.1:8009-1)在 org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:488)
17:52:50803 ERROR [stderr的](AJP-本地主機/ 127.0。 0.1:8009-1)在 org.apache.coyote.ajp.AjpProtocol $ AjpConnectionHandler.process(AjpProtocol.java:420)
17:52:50816 ERROR [stderr的](AJP-本地主機/ 127.0.0.1: 8009-1)at org.apache.tomcat.util.net.JIoEndpoint $ Worker.run (JIoEndpoint.java:920)
17:52:50827 ERROR [stderr的](AJP-本地主機/ 127.0.0.1:8009-1)在 java.lang.Thread.run(Thread.java:744)
17:52:50,838錯誤[stderr](ajp-localhost/127.0.0.1:8009-1) 錯誤:錯誤42X94:SEQUENCE'APP.PATIENT_ID_SEQ'不存在。
17:52:50,849錯誤[stderr](ajp-localhost/127.0.0.1:8009-1)at org.apache.derby.iapi.error.StandardException。newException(未知 源)
17:52:50864 ERROR [stderr的](AJP-本地主機/ 127.0.0.1:8009-1)在 org.apache.derby.iapi.error.StandardException.newException(未知 源)
17:52:50875 ERROR [stderr的](AJP-本地主機/ 127.0.0.1:8009-1)在 org.apache.derby.impl.sql.compile.NextSequenceNode.bindExpression(未知 源)
17:52:50,886 ERROR [stderr](ajp-localhost/127.0.0.1:8009-1)at org.apache.derby.impl.sql.compile.ValueNode.bindExpression(Unkno WN 源)
17:52:50898 ERROR [stderr的](AJP-本地主機/ 127.0.0.1:8009-1)在 org.apache.derby.impl.sql.compile.ResultColumn.bindExpression(未知 源)
17:52:50911 ERROR [stderr的](AJP-本地主機/ 127.0.0.1:8009-1)在 org.apache.derby.impl.sql.compile.ResultColumnList.bindExpressions(未知 源)
17:52:50924 ERROR [stderr的](AJP-本地主機/ 127.0.0.1:8009-1)在 org.apache.derby.impl.sql.compile.RowResultSetNode.bindExpressions(未知 源)
17:52:50935 ERROR [stderr的](AJP-本地主機/ 127.0.0.1:8009-1)在 org.apache.derby.impl.sql.compile.DMLStatementNode.bindExpressions(未知 源)
====================
我的Java代碼來獲得序列 -
ResultSet rs = conn.prepareStatement("values next value for patient_id_seq").executeQuery();
感謝, laput
[如何在Apache Derby中使用序列?(http://stackoverflow.com/questions/5729063/how-to-use-sequence-in-apache-derby) –
好了,重複的可能的複製問題可能並沒有多大幫助,因爲您已經使用正確的語法獲取序列值。你確定這個序列實際上是被創建的 - 而且你正在連接到正確的數據庫? –
您可以創建一個最小的測試用例來演示問題嗎? –