如何在JavaSwing中修复试图连接到数据库的错误?

如何在JavaSwing中修复试图连接到数据库的错误?,java,postgresql,swing,Java,Postgresql,Swing,我尝试使用Java连接到PostgreSQL数据库,并尝试使用Swing的JTable显示查询执行的结果。我正在使用JDBC连接到我的PostgreSQL数据库。这是密码。PostgreSQL版本是4.11 package com.company; import javax.swing.*; import javax.swing.table.DefaultTableModel; import javax.swing.table.TableModel; import java.awt.event

我尝试使用Java连接到PostgreSQL数据库,并尝试使用Swing的JTable显示查询执行的结果。我正在使用JDBC连接到我的PostgreSQL数据库。这是密码。PostgreSQL版本是4.11

package com.company;

import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.*;
import java.util.Vector;

public class SQLProject {

    private JTextField textFieldQuery;
    private JButton buttonGo;
    private JTable tableQueries;
    private JPanel panelMain;

    public SQLProject() {
        buttonGo.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                try {
                    ResultSet resultSet = getData();
                    TableModel tableModel = buildTableModel(resultSet);
                    tableQueries.setModel(tableModel);
                } catch(SQLException e1) {
                    e1.printStackTrace();
                }
            }
        });
    }

    public static void main(String[] args) {

        JFrame frame = new JFrame("SQLProject");
        frame.setContentPane(new SQLProject().panelMain);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.pack();
        frame.setVisible(true);
    }

    private ResultSet getData() throws SQLException {
        try{ // driver loading
            Class.forName("org.postgresql.Driver");
        }
        catch(Exception e){
            e.printStackTrace ();
        }
        final String url = "jdbc:postgresql://127.0.0.1:57956/browser/";
        try {
            // problem is here
            final Connection connection = DriverManager.getConnection(url, "postgres", "stalker");
            final String sql = textFieldQuery.getText();
            final PreparedStatement preparedStatement = connection.prepareStatement(sql);
            try { connection.close( ); }
            catch(SQLException e) {e.printStackTrace();}

            return preparedStatement.executeQuery();
        }
        catch(SQLException e) {
            throw new SQLException();
        }
    }

    public static TableModel buildTableModel(final ResultSet resultSet)
            throws SQLException {
        int columnCount = resultSet.getMetaData().getColumnCount();

        // Column names.
        Vector<String> columnNames = new Vector<>();
        for (int columnIndex = 1; columnIndex <= columnCount; columnIndex++) {
            columnNames.add(resultSet.getMetaData().getColumnName(columnIndex));
        }

        // Data of the table.
        Vector<Vector<Object>> dataVector = new Vector<>();
        while (resultSet.next()) {
            Vector<Object> rowVector = new Vector<>();
            for (int columnIndex = 1; columnIndex <= columnCount; columnIndex++) {
                rowVector.add(resultSet.getObject(columnIndex));
            }
            dataVector.add(rowVector);
        }

        return new DefaultTableModel(dataVector, columnNames);
    }

}


用户名和密码是正确的,但我不确定URL是否正确

您得到的错误是什么?没有Postgres版本4.11-您是指11.4吗?
127.0.0.1:57956/browser
看起来像pgAdmin4 url,这不是您想要的。您的数据库服务器可能位于默认的5432端口,我怀疑您的数据库是否称为浏览器。如果是,您是否创建了一个数据库?使用它的名称而不是浏览器。我使用了数据库的名称(postgres),但没有结果。我仍然得到了异常,现在似乎找不到驱动程序,但我添加了它(Project Structure->Libraries->Add library)。您可能需要这样的URL:
jdbc:postgresql://127.0.0.1:5432/postgres
final Connection connection = DriverManager.getConnection(url, "postgres", "stalker");