如何在JTable中删除数据库中的数据? (jtable 删除数据库)

在使用Java编写数据库应用程序时,我们经常需要显示数据并且能够对这些数据进行增、删、改的操作,而在Java中,JTable是一种非常常用的显示数据的组件,其也提供了一些默认的操作,包括删除行,这些操作的实现离不开数据库的操作。在这篇文章中,我们将介绍如何在JTable中删除数据库中的数据。

我们需要建立一个连接到数据库的连接,可以使用JDBC来实现。下面是一个简单的连接数据库方法:

“`

public static Connection getConnection() throws SQLException {

String url = “jdbc:mysql://localhost:3306/mydatabase”;

String user = “root”;

String password = “123456”;

return DriverManager.getConnection(url, user, password);

}

“`

其中,url是数据库的连接地址,mydatabase是数据库名,root是用户名,123456是密码。getConnection方法将返回一个Connection对象,该对象用于与数据库进行通信。

接下来,我们需要从数据库中获取数据并将其显示在JTable中。这可以通过以下代码实现:

“`

public static DefaultTableModel getTableModel() throws SQLException {

String sql = “SELECT * FROM mytable”;

Connection connection = getConnection();

PreparedStatement statement = connection.prepareStatement(sql);

ResultSet resultSet = statement.executeQuery();

ResultSetMetaData metaData = resultSet.getMetaData();

// 获取列名

int columnCount = metaData.getColumnCount();

String[] columnNames = new String[columnCount];

for (int i = 0; i

columnNames[i] = metaData.getColumnName(i + 1);

}

// 获取行数据

List rows = new ArrayList();

while (resultSet.next()) {

Object[] rowData = new Object[columnCount];

for (int i = 0; i

rowData[i] = resultSet.getObject(i + 1);

}

rows.add(rowData);

}

DefaultTableModel model = new DefaultTableModel(columnNames, rows.size());

for (int i = 0; i

Object[] rowData = rows.get(i);

for (int j = 0; j

model.setValueAt(rowData[j], i, j);

}

}

resultSet.close();

statement.close();

connection.close();

return model;

}

“`

上面的getTableModel方法将从mytable表中获取数据,并将其转换为DefaultTableModel对象,该对象用于在JTable中显示数据。

我们需要在JTable中实现删除行的操作。在JTable中删除行的实现可以通过以下代码来完成:

“`

public static void deleteRow(int rowIndex) throws SQLException {

String sql = “DELETE FROM mytable WHERE id=?”;

Connection connection = getConnection();

PreparedStatement statement = connection.prepareStatement(sql);

statement.setInt(1, rowIndex + 1);

statement.executeUpdate();

statement.close();

connection.close();

}

“`

上面的deleteRow方法将从mytable表中删除指定行的数据。该方法通过sql语句来执行删除操作,其中id字段用于标识每一行的唯一性。

现在,我们可以将获取数据、显示数据和删除数据的方法组合在一起,实现在JTable中删除数据库中的数据的功能。实现代码如下:

“`

public class JTableDemo extends JFrame {

private JTable table;

public JTableDemo() throws SQLException {

// 获取表格数据模型

DefaultTableModel model = getTableModel();

// 创建表格

table = new JTable(model);

crollPane scrollPane = new crollPane(table);

getContentPane().add(scrollPane);

// 添加删除按钮

JButton deleteButton = new JButton(“删除”);

deleteButton.addActionListener(e -> {

int rowIndex = table.getSelectedRow();

if (rowIndex != -1) {

try {

deleteRow(rowIndex);

model.removeRow(rowIndex);

} catch (SQLException ex) {

ex.printStackTrace();

JOptionPane.showMessageDialog(this, “删除失败”);

}

} else {

JOptionPane.showMessageDialog(this, “请选择要删除的行”);

}

});

getContentPane().add(deleteButton, BorderLayout.SOUTH);

// 设置窗口属性

setSize(400, 300);

setVisible(true);

setLocationRelativeTo(null);

setDefaultCloseOperation(EXIT_ON_CLOSE);

}

public static void mn(String[] args) throws SQLException {

new JTableDemo();

}

// 获取数据模型

public static DefaultTableModel getTableModel() throws SQLException {

// 获取数据库连接

Connection connection = getConnection();

// 定义sql语句

String sql = “SELECT * FROM mytable”;

// 执行sql语句

PreparedStatement statement = connection.prepareStatement(sql);

ResultSet resultSet = statement.executeQuery();

ResultSetMetaData metaData = resultSet.getMetaData();

// 获取列名

int columnCount = metaData.getColumnCount();

String[] columnNames = new String[columnCount];

for (int i = 0; i

columnNames[i] = metaData.getColumnName(i + 1);

}

// 获取行数据

List rows = new ArrayList();

while (resultSet.next()) {

Object[] rowData = new Object[columnCount];

for (int i = 0; i

rowData[i] = resultSet.getObject(i + 1);

}

rows.add(rowData);

}

// 关闭连接

resultSet.close();

statement.close();

connection.close();

// 创建数据模型

DefaultTableModel model = new DefaultTableModel(columnNames, rows.size());

for (int i = 0; i

Object[] rowData = rows.get(i);

for (int j = 0; j

model.setValueAt(rowData[j], i, j);

}

}

return model;

}

// 删除行

public static void deleteRow(int rowIndex) throws SQLException {

Connection connection = getConnection();

String sql = “DELETE FROM mytable WHERE id=?”;

PreparedStatement statement = connection.prepareStatement(sql);

statement.setInt(1, rowIndex + 1);

statement.executeUpdate();

statement.close();

connection.close();

}

// 获取连接

public static Connection getConnection() throws SQLException {

String url = “jdbc:mysql://localhost:3306/mydatabase”;

String user = “root”;

String password = “123456”;

return DriverManager.getConnection(url, user, password);

}

}

“`

上面的代码中,我们在JFrame窗口中添加了一个JTable用于显示数据,以及一个JButton用于删除行。点击删除按钮将从JTable中获取选中的行,并从数据库中删除该行的数据,同时也将该行从JTable中删除。

相关问题拓展阅读:

jtable链接数据库数据显示不全

jtable链接数据库数据显示不全?

答案如下:系统代码出弊灶错了!正确的租或扮操作方法是团唤,首先之一步先点击打开设置按钮,然后帐户管理在页面点击账号安全中心进入即可完成!多实践测试。

1,点击data source,显烂岩仔示弹出框,选择schemas勾选要在idea中展示的表如test_liu,点击ok就完成了,我们就可以在idea界面看到素有的mysql表了枣腔

最终解决方法:

1.安装navicat,连接异常的数据库,检查用户的权限是否正常。

检查后,发现root账号的权限已经全部未设置饥汪。

2.修改root权限。

调整完后,修改root密码,去掉上面添加的“skip-grant-tables”参数。

3.重启数据库服务。

重启之后,一切正常。

首先确定你的crollPane是否显示正常。乱睁如果正哗握岁常,那就是把JTable放入crollPane的时皮宽候方置方法的问题了。一般来讲,是初始化一个JTable table = new JTable(),JscrollPane = new crollPane(table),table中数据的修改通过更改table的datamodle就可以了。

关于java中JTable中的错误。下面是出错的代码问题。之一次在Jtable中点击一条记录时没,当第二次点击时报

ArrayIndexOutOfBoundsException

这个是Array数组越界,是个常见的错误,记住这个错误,你以后肯定会碰到的

你的代码不完整 都不滑笑好调试,我就直接看下。

Vector v =new Vector();

你直接这么初始化实例就行了

//一下是实例化Vector时候可以用的构银没造方法

Vector()

构造一个空向量,使其内部数据数组的大小为 10,其标准容量增量为零。

Vector(Collection c)

构造一个包含指定中的元素的向量,这些元素按其的迭代器返回元素的顺序排列。

Vector(int initialCapacity)

使用指定的初始容量和等于零的容量增量构造一个空向量。

Vector(int initialCapacity, int capacityIncrement)

使用指定的初始容量和容量增量构造一个空的向量。

你用的是第三种,

Vector(int initialCapacity, int capacityIncrement)

使用指定的初始容量和容量信搏含增量构造一个空的向量。

你都给这个向量指定了大小了。当然会出错的,

报ArrayIndexOutOfBoundsException错是必然的。

jtable 删除数据库的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于jtable 删除数据库,如何在JTable中删除数据库中的数据?,jtable链接数据库数据显示不全,关于java中JTable中的错误。下面是出错的代码问题。之一次在Jtable中点击一条记录时没,当第二次点击时报的信息别忘了在本站进行查找喔。


数据运维技术 » 如何在JTable中删除数据库中的数据? (jtable 删除数据库)