-
关于Java连接Oracle数据库的。5
源码:import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/**
* @author zhuyefeng
*
*/
public class ora {
public static void main(String[] args){
Connection conn = null;
Statement stmt = null;
ResultSet res = null;
int ret;
String sql = null;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:8086:Xe",
"yfzhu","yfzhu");
stmt = conn.createStatement();
sql = "select * from a";
ret = stmt.executeUpdate(sql);
} catch (ClassNotFoundException se) {
// TODO: handle exception
se.printStackTrace();
}
catch (SQLException e) {
// TODO: handle exception
e.printStackTrace();
}
}
}
出错情况:
java.sql.SQLException: Io 异常: Got minus one from a read call
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:255)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:387)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:414)
at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:165)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at www.zjut.jdbc.ora.main(ora.java:28)
问题补充:
谢谢大家的回答,还是不行阿,
ResultSet res;
res = stmt.executeQuery(sql);
我试过了,端口我是改过的,由8080改为8086的,也有那个表a的。还有数据库也是运行的。
问题补充:
SQL> select * from a;
ID FNAME LNAME
-- ---------- ----------
01 yf zhu
问题补充:
BANNER
----------------------------------------------------------------
Oracle Database 10g Express Edition Release 10.2.0.1.0 - Product
PL/SQL Release 10.2.0.1.0 - Production
CORE 10.2.0.1.0 Production
TNS for Linux: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production
问题补充:
java.sql.SQLException: Io 异常: Got minus one from a read call
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:334)
at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:418)
at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java:521)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:325)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at oracle.Oracle.main(Oracle.java:30)2009年4月14日 01:03
31个答案 按时间排序 按投票排序
-
采纳的答案
1,端口,
conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:8086:Xe",
"yfzhu","yfzhu");
你确信是8086?不是1521?
2,ip,
查看listerner日志,看登陆数据库时有无一下错误
TNS-12546: TNS:permission denied
TNS-12560: TNS:protocol adapter error
TNS-00516: Permission denied
查看登陆ip,是否在sqlnet.ora中,如果不再加入后重启listerner服务2009年4月14日 09:01
-
更正一下:
Connection conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521/XE",user,pwd);
2009年4月17日 13:23
-
看输出的异常信息,显然是获取数据库连结时出现的错误。
跟后面的语句、表中有没有哪个表都没有什么关系。
所以,还是建议检查一下你的URL连结参数。
我记着我用的都是这样的形式:
Connection conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521/XE");
XE是快捷版的实例名,如果用的不是快捷版换成相应的实例名。
2009年4月17日 13:22
-
1,端口,
conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:8086:Xe",
"yfzhu","yfzhu");
你确信是8086?不是1521?
oracle默认15212009年4月16日 18:15
-
第3种可能的办法
sqlnet.ora文件中
TCP.VALIDNODE_CHECKING=YES
将它改成
TCP.VALIDNODE_CHECKING=NO2009年4月16日 09:17
-
帮你在网上搜了些资料:
针对:Got minus one from a read call
可能行的解决办法:
1.认为该问题是因为数据库连接池满了,解决办法是扩数据库连接池
2.
今天paidmail数据库负责人问我一个问题:
java.sql.SQLException: Io 异常:Got minus one from a read call
网上查了半天,有人遇到过这个问题,但是没有解决方案。后来上了metalink,搜索后找到这篇
https://metalink.oracle.com/metalink/plsql/f?p=130:14:11630255784642420701::::p14_database_id,p14_docid,p14_show_header,p14_show_help,p14_black_frame,p14_font:NOT,284090.1,1,1,1,helvetica
查看listerner日志,果然发现登陆时候有如下错误:
TNS-12546: TNS:permission denied
TNS-12560: TNS:protocol adapter error
TNS-00516: Permission denied
和产品负责人确认登陆ip,发现果然不在sqlnet.ora中,加入后重启listerner,一切正常!
原文出处:http://zhaizhenxing.blog.51cto.com/643480/134864
2009年4月16日 09:14
-
实话点说,这问题确实不该问,犯了这错先给点耐心自己去解决,是连接?是配置?还是SQL连接语句问题?最好的解决办法莫过于自己先想办法解决。。费了吃奶的力还搞不定就来问问。。。楼上S已经正解啦!
2009年4月15日 23:37
-
1.程序错误在getConnection
因此,跟executeUpdate是没有关系的。虽然这个会在后面造成错误。
2.sqlplus / as sysdba
select * from v$version
确定一下oracle的版本先。
3.看一下你的oracle driver包是从哪里装载的。
通常是ojdbc14.jar
解压一下,看看描述文件中的版本是否跟step 2看到的一致。
4.不一致,则替换一下。
一致的话,看看listener.log/alert_sid.log有没有什么可以信息(ora-xx)
5.localhost换上ip看看。2009年4月15日 22:31
-
1. 请确定你的 a表已经存在;
2. 请确定你的数据库服务已启动;
3. 查询操作请使用:stmt.executeQuery(sql); 方法;
4. 更新操作请使用:stmt.executeUpdate(sql); 方法;
5. 数据库的相关操作 请查看 J2SE 中 JDBC 部分。2009年4月15日 15:24
-
ret = stmt.executeUpdate(sql); 应该改为res = stmt.executeQuery(sql);
2009年4月15日 11:35
-
dabing013 写道ret = stmt.executeUpdate(sql);
改为res = stmt.executeUpdate(sql); 试试
难道还要试么?
感觉你自己才需要试
枫叶29 写道stmt = conn.createStatement(); sql = "select * from a"; ret = stmt.executeUpdate(sql);
java.sql.SQLException: Io 异常: Got minus one from a read call
2009年4月14日 20:04
-
程序的错误大家都指出来了,这样的错误怎么能犯呢。
rs = stmt.execute(sql);或者 rs = stmt.executeQuery(sql);2009年4月14日 13:29
-
Got minus one from a read call
返回一个负数怎么可以啊
res=stmt.executeQuery(sql);
祝你成功2009年4月14日 11:39
-
你用的Select语句,只是查询,根本都没有update,所以用下面是对的
ret = stmt.executeQuery(sql);2009年4月14日 11:22
-
jdbc连接有三种通道方式:
状态通道:statement
预通道:prepareStatement
过程通道:prepareCall
你用statement.executeUpdate()方法只对修改过的对象有效比如新增、修改、删除
而查询可以有2种
1是 statement.executeQuery(sql)
2是 statement.execute(sql); 这种对查询、新增、修改、删除都有效2009年4月14日 10:05
-
1、ret = stmt.executeUpdate(sql); 改成ret = stmt.execute(sql)返回值为boolean,或者ret=stmt.executeQuery(sql)返回值为结果集
2、却认orcal的端口是8086,默认是15212009年4月14日 09:33
-
stmt = conn.createStatement();
sql = "select * from a";
//这是查询语句,怎么会用update
//ret = stmt.executeUpdate(sql);
ret = stmt.executeQuery(sql);
读读api文档
int executeUpdate(String sql)
throws SQLException执行给定 SQL 语句,该语句可能为 INSERT、UPDATE 或 DELETE 语句,或者不返回任何内容的 SQL 语句(如 SQL DDL 语句)。
参数:
sql - SQL INSERT、UPDATE 或 DELETE 语句,或者不返回任何内容的 SQL 语句
返回:
INSERT、UPDATE 或 DELETE 语句的行计数;或者 0,表示不返回任何内容的 SQL 语句
executeQuery
ResultSet executeQuery(String sql)
throws SQLException执行给定的 SQL 语句,该语句返回单个 ResultSet 对象。
参数:
sql - 要发送给数据库的 SQL 语句,通常为静态 SQL SELECT 语句
返回:
包含给定查询所生成数据的 ResultSet 对象;永远不能为 null
2009年4月14日 08:25
-
ret = stmt.executeUpdate(sql);
改为res = stmt.executeUpdate(sql); 试试2009年4月14日 02:31
相关推荐
Java连接Oracle数据库主要依赖于两种方法:JDBC和SQLJ。这两种方法都是Oracle8i及其后续版本中为Java开发者提供的数据库交互方式。 JDBC(Java Database Connectivity)是一种标准的Java API,它允许Java应用程序...
Java连接Oracle数据库主要依赖于JDBC(Java Database Connectivity)技术,这是Java平台中用于与各种数据库进行交互的一套标准API。Oracle公司提供了JDBC驱动,使得Java程序能够方便地访问Oracle数据库。在Java中...
java连接oracle数据库驱动器java连接oracle数据库驱动器java连接oracle数据库驱动器java连接oracle数据库驱动器java连接oracle数据库驱动器java连接oracle数据库驱动器java连接oracle数据库驱动器java连接oracle...
### 使用Java连接Oracle数据库 #### 一、简介与准备工作 在进行Java程序开发时,经常需要与数据库进行交互。Oracle数据库作为业界广泛使用的数据库之一,掌握如何使用Java连接Oracle数据库是一项重要的技能。本文...
java连接oracle数据库代码
总的来说,这个Java连接Oracle数据库实现成绩查询的课程设计涵盖了数据库设计、JDBC编程、面向对象设计、权限控制等多个IT领域的知识,是学习和实践数据库应用开发的良好实例。通过这个项目,开发者不仅能提升数据库...
本文主要探讨的是Java连接Oracle数据库的方法,包括JDBC和SQLJ,以及Oracle JDBC驱动的三种类型。 首先,Java与Oracle的接口使得在数据库中运行Java成为可能。Oracle8i引入了这一特性,允许开发者在应用程序中利用...
本实例将详细介绍如何使用Java连接Oracle数据库,并提供所需的jar文件——`classes14.jar`。 首先,为了在Java中与Oracle数据库建立连接,我们需要引入Oracle的JDBC驱动程序。`classes14.jar`就是Oracle JDBC驱动的...
本项目“JAVA 连接oracle数据库工程”将详细阐述如何使用Java在MyEclipse环境下连接到Oracle数据库。 首先,我们需要理解Java与Oracle数据库之间的连接基础。Java通过JDBC(Java Database Connectivity)API与各种...
### JAVA 使用数据库连接池连接Oracle数据库全代码解析 #### 一、概述 本文将详细介绍如何在Java项目中使用Apache DBCP(Database Connection Pool)来连接Oracle数据库,并提供完整的示例代码。通过这种方式,我们...
Java连接Oracle数据库的过程中,JDBC(Java Database Connectivity)扮演了至关重要的角色。JDBC是Java平台的一个标准API,它允许Java程序与各种数据库进行交互,包括Oracle。在本压缩包中,提供了Java连接Oracle...
在Java编程中,连接Oracle数据库并执行...总的来说,Java连接Oracle数据库并进行查询涉及到JDBC API的使用,包括加载驱动、建立连接、执行SQL和处理结果。理解这些步骤和概念对于任何Java开发者来说都是基础且重要的。
总结来说,ojdbc8.jar是Java连接Oracle数据库的关键组件,配合正确的配置和使用,可以实现高效、稳定的数据库操作。同时,考虑到字符集支持,`orai18n.jar`也可能成为项目中的重要部分,特别是处理多语言数据时。...
Java使用JDBC(Java Database Connectivity)来连接Oracle数据库是一个常见的任务,它允许Java应用程序与各种数据库进行交互。在本场景中,`ojdbc6.jar`是Oracle提供的JDBC驱动程序,用于建立Java应用程序与Oracle...
本文将详细介绍如何使用Java连接Oracle数据库以及所需的JAR文件。 首先,Oracle提供了两种类型的JDBC驱动程序: 1. ** Thin Driver (纯Java驱动)**:也称为类型4驱动,它是一个完全用Java编写的轻量级驱动,不需要...
java连接oracle数据库方法及测试,本人自己编写的简单方法适合于初学者!!
本文将深入探讨如何使用Java连接Oracle数据库,以及如何处理所需的驱动包。 首先,Java Database Connectivity (JDBC) 是Java平台的标准API,用于与各种数据库进行通信。它为开发人员提供了一组接口和类,通过这些...
Java classes when using the JDBC Thin and OCI client-side driver - with Java 7.0 VM. ojdbc6.jar Java classes when using the JDBC Thin and OCI client-side driver - with Java 6.0 VM. ojdbc5.jar Java ...
首先,在连接 Oracle 数据库之前,需要在客户端机器上安装 Oracle 的客户端软件,唯一的例外就是 Java 连接数据库的时候,可以用 JDBC thin 模式,不用装 Oracle 的客户端软件。如果你已经安装了 Oracle 数据库,...
本文将详细介绍如何使用Java连接Oracle数据库,以及涉及的关键jar文件。 首先,Oracle的JDBC驱动分为两种类型: Thin驱动 和 Thick驱动。"Thin"驱动是一个纯Java实现,不依赖于Oracle客户端,而"Thick"驱动则需要...