廖常浩 2009-04-14 01:03
浏览 490
已采纳

关于Java连接Oracle数据库的。

源码: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.(PhysicalConnection.java:414)
at oracle.jdbc.driver.T4CConnection.(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)
[b]问题补充:[/b]
谢谢大家的回答,还是不行阿,
ResultSet res;
res = stmt.executeQuery(sql);
我试过了,端口我是改过的,由8080改为8086的,也有那个表a的。还有数据库也是运行的。
[b]问题补充:[/b]
SQL> select * from a;

ID FNAME LNAME


01 yf zhu

[b]问题补充:[/b]

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

[b]问题补充:[/b]
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.(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)

  • 写回答

31条回答 默认 最新

  • limon758 2009-04-14 09:01
    关注

    1,端口,
    conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:[color=red]8086[/color]: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服务

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(30条)

报告相同问题?

悬赏问题

  • ¥15 MATLAB怎么通过柱坐标变换画开口是圆形的旋转抛物面?
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题
  • ¥15 Visual Studio问题
  • ¥20 求一个html代码,有偿