如何在JavaSwing中修复试图连接到数据库的错误?
我尝试使用Java连接到PostgreSQL数据库,并尝试使用Swing的JTable显示查询执行的结果。我正在使用JDBC连接到我的PostgreSQL数据库。这是密码。PostgreSQL版本是4.11如何在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
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");