标签: ojdbc

在pom.xml中缺少com.oracle:ojdbc6:jar:11.2.0的工件

在pom.xml中缺少工件com.oracle

我正在使用Eclipse Luna并正在开发maven项目.当我在pom.xml中添加ojdbc jar的条目时,它在xml中给出了错误.由于groupId,artifactId和version都是正确的,我找不到任何问题的原因.

我该如何解决这个问题?

java artifact pom.xml maven ojdbc

29
推荐指数
2
解决办法
8万
查看次数

SQLException:没有为jdbc找到合适的驱动程序:oracle:thin:@ // localhost:1521/orcl

我正在尝试开发一个Oracle从eb服务类连接到数据库的Java EE应用程序,但我遇到了一个

SQLException: No suitable driver found for jdbc:oracle:thin:@//localhost:1521/orcl
Run Code Online (Sandbox Code Playgroud)

我有ojdbc6.jar类路径,我也在JBoss部署文件夹中验证了这一点.

我的申请EAR是由一个WAR.这有什么问题(根本原因)?请帮忙.

persistence.xml中的连接URL:

> "jdbc:oracle:thin:@//localhost:1521/orcl"
Run Code Online (Sandbox Code Playgroud)

堆栈跟踪:

16:06:32,687 WARN  [com.arjuna.ats.arjuna] (default-workqueue-1) ARJUNA012125: TwoPhaseCoordinator.beforeCompletion - failed for SynchronizationImple< 0:ffffc0a80106:-3e8b2d6f:5037338f:15, org.hibernate.engine.transaction.synchronization.internal.RegisteredSynchronization@4d1082 >: javax.persistence.PersistenceException: org.hibernate.exception.JDBCConnectionException: Could not open connection
    at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1361) [hibernate-entitymanager-4.0.1.Final.jar:4.0.1.Final]
    at 
Caused by: java.sql.SQLException: No suitable driver found for jdbc:oracle:thin:@//localhost:1521/orcl
    at java.sql.DriverManager.getConnection(DriverManager.java:602) [rt.jar:1.6.0_26]
    at java.sql.DriverManager.getConnection(DriverManager.java:154) [rt.jar:1.6.0_26]
    at org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl.getConnection(DriverManagerConnectionProviderImpl.java:173) [hibernate-core-4.0.1.Final.jar:4.0.1.Final]
    at org.hibernate.internal.AbstractSessionImpl$NonContextualJdbcConnectionAccess.obtainConnection(AbstractSessionImpl.java:276) [hibernate-core-4.0.1.Final.jar:4.0.1.Final]
    at org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.obtainConnection(LogicalConnectionImpl.java:297) [hibernate-core-4.0.1.Final.jar:4.0.1.Final]
    ... 70 more

16:06:32,796 ERROR [org.jboss.ejb3.invocation] (default-workqueue-1) JBAS014134: …
Run Code Online (Sandbox Code Playgroud)

java oracle jboss jdbc ojdbc

22
推荐指数
3
解决办法
14万
查看次数

ojdbc6.jar和ojdbc7.jar有什么区别?

ojdbc6.jar是否适用于JDK 1.7和Oracle 12c?我应该使用ojdbc7.jar吗?

先感谢您.

java ojdbc jdk1.7

16
推荐指数
1
解决办法
3万
查看次数

如何在Gradle项目中使用Oracle JDBC驱动程序

我是Gradle项目的新手,我有一个问题.我在互联网上搜索但我找不到我需要的东西,或者我不知道如何搜索它.首先,我要告诉你我的情况.我有一个Gradle项目,我希望将来使用jenkins执行几个自动化测试,但现在我想尝试Eclipse.我在/ lib目录中有oracle jdbc驱动程序,这是我的build.gradle

    apply plugin: 'java'

// In this section you declare where to find the dependencies of your project
repositories {
    jcenter()
    //mavenCentral()
}

// In this section you declare the dependencies for your production and test code
dependencies {
    compile 'org.slf4j:slf4j-api:1.7.21'
    compile 'org.seleniumhq.selenium:selenium-java:2.+'
    compile 'org.testng:testng:6.+'
    //compile 'com.oracle:ojdbc14:10.2.0.4.0'
    //testCompile 'net.sourceforge.jexcelapi:jxl:2.6.12'
    testCompile 'info.cukes:cucumber-core:1.+'
    testCompile 'info.cukes:cucumber-java:1.+'
    testCompile 'info.cukes:cucumber-junit:1.+'
    testCompile 'junit:junit:4.12'
}

repositories {
  flatDir(dir: 'libs')//, name: 'Local libs'
}

dependencies {
  compile name: 'ojdbc7'
}
Run Code Online (Sandbox Code Playgroud)

我想在一个类中使用这个jdbc驱动程序,但我不知道如何使用它.当我尝试使用Maven时,我使用了这种方式"import oracle.jdbc.driver.OracleDriver;" 但我想这对Gradle项目无效.你能帮我吗?提前致谢

jdbc gradle ojdbc build.gradle

16
推荐指数
3
解决办法
4万
查看次数

从oracle varchar2显示字符串的十六进制值?

我们遇到的问题是文本以某种不同的方式编码,但保存在表格的单个列中.很长的故事.在MySQL上,我可以"从表中选择十六进制(str)",然后我看到字符串的字节与我设置它们完全相同.

在Oracle上,我有一个以土耳其字符İ开头的字符串,它是Unicode字符0x0130"带有上面点的拉丁文大写字母".这是我的Unicode 2.0版书的印刷版.在UTF-8中,该字符为0xc4b0.

我们需要支持非常旧的客户端应用程序.他们会在"windows-1254"中将此文本发送给我们.我们过去只是闭上眼睛,存放它,然后再将其交还.现在我们需要Unicode,或者被赋予Unicode.

所以我有:

SQL> select id, name from table where that thing;

ID     NAME
------ ------------------------
746    Ý
Run Code Online (Sandbox Code Playgroud)

这是有道理的,因为"İ"在Windows-1254中是0xdd而wondows-1252中的0xdd是"Ý".我的终端大概设置为通常的windows-1252.

但:

SQL> select id, rawtohex(name) from table where that thing;

ID     RAWTOHEX(NAME)
------ ------------------------
746    C39D
Run Code Online (Sandbox Code Playgroud)

似乎没有相当于MySQL中的hex(name)函数.但我必须遗漏一些东西.我在这里错过了什么?

我的java代码必须使用我提供的utf8并保存utf8副本和windows-1252副本.java代码给了我:

bytes (utf8):  c4 b0
bytes (1254):  dd
Run Code Online (Sandbox Code Playgroud)

然而,当我保存它时,客户端没有得到正确的字符.当我试图查看Oracle实际存储的内容时,我会看到上面看到的垃圾.我知道C39D的来源.有什么建议?

我们在所有应用程序中都内置了ojdbc14.jar,并且我们正在连接到一个数据库,该数据库表示它是"Oracle Database 11g企业版版本11.2.0.2.0 - 64位生产".

oracle unicode turkish utf-8 ojdbc

13
推荐指数
2
解决办法
8万
查看次数

在oracle瘦驱动程序支持的tnsnames.ora中声明多个相同的服务

我一直在尝试从Oracle OCI驱动程序切换到瘦驱动程序,我tnsnames.ora通过添加-Doracle.net.tns_admin=/path到命令行获得了瘦驱动程序来拾取我的驱动程序.

但是,我们tnsnames.ora包含一次定义多个服务的行.它们看起来像这样:

NEWS2,NEWS,NEWSFX = (DESCRIPTION_LIST=...)
Run Code Online (Sandbox Code Playgroud)

OCI驱动程序似乎对这种格式感到满意,但瘦驱动程序并不了解那些是3个单独的服务NEWS2,NEWS并且NEWSFX.一些痛苦的调试会话显示,它认为这是一个名为的单一服务NEWS2,NEWS,NEWSFX.

可以理解,我们的DBA不太热衷于左右复制粘贴服务描述符,并且坚持认为我们找到了一种方法,可以在从OCI切换到精简之前为没有复制粘贴的同一服务描述符声明不同的名称.

使用oracle瘦驱动程序是否有正确支持的方法来实现这一目标?

PS:这是一个使用相同功能的人的帖子,并且还提到它显然没有文档:https://dbamarco.wordpress.com/2015/12/02/tnsnames-ora-secrets/

java oracle jdbc ojdbc

11
推荐指数
1
解决办法
134
查看次数

JDBC连接池上的Glassfish运行时异常

我刚刚完成了将我的oracle jar安装到glassfish库并ping使用正确的属性值成功连接和JDBC Pool到我的数据库.然后我选择它作为我的JDBC资源,之后我再次ping池,错误就是java.lang.RuntimeException在白色屏幕上打印这个类.

JDBC连接池错误

错误

2015-04-22T16:54:41.824+0800|SEVERE: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException while attempting to process a 'beforeCreate' event for 'event132'.
    at com.sun.jsftemplating.layout.descriptors.LayoutElementBase.dispatchHandlers(LayoutElementBase.java:422)
    at com.sun.jsftemplating.layout.descriptors.LayoutElementBase.dispatchHandlers(LayoutElementBase.java:394)
    at com.sun.jsftemplating.layout.descriptors.LayoutComponent.beforeCreate(LayoutComponent.java:348)
    at com.sun.jsftemplating.layout.descriptors.LayoutComponent.getChild(LayoutComponent.java:288)
    at com.sun.jsftemplating.layout.LayoutViewHandler.buildUIComponentTree(LayoutViewHandler.java:556)
    at com.sun.jsftemplating.layout.LayoutViewHandler.buildUIComponentTree(LayoutViewHandler.java:551)
    at com.sun.jsftemplating.layout.LayoutViewHandler.buildUIComponentTree(LayoutViewHandler.java:507)
    at com.sun.jsftemplating.layout.LayoutViewHandler.buildUIComponentTree(LayoutViewHandler.java:507)
    at com.sun.jsftemplating.layout.LayoutViewHandler.createView(LayoutViewHandler.java:255)
    at com.sun.faces.lifecycle.RestoreViewPhase.execute(RestoreViewPhase.java:205)
    at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
    at com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:121)
    at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:646)
    at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:344)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
    at com.sun.webui.jsf.util.UploadFilter.doFilter(UploadFilter.java:233)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:316)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160)
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734)
    at org.apache.catalina.core.StandardPipeline.doChainInvoke(StandardPipeline.java:678)
    at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:97)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174)
    at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:415)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:282)
    at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:459)
    at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:167) …
Run Code Online (Sandbox Code Playgroud)

glassfish ojdbc

9
推荐指数
0
解决办法
2135
查看次数

Java 8升级后无法获得数据库连接

我最近将应用程序从java 1.7升级到1.8.其余的库版本保持不变.升级后我收到以下错误:

DEBUG 2015-11-12 09:55:12 BasicResourcePool         An exception occurred while acquiring a poolable resource. Will retry.
java.lang.NullPointerException
    at oracle.net.jndi.JndiAttrs.getAttrs(JndiAttrs.java:207)
    at oracle.net.resolver.AddrResolution.<init>(AddrResolution.java:198)
    at oracle.net.ns.NSProtocol.connect(NSProtocol.java:219)
    at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1102)
    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:320)
    at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:546)
    at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:236)
    at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)
    at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:521)
    at com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:134)
    at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:182)
    at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:171)
    at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:137)
    at com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1014)
    at com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:32)
    at com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1810)
    at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)
Run Code Online (Sandbox Code Playgroud)

Hibernate配置:

<hibernate-configuration>
    <session-factory>
        <property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
        <property name="hibernate.connection.url">jdbc:oracle:thin:@ldaps://XXXX,cn=OOOO,dc=WWW</property>
        <property name="hibernate.connection.username">YYYY</property>
        <property name="hibernate.statement_cache.size">0</property>
        <property name="hibernate.connection.password">ZZZZZ</property>
        <property name="hibernate.c3p0.min_size">5</property>
        <property name="hibernate.c3p0.max_size">20</property>
        <property name="hibernate.c3p0.timeout">1800</property>
        <property name="hibernate.c3p0.max_statements">0</property>
        <property name="hibernate.default_schema">YYYY</property>
        <property name="hibernate.dialect">org.hibernate.dialect.OracleDialect</property>
        <property name="hibernate.show_sql">true</property>
    </session-factory>
</hibernate-configuration> …
Run Code Online (Sandbox Code Playgroud)

java hibernate jdbc ojdbc

9
推荐指数
1
解决办法
993
查看次数

如何使用默认的Tomcat连接池在Spring Boot 1.3.x中的DataSource上设置自定义连接属性

我需要设置一些特定的Oracle JDBC连接属性,以加快批处理INSERTs(defaultBatchValue)和质量SELECTs(defaultRowPrefetch).我得到了如何用DBCP实现这一目标的建议(感谢M. Deinum),但我想:

  • 保留默认的Tomcat jdbc连接池
  • 保留application.yml进行配置

我正在考虑spring.datasource.custom_connection_properties将来支持或类似的功能请求,并且由于这种尝试,这已经成为可能.我这样做是通过在创建DataSource时传递相关信息并操纵DataSource的创建,如下所示:

@Bean
public DataSource dataSource() {
    DataSource ds = null;

    try {
        Field props = DataSourceBuilder.class.getDeclaredField("properties");
        props.setAccessible(true);
        DataSourceBuilder builder = DataSourceBuilder.create();
        Map<String, String> properties = (Map<String, String>) props.get(builder);

        properties.put("defaultRowPrefetch", "1000");
        properties.put("defaultBatchValue", "1000");

        ds = builder.url( "jdbc:oracle:thin:@xyz:1521:abc" ).username( "ihave" ).password( "wonttell" ).build();

        properties = (Map<String, String>) props.get(builder);

        log.debug("properties after: {}", properties);
    } ... leaving out the catches ...
    }
    log.debug("We are using this …
Run Code Online (Sandbox Code Playgroud)

connection-pooling jdbctemplate ojdbc spring-boot tomcat-jdbc

9
推荐指数
2
解决办法
3万
查看次数

当oraclepki,osdt_cert和osdt_core在类路径上时,从Jav 6升级到Java 8后无法登录到Web应用程序

在从Java 1.6升级到Java 1.8之前,我们能够登录Web应用程序.升级后,我们无法登录其中一个Web应用程序,但我可以登录到另一个.他们使用相同的Spring-Security,OJDBC和Hibernate版本.

但是,如果我们从类路径中删除了以下jar,只要您不需要使用钱包登录,登录就会再次起作用:

  • com.oracle:oraclepki(12.1.0.2.0)
  • com.oracle:osdt_cert(12.1.0.2.0)
  • com.oracle:osdt_core(12.1.0.2.0)

在上层环境中删除它们不是一种选择,因为我们使用oracle钱包登录.

版本:

  • OJDBC6 12.1.0.2.0
  • SPRINGFRAMEWORK 3.0.7.RELEASE

调试日志

当我将日志级别设置为DEBUG时,我看到登录被拒绝作为anonomys用户,但在loggs之前它成功验证了登录名/密码.

认证成功:

DEBUG [org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter][http-bio-8080-exec-10] - Authentication success. Updating SecurityContextHolder to contain: org.springframework.security.authentication.UsernamePasswordAuthenticationToken@85ca488a: Principal: org.springframework.security.core.userdetails.User@f75cc3bd: Username: admin; Password: [PROTECTED]; Enabled: true; AccountNonExpired: true; credentialsNonExpired: true; AccountNonLocked: true; Granted Authorities: ADMIN,READ_ONLY; Credentials: [PROTECTED]; Authenticated: true; Details: org.springframework.security.web.authentication.WebAuthenticationDetails@2cd90: RemoteIpAddress: 0:0:0:0:0:0:0:1; SessionId: 383A7E52904236DDEA18E00864C0B94C; Granted Authorities: ADMIN, READ_ONLY
DEBUG [org.springframework.security.web.context.HttpSessionSecurityContextRepository][http-bio-8080-exec-10] - SecurityContext stored to HttpSession: 'org.springframework.security.core.context.SecurityContextImpl@85ca488a: Authentication: org.springframework.security.authentication.UsernamePasswordAuthenticationToken@85ca488a: Principal: org.springframework.security.core.userdetails.User@f75cc3bd: Username: admin; Password: [PROTECTED]; Enabled: true; AccountNonExpired: true; credentialsNonExpired: true; AccountNonLocked: …
Run Code Online (Sandbox Code Playgroud)

java spring-security ojdbc

9
推荐指数
1
解决办法
227
查看次数