gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 08:28:12 25 4
gpt4 key购买 nike

我正在尝试将我的应用程序连接到我的数据库。我没有给出错误,它运行但不获取信息。我尝试从命令行运行 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("诺姆·萨拉里奥");

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

有人知道会发生什么吗?

最佳答案

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

一个设计说明:此类将 UI、连接获取和数据库访问合而为一。更好的方法是将它们分成不同的类。测试一个功能,将其放在一边,让其他类简单地使用您刚刚实现并证明运行良好的功能。

当你让一个类做太多事情时,当出现问题时你不知道问题出在哪里。

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

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

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

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

关于java - 将 Eclipse(Java) 连接到 Oracle 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8105697/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com