Oracle数据库JDBC连接问题与解决方案

版权申诉
1 下载量 137 浏览量 更新于2024-09-13 收藏 85KB PDF 举报
"本文主要汇总了使用JDBC连接Oracle数据库时遇到的各种问题及相应的解决方案,内容涉及Jbuilder连接Oracle数据库的注意事项、配置classpath、非XA方式连接配置、以及处理JDBC操作Oracle数据库时的异常问题。" 在Java开发中,JDBC(Java Database Connectivity)是一种标准接口,用于与各种类型的数据库进行通信。对于Oracle数据库,正确配置JDBC连接至关重要。在Jbuilder中连接Oracle 9i时,有几个关键点需要注意: 1. **JDBC驱动选择**:Oracle 8及以上版本通常推荐使用`classes12.jar`作为JDBC驱动。这个驱动文件包含了Oracle数据库与Java应用程序之间的桥梁,使得Java程序能够与Oracle数据库进行交互。 2. **环境配置**:确保Windows的`classpath`和Jbuilder的`Enterprise Setup`及`Configure Libraries`都正确设置了`classes12.jar`的路径。`classpath`的配置使得Java运行时环境能找到Oracle JDBC驱动,而Jbuilder的配置则保证了IDE能够识别并使用这个驱动。 3. **Database Pilot检查**:在Jbuilder的Database Pilot中,如果Oracle驱动显示为红色,表明驱动加载失败。此时,需要检查配置是否正确,包括URL设置。新建URL格式一般为`jdbc:oracle:thin:@(yourhostname):1521:(yoursid)`,其中`(yourhostname)`是Oracle服务器的主机名,`1521`是默认的监听端口,`(yoursid)`是Oracle服务标识符。 4. **非XA连接配置**:在Windows下配置非XA(非分布式事务)方式连接Oracle时,注意区分分号`;'`和冒号`:`,并且在一行内列出所有库文件,用空格隔开。`ORACLE_HOME`环境变量的设置也很关键,如果没有设置,应使用绝对路径。 5. **处理JDBC异常**:在使用JDBC操作Oracle数据库时,可能会遇到`java.sql.SQLException: IO异常,不在流模式下`的问题。这通常是因为使用了错误的Statement类型,建议使用Oracle提供的`OracleStatement`而非通用的`Statement`。此外,如果尝试在已有的连接上设置自动提交失败,应该关闭该连接并重新建立一个新的连接。 以上内容涵盖了JDBC连接Oracle数据库的基础和常见问题,通过理解和应用这些知识,开发者可以更有效地排查和解决在数据库连接中遇到的问题。对于开发和维护Java应用与Oracle数据库的交互,这些都是不可或缺的技巧和经验。
2020-04-28 上传
ojdbc14-10.2.0.2.0.jar META-INF/MANIFEST.MF oracle.core.lmx.CoreException.class oracle.core.lmx.LmxRepConversion.class oracle.core.lvf.VersionMgr.class oracle.jdbc.Const.class oracle.jdbc.OracleCallableStatement.class oracle.jdbc.OracleConnection.class oracle.jdbc.OracleConnectionWrapper.class oracle.jdbc.OracleDatabaseMetaData.class oracle.jdbc.OracleDriver.class oracle.jdbc.OracleOCIFailover.class oracle.jdbc.OracleParameterMetaData.class oracle.jdbc.OraclePreparedStatement.class oracle.jdbc.OracleResultSet.class oracle.jdbc.OracleResultSetCache.class oracle.jdbc.OracleResultSetMetaData.class oracle.jdbc.OracleSavepoint.class oracle.jdbc.OracleStatement.class oracle.jdbc.OracleTypes.class oracle.jdbc.StructMetaData.class oracle.jdbc.connector.OracleConnectionManager.class oracle.jdbc.connector.OracleConnectionRequestInfo.class oracle.jdbc.connector.OracleLocalTransaction.class oracle.jdbc.connector.OracleManagedConnection.class oracle.jdbc.connector.OracleManagedConnectionFactory.class oracle.jdbc.connector.OracleManagedConnectionMetaData.class oracle.jdbc.connector.OracleResourceAdapter.class oracle.jdbc.driver.Accessor.class oracle.jdbc.driver.ArrayDataResultSet.class oracle.jdbc.driver.ArrayLocatorResultSet.class oracle.jdbc.driver.AutoKeyInfo.class oracle.jdbc.driver.BINARY_DOUBLEBinder.class oracle.jdbc.driver.BINARY_DOUBLECopyingBinder.class oracle.jdbc.driver.BINARY_DOUBLENullBinder.class oracle.jdbc.driver.BINARY_FLOATBinder.class oracle.jdbc.driver.BINARY_FLOATCopyingBinder.class oracle.jdbc.driver.BINARY_FLOATNullBinder.class oracle.jdbc.driver.BaseResultSet.class oracle.jdbc.driver.BfileAccessor.class oracle.jdbc.driver.BfileBinder.class oracle.jdbc.driver.BfileCopyingBinder.class oracle.jdbc.driver.BfileNullBinder.class oracle.jdbc.driver.BigDecimalBinder.class oracle.jdbc.driver.BinaryDoubleAccessor.class oracle.jdbc.driver.BinaryDoubleBinder.class oracle.jdbc.driver.BinaryDoubleCopyingBinder.class oracle.jdbc.driver.BinaryDoubleNullBinder.class oracle.jdbc.driver.BinaryFloatAccessor.class oracle.jdbc.driver.BinaryFloatBinder.class oracle.jdbc.driver.BinaryFloatCopyingBinder.class oracle.jdbc.driver.BinaryFloatNullBinder.class oracle.jdbc.driver.Binder.class oracle.jdbc.driver.BlobAccessor.class oracle.jdbc.driver.BlobBinder.class oracle.jdbc.driver.BlobCopyingBinder.class oracle.jdbc.driver.BlobNullBinder.class oracle.jdbc.driver.BooleanBinder.class oracle.jdbc.driver.ByteArrayKey.class oracle.jdbc.driver.ByteBinder.class oracle.jdbc.driver.ByteCopyingBinder.class oracle.jdbc.driver.CharAccessor.class oracle.jdbc.driver.CharCommonAccessor.class oracle.jdbc.driver.CharCopyingBinder.class oracle.jdbc.driver.ClobAccessor.class oracle.jdbc.driver.ClobBinder.class oracle.jdbc.driver.ClobCopyingBinder.class oracle.jdbc.driver.ClobNullBinder.class oracle.jdbc.driver.ClosedConnection.class oracle.jdbc.driver.Const.class oracle.jdbc.driver.CopiedByteBinder.class oracle.jdbc.driver.CopiedCharBinder.class oracle.jdbc.driver.CopiedNullBinder.class oracle.jdbc.driver.DBConversion.class oracle.jdbc.driver.DMSFactory.class oracle.jdbc.driver.DatabaseError.class oracle.jdbc.driver.DateAccessor.class oracle.jdbc.driver.DateBinder.class oracle.jdbc.driver.DateCommonBinder.class oracle.jdbc.driver.DateCopyingBinder.class oracle.jdbc.driver.DateNullBinder.class oracle.jdbc.driver.DateTimeCommonAccessor.class oracle.jdbc.driver.DatumBinder.class oracle.jdbc.driver.DoubleBinder.class oracle.jdbc.driver.FDBigInt.class oracle.jdbc.driver.FixedCHARBinder.class oracle.jdbc.driver.FixedCHARCopyingBinder.class oracle.jdbc.driver.FixedCHARNullBinder.class oracle.jdbc.driver.FloatBinder.class oracle.jdbc.driver.IntBinder.class oracle.jdbc.driver.IntervalDSBinder.class oracle.jdbc.driver.IntervalDSCopyingBinder.class oracle.jdbc.driver.IntervalDSNullBinder.class oracle.jdbc.driver.IntervalYMBinder.class oracle.jdbc.driver.IntervalYMCopyingBinder.class oracle.jdbc.driver.IntervalYMNullBinder.class oracle.jdbc.driver.IntervaldsAccessor.class oracle.jdbc.driver.IntervalymAccessor.class oracle.jdbc.driver.LRUStatementCache.class oracle.jdbc.driver.LittleEndianRowidBinder.class oracle.jdbc.driver.LittleEndianSetCHARBinder.class oracle.jdbc.driver.LogicalConnection.class oracle.jdbc.driver.LongAccessor.class oracle.jdbc.driver.LongBinder.class oracle.jdbc.driver.LongRawAccessor.class oracle.jdbc.driver.LongRawStreamBinder.class oracle.jdbc.driver.LongStreamBinder.class oracle.jdbc.driver.Message.class oracle.jdbc.driver.Message11.class oracle.jdbc.driver.NamedTypeAccessor.class oracle.jdbc.driver.NamedTypeBinder.class oracle.jdbc.driver.NamedTypeCopyingBinder.class oracle.jdbc.driver.NamedTypeNullBinder.class oracle.jdbc.driver.Namespace.class oracle.jdbc.driver.NumberAccessor.class oracle.jdbc.driver.NumberCommonAccessor.class oracle.jdbc.driver.OracleBlobInputStream.class oracle.jdbc.driver.OracleBlobOutputStream.class oracle.jdbc.driver.OracleBufferedStream.class oracle.jdbc.driver.OracleCallableStatement.class oracle.jdbc.