如何在SpringBoot项目中使用Oracle11g数据库

网友投稿 1813 2023-01-12

如何在SpringBoot项目中使用Oracle11g数据库

如何在SpringBoot项目中使用Oracle11g数据库

在SpringBoot项目中使用Oracle11g数据库

具体步骤如下:

1:-ojdbc6.jar ,随便放个英文目录位置就好

2:命令行下输入下行,注意最后-Dfile 为自己的-目录

mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11.2.0.1.0 -Dpackaging=jar -Dfile=H:\eclpise-workspace\ojdbc6.jar

3:在项目的pom文件中引入下面依赖

com.oracle

ojdbc6

11.2.0.1.0



4:在项目的配置文件中写数据库的连接信息,其中,假设Oracle连接ip为127.0.0.1,端口号为1521,数据库为database,用户名为username,密码为password

spring.datasource.driver-class-name=oracle.jdbc.OracleDriver

spring.datasource.url=jdbc:oracle:thin:@127.0.0.1:1521:database

spring.datasource.username=username

spring.datasource.password=password

完成!

SpringBoot 2.0连接Oracle 11g遇到的问题

基本配置信息:

驱动

oracle.jdbc.driver.OracleDriver

连接Url

jdbc:oracle:thin:@192.168.112.129:1521:orcl

用户

System

密码

Aa123456

添加驱动包:

这里添加的是ojdbc6包,因为之前在Davinci系统使用ojdbc14时报错了,我使用的Jdk1.8的版本。

ojdbc6.jar比ojdbc14.jar的版本高得多,因为里面的6是指支持jdk1.6 ,而14是指支持jdk1.4。

com.oracle.database.jdbc

ojdbc6

11.2.0.4

创建IDatabasePlatform时出现报错

Constructor extends IDatabasePlatform> construtor = clazz.getConstructor(DataSource.class, SqlTemplateSettings.class);

IDatabasePlatform platform = construtor.newInstance(dataSource, settings);

2020-10-13 16:57:47.929 INFO 13740 --- [manager-startup] o.j.metl.core.runtime.AgentRuntime : Deploying the 本地数据库 resource to the agent

resourceId:abc9cfbe-44cf-4e83-9eb1-325422db9dd8

sql:select AIRDATA,AIRTIME from MAI_DATA

projectVersionId:f55241fd-9564-4f6a-bd0d-95a50a729000

2020-10-13 16:57:49.150 INFO 13740 --- [manager-startup] o.j.metl.core.runtime.AgentRuntime : Deploying the Oracle数据源 resource to the agent

2020-10-13 16:57:49.308 INFO 13740 --- [nio-9999-exec-1] o.j.d.p.JdbcDatabasePlatformFactory : Detected database 'Oracle', version '11', protocol 'oracle'

2020-10-13 16:57:49,342 ERROR [GlobalExceptionHandler.java:47] : requestUrl=http://localhost:9999/open/api/ml/comp/handler?name=rdbmsreader&param=%7B%22sql%22:%22select+AIRDATA,AIRTIME+from+MAI_DATA%22,%22resourceId%22:%22abc9cfbe-44cf-4e83-9eb1-325422db9dd8%22,%22projectVersionId%22:%22f55241fd-9564-4f6a-bd0d-95a50a729000%22%7D

2020-10-13 16:57:49,343 ERROR [GlobalExceptionHandler.java:27] : System_error:requestId=1516430392

org.jumpmind.db.platform.DdlException: Could not create a platform of type Oracle

at org.jumpmind.db.platform.JdbcDatabasePlatformFactory.createNewPlatformInstance(JdbcDatabasePlatformFactory.java:166)

at org.jumpmind.metl.ui.views.design.RdbmsHandler.sqlExecute(RdbmsHandler.java:68)

at org.jumpmind.metl.ui.views.design.RdbmsHandler.execute(RdbmsHandler.java:42)

at org.jumpmind.metl.core.handler.HandlerService.execute(HandlerService.java:14)

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:498)

at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:338)

at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:197)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)

at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:136)

at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:124)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)

at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212)

at com.sun.proxy.$Proxy138.execute(Unknown Source)

at com.yak.api.mlengine.CompController.handler(CompController.java:53)

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:498)

at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209)

at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)

at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)

at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:870)

at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:776)

at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)

at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)

at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)

at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:978)

at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:870)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:635)

at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:855)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.filterAndRecordMetrics(WebMvcMetricsFilter.java:158)

at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.filterAndRecordMetrics(WebMvcMetricsFilter.java:126)

at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:111)

at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

at com.yak.platform.api.config.CORSFilter.doFilter(CORSFilter.java:71)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

at org.springframework.boot.actuate.web.trace.servlet.HttpTraceFilter.doFilterInternal(HttpTraceFilter.java:84)

at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)

at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

at org.apache.catalina.core.StandardWrapperVhttp://alve.invoke(StandardWrapperValve.java:199)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)

at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:496)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)

at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803)

at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)

at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:790)

at org.apache.tomcat.util-.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459)

at org.apache.tomcat.util-.SocketProcessorBase.run(SocketProcessorBase.java:49)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)

at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

at java.lang.Thread.run(Thread.java:748)

Caused by: java.lang.reflect.InvocationTargetException

at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)

at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)

at java.lang.reflect.Constructor.newInstance(Constructor.java:423)

at org.jumpmind.db.platform.JdbcDatabasePlatformFactory.createNewPlatformInstance(JdbcDatabasePlatformFactory.java:160)

... 71 more

Caused by: java.lang.NoClassDefFoundError: org/springframework/jdbc/support/lob/OracleLobHandler

at org.jumpmind.db.platform.oracle.OracleLobHandler.(OracleLobHandler.java:16)

at org.jumpmind.db.platform.oracle.OracleDatabasePlatform.createSqlTemplate(OracleDatabasePlatform.java:70)

at org.jumpmind.db.platform.oracle.OracleDatabasePlatform.createSqlTemplate(OracleDatabasePlatform.java:34)

at org.jumpmind.db.platform.AbstractJdbcDatabasePlatform.(AbstractJdbcDatabasePlatform.java:47)

at org.jumpmind.db.platform.oracle.OracleDatabasePlatform.(OracleDatabasePlatform.java:55)

... 76 more

Caused by: java.lang.ClassNotFoundException: org.springframework.jdbc.support.lob.OracleLobHandler

at java-.URLClassLoBBImhHJeader.findClass(URLClassLoader.java:381)

at java.lang.ClassLoader.loadClass(ClassLoader.java:424)

at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:338)

at java.lang.ClassLoader.loadClass(ClassLoader.java:357)

... 81 more

解决方案:

经查询,在初始化OracleJdbcSqlTemplate时,由于SpringBoot2.0中使用的是Spring-jdbc-5.0.4,出现了上面的报错信息。

代码之前使用spring4的spring-jdbc.jar就不会报错,因为spring 5之后就不存在OracleLobHandler这个类了。

由于不想修改代码,继续沿用老版本:

org.springframework

spring-jdbc

4.2.6.RELEASE

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:企业app开发商方案(app软件开发方案)
下一篇:小程序生态矩形阵(小程序矩阵是什么意思)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~