package web;
import java.sql.*;public class LinkOracle {
  public LinkOracle() {
  }
  public static Connection getConnection() throws SQLException {
    try {
      Class.forName("oracle.jdbc.driver.OracleDriver");
    }
    catch (ClassNotFoundException e) {
      System.out.println("数据库驱动程序没有找到。");
    }
    return DriverManager.getConnection(
        "jdbc:oracle:thin:@localhost:1521:yuhl", "admin", "yu");
  }
}package web;import java.sql.*;
import java.util.*;public class SQLQuery {
  public static ArrayList query(String table, String[] select,
                                String[] condition) {
    ArrayList result = new ArrayList();
    Connection conn = null;
    Statement stmt = null;
    ResultSet rs = null;
    try {
      conn = LinkOracle.getConnection();
      stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
                                  ResultSet.CONCUR_UPDATABLE);
      String sql = "select ";
      for (int i = 0; i < select.length - 1; i++) {
        sql += select[i] + ",";
      }
      sql += select[select.length - 1] + " from " + table + " where ";
      for (int i = 0; i < condition.length - 1; i++) {
        sql += condition[i] + " and ";
      }
      sql += condition[condition.length - 1];
      rs = stmt.executeQuery(sql);
      ResultSetMetaData rsmd = rs.getMetaData();
      int numcols = rsmd.getColumnCount();
      numberCols = numcols;
      while (rs.next()) {
        for (int i = 1; i <= numcols; i++) {
          if (rs.getObject(i) != null) {
            result.add(rs.getObject(i));
          }
        }
      }
    }
    catch (SQLException ex) {
    }
    finally {
      try {
        if (rs != null) {
          rs.close();
        }
      }
      catch (SQLException er) {
        System.out.println("DBInsertBean: Close ResultSet Fail.");
      }
      try {
        if (stmt != null) {
          stmt.close();
        }
      }
      catch (SQLException es) {
        System.out.println("DBInsertBean: Close Statement Fail.");
      }
      try {
        if (conn != null) {
          conn.close();
        }
      }
      catch (SQLException e) {
        System.out.println("DBInsertBean: Close Connection Fail.");
      }      return result;
    }
  }  public SQLQuery() {
  }  public static int numberCols = 0;
  public static ArrayList lablesResult(String sql) {
    ArrayList result = new ArrayList();
    Connection conn = null;
    Statement stmt = null;
    ResultSet rs = null;
    try {
      conn = LinkOracle.getConnection();
      stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
                                  ResultSet.CONCUR_UPDATABLE);
      rs = stmt.executeQuery(sql);
      ResultSetMetaData rsmd = rs.getMetaData();
      int numcols = rsmd.getColumnCount();
      while (rs.next()) {
        for (int i = 1; i <= numcols; i++) {
          result.add(rsmd.getColumnLabel(i));
        }
      }
      rs.close();
      stmt.close();
      conn.close();
    }
    catch (SQLException ex) {
    }
    finally {
      try {
        if (rs != null) {
          rs.close();
        }
      }
      catch (SQLException er) {
        System.out.println("DBInsertBean: Close ResultSet Fail.");
      }
      try {
        if (stmt != null) {
          stmt.close();
        }
      }
      catch (SQLException es) {
        System.out.println("DBInsertBean: Close Statement Fail.");
      }
      try {
        if (conn != null) {
          conn.close();
        }
      }
      catch (SQLException e) {
        System.out.println("DBInsertBean: Close Connection Fail.");
      }
    }
    return result;
  }  public static ArrayList queryResult(String sql) {
    ArrayList result = new ArrayList();
    Connection conn = null;
    Statement stmt = null;
    ResultSet rs = null;
    try {
      conn = LinkOracle.getConnection();
      stmt = conn.createStatement();
      rs = stmt.executeQuery(sql);
      ResultSetMetaData rsmd = rs.getMetaData();
      int numcols = rsmd.getColumnCount();
      numberCols = numcols;
      while (rs.next()) {
        for (int i = 1; i <= numcols; i++) {
          if (rs.getObject(i) != null) {
            result.add(rs.getObject(i));
          }
        }
      }
    }
    catch (SQLException ex) {
    }
    finally {
      try {
        if (rs != null) {
          rs.close();
        }
      }
      catch (SQLException er) {
        System.out.println("DBInsertBean: Close ResultSet Fail.");
      }
      try {
        if (stmt != null) {
          stmt.close();
        }
      }
      catch (SQLException es) {
        System.out.println("DBInsertBean: Close Statement Fail.");
      }
      try {
        if (conn != null) {
          conn.close();
        }
      }
      catch (SQLException e) {
        System.out.println("DBInsertBean: Close Connection Fail.");
      }
    }
    return result;
  }
}

解决方案 »

  1.   

    Connection refused(DESCRIPTION=(TMP=)(VSNNUM=153092352)(ERR=12505)(ERROR_STACK=(ERROR=(CODE=12505)(EMFI=4))))请确定你能连接上数据库,用客户端orodbc连接试试另外,把下面的代码贴出来
            at db.odbcjdbc.insuserAndMima(odbcjdbc.java:64)
            at db.odbcjdbc.main(odbcjdbc.java:102)
      

  2.   

    jdbc的程序如下:
    先装载Class.forName("oracle.jdbc.driver.OracleDriver");
    在连接DriverManager.getConnection(        "jdbc:oracle:thin:@localhost:1521:caoying", "admin", "123");
    我想问一下此异常是不是我建的oracle数据库不对(但是我用控制台启动数据库都成功了),我建的库名字我是caoying,但是从控制台看是caoying.net。是不是我连接的数据库名字都不对,我是第一次建oracle库,所以不清楚。
    还有oracle怎么用客户端相连。
    能不能简单介绍一下怎么建立一个只有一个表(两个字段:名字,密码)的oracle建库过程
    谢谢各位!
      

  3.   

    忘了告诉大家了。异常是出在与数据库连接的时候
    DriverManager.getConnection(        "jdbc:oracle:thin:@localhost:1521:caoying", "admin", "123");
      

  4.   

    用青蛙就可以连上了
    TOAD
        选择完全安装。安装完就可以了,不选别的。
    注:在设置TOAD前,需要先设置Oracle的网络配置(Net Configuration Assistant),步骤如下:
            (1)选择“本地Net服务名配置”,下一步
            (2)选择“重新配置”,下一步
            (3)选择要重新配置的服务名,不用改变,下一步
            (4)选择“Oracle8i或更高版本的数据库或服务”,下一步
            (5)填入服务名
    6)网络协议选择“TCP”,下一步
            (7)输入主机名,使用端口号保持不变
            (8)选择“是,进行测试”
            (9)测试失败,选择“更改登录”,输入数据库的用户名和密码
            (10)输入Net服务名,
            (11)是否配置另一个Net服务名,选择“否”,下一步,完成更改数据库的时候,只是需要修改oracle Enterprise manager console(独立)当更改数据库(修改数据库)的时候,需要修改D:\oracle\ora92\network\admin下的sqlnet.ora文件
    # SQLNET.ORA Network Configuration File: d:\oracle\ora92\network\admin\sqlnet.ora
    # Generated by Oracle configuration tools.NAMES.DEFAULT_DOMAIN = 。。
    #SQLNET.AUTHENTICATION_SERVICES= (NTS)(原来这行数据是没有#号的,加上#号
                注释掉这个问题就没事了)NAMES.DIRECTORY_PATH= (TNSNAMES, ONAMES, HOSTNAME)
      

  5.   

    用青蛙就可以连上了?
    能否给我讲清楚点,我是一个新手,不过我已经连接上了,但是只能用默认的system用户,不能自己建立用户,能否给兄弟讲一下oracle怎么建立用户,谢谢