在使用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链接数据库数据显示不全?
答案如下:系统代码出弊灶错了!正确的租或扮操作方法是团唤,首先之一步先点击打开设置按钮,然后帐户管理在页面点击账号安全中心进入即可完成!多实践测试。
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就可以了。
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 删除数据库)
分享到:
数据库创新备份方式,安全性更高 (数据库备份与现有备份不同)
探秘PB9数据库:如何利用PB9读取数据库信息? (pb9能读的数据库)
如何创建Oracle数据库时遇到没监听配置文件的问题? (创建数据库没监听配置文件)
Java数据库新加一列操作指南 (java 数据库添加一列)
CakePHP轻松查询数据库表格 (cakephp查询表数据库)
大学计算机基础:探析数据库概念与应用 (大学计算机基础数据库)
Linux Linux教程 Linux资讯 MacOS MacOS教程 MacOS资讯 MongoDB MongoDB教程 MongoDB资讯 MSSQL MSSQL错误 MySQL mysql教程 MySQL维护 MySQL资讯 Neo4j Neo4j教程 Neo4j资讯 ORACLE Oracle优化 oracle内部视图 oracle参数 oracle开发 oracle异常修复 oracle故障处理 oracle教程 oracle维护 oracle视图 ORACLE资讯 oracle远程维护 ORA错误码 Redis Redis教程 Redis资讯 SQLServer SQLServer报错 SQLServer教程 SQLServer资讯 SQL修复 SQL异常 SQL远程处理 Windows 技术文档 操作系统 数据库
安全登录
立即注册 忘记密码?
成都创新互联建站主营:成都网站建设、网站维护、网站改版的网站建设公司,提供成都网站制作、成都网站建设、成都网站推广、成都网站优化seo、响应式移动网站开发制作等网站服务。
文章标题:如何在JTable中删除数据库中的数据?(jtable删除数据库)
转载来于:http://www.mswzjz.cn/qtweb/news34/334884.html
攀枝花网站建设、攀枝花网站运维推广公司-贝锐智能,是专注品牌与效果的网络营销公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 贝锐智能