代码如下:
import java.sql.*;
 
public class JDBCExample {
 public static void main(String[] args) {
  try{
   Class.forName("oracle.jdbc.driver.OracleDriver");
   String url = "jdbc:oracle:thin:@127.0.0.1:1521:lwborclsid";
   Connection conn = DriverManager.getConnection(url, "scott", "tiger");
   Statement stmt = conn.createStatement();
   ResultSet rs = stmt.executeQuery("select * from dept");
   while(rs.next()) {
    System.out.print("DeptNo:" + rs.getInt(1));
    System.out.print("/tDeptName:" + rs.getString(2));
    System.out.println("/tLOC:" + rs.getString(3));
   }
   rs.close();
   stmt.close();
   conn.close();
  }catch(ClassNotFoundException e){
   System.out.println("找不到指定的驱动程序类");
  }catch(SQLException e){
   e.printStackTrace();
  }
 }
}问题提示如下:
java.lang.ArrayIndexOutOfBoundsException: 0
at oracle.jdbc.driver.OracleSql.main(OracleSql.java:1661)

解决方案 »

  1.   

    数组越界了。if(rs!=null)
    {
    while(rs.next()) {
      System.out.print("DeptNo:" + rs.getInt(1));
      System.out.print("/tDeptName:" + rs.getString(2));
      System.out.println("/tLOC:" + rs.getString(3));
      }
    }可能你查询的表中没有数据导致的。
      

  2.   

    本张表是oracle自带的,有数据
      

  3.   

    这几可以改成while(rs.hasnext()) 
      

  4.   

    数组越界,肯定是while循环出问题。
      

  5.   

     while(rs.next()) {
      System.out.print("DeptNo:" + rs.getInt(0));
      System.out.print("/tDeptName:" + rs.getString(1));
      System.out.println("/tLOC:" + rs.getString(2));
      }
      

  6.   


    恩,我电脑oracle端口默认是1522
      

  7.   

    端口被占,怎么会抛java.lang.ArrayIndexOutOfBoundsException,奇怪
      

  8.   


    还有就是我“运行 配置”中的main类错了杯具啊
      

  9.   


    可以确定这样写肯定是对的,楼主用rs.next()肯定会导致数据出问题
      

  10.   

    支持lz说的,while(rs.next())要改成while(rs.hasnext()),前一个很容易出现溢出异常的。
      

  11.   

    奇怪  端口占用  怎么会出现数据越界了  
    用while(rs.hasnext())