将Eclipse(Java)连接到Oracle数据库

时间:2011-11-12 16:17:23

标签: java eclipse oracle jdbc

我正在尝试将我的应用程序连接到我的数据库。 我没有给出错误,它的运行但它没有获取信息。 我已经尝试从命令行运行tnsping以查看监听器是否已打开,并且它表示没问题。

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.*;
import java.io.*;
import javax.swing.*;

   public class Connector extends JFrame{
  public static void main(String[] args) throws SQLException, ClassNotFoundException 
 {
  Connection conn = null;
  //Statement stmt = null;
  try
  {
    Class.forName("oracle.jdbc.driver.OracleDriver");
    conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:dbserver", "scott","tiger");

  }
  catch(SQLException e)
  { JOptionPane.showMessageDialog(null,e.getMessage(), "Erro na COnexao!",JOptionPane.ERROR_MESSAGE);
  }
  catch(Exception e)
  { e.printStackTrace();
  }
  Statement stmt = conn.createStatement();
  ResultSet rset = stmt.executeQuery("SELECT * FROM AnimalM");
  System.out.println ("Nome Salario");
  if (rset.next()){
      System.out.println("Aloooo");
  int cod = rset.getInt(1);
  String nome = rset.getString(2);
  String nome_es = rset.getString(3);
  int id = rset.getInt(4);
  System.out.println (cod+" "+nome+" "+nome_es+" "+id);
  }
  rset.close(); //Close ResultSet
  stmt.close(); //Close Statement
   conn.close(); //Close Connection
   }
 }

直到这条指令为止:

System.out.println(“Nome Salario”);

然后没有其他任何显示,程序停止。

有没有人知道可能会发生什么?

1 个答案:

答案 0 :(得分:1)

我建议逐步使用Eclipse中的调试器来查看发生了什么。也许查询不返回任何行。

一个设计说明:此类将UI,连接获取和数据库访问混合为一个。更好的方法是将这些分成不同的类。测试一个功能,把它放在一边,让其他类只使用你刚刚实现的功能,并证明工作正常。

当你有一个课程做得太多时,你不知道出现问题时问题出在哪里。

您也没有正确关闭资源。这些应该包含在单独的try / catch块中。

我将所有代码放入一个try / catch finally块并在最后关闭资源。

我将连接传递给数据访问对象,该对象负责获取ResultSet并将其映射到对象或数据结构中。

我会将所有Swing移出数据库层。您可以在不使用Swing的情况下重复使用它(例如,如果您切换到Web UI)。