新聞中心
在使用Java編寫(xiě)數(shù)據(jù)庫(kù)應(yīng)用程序時(shí),我們經(jīng)常需要顯示數(shù)據(jù)并且能夠?qū)@些數(shù)據(jù)進(jìn)行增、刪、改的操作,而在Java中,JTable是一種非常常用的顯示數(shù)據(jù)的組件,其也提供了一些默認(rèn)的操作,包括刪除行,這些操作的實(shí)現(xiàn)離不開(kāi)數(shù)據(jù)庫(kù)的操作。在這篇文章中,我們將介紹如何在JTable中刪除數(shù)據(jù)庫(kù)中的數(shù)據(jù)。

我們需要建立一個(gè)連接到數(shù)據(jù)庫(kù)的連接,可以使用JDBC來(lái)實(shí)現(xiàn)。下面是一個(gè)簡(jiǎn)單的連接數(shù)據(jù)庫(kù)方法:
“`
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是數(shù)據(jù)庫(kù)的連接地址,mydatabase是數(shù)據(jù)庫(kù)名,root是用戶(hù)名,123456是密碼。getConnection方法將返回一個(gè)Connection對(duì)象,該對(duì)象用于與數(shù)據(jù)庫(kù)進(jìn)行通信。
接下來(lái),我們需要從數(shù)據(jù)庫(kù)中獲取數(shù)據(jù)并將其顯示在JTable中。這可以通過(guò)以下代碼實(shí)現(xiàn):
“`
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);
}
// 獲取行數(shù)據(jù)
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表中獲取數(shù)據(jù),并將其轉(zhuǎn)換為DefaultTableModel對(duì)象,該對(duì)象用于在JTable中顯示數(shù)據(jù)。
我們需要在JTable中實(shí)現(xiàn)刪除行的操作。在JTable中刪除行的實(shí)現(xiàn)可以通過(guò)以下代碼來(lái)完成:
“`
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表中刪除指定行的數(shù)據(jù)。該方法通過(guò)sql語(yǔ)句來(lái)執(zhí)行刪除操作,其中id字段用于標(biāo)識(shí)每一行的唯一性。
現(xiàn)在,我們可以將獲取數(shù)據(jù)、顯示數(shù)據(jù)和刪除數(shù)據(jù)的方法組合在一起,實(shí)現(xiàn)在JTable中刪除數(shù)據(jù)庫(kù)中的數(shù)據(jù)的功能。實(shí)現(xiàn)代碼如下:
“`
public class JTableDemo extends JFrame {
private JTable table;
public JTableDemo() throws SQLException {
// 獲取表格數(shù)據(jù)模型
DefaultTableModel model = getTableModel();
// 創(chuàng)建表格
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, “請(qǐng)選擇要?jiǎng)h除的行”);
}
});
getContentPane().add(deleteButton, BorderLayout.SOUTH);
// 設(shè)置窗口屬性
setSize(400, 300);
setVisible(true);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
public static void mn(String[] args) throws SQLException {
new JTableDemo();
}
// 獲取數(shù)據(jù)模型
public static DefaultTableModel getTableModel() throws SQLException {
// 獲取數(shù)據(jù)庫(kù)連接
Connection connection = getConnection();
// 定義sql語(yǔ)句
String sql = “SELECT * FROM mytable”;
// 執(zhí)行sql語(yǔ)句
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);
}
// 獲取行數(shù)據(jù)
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);
}
// 關(guān)閉連接
resultSet.close();
statement.close();
connection.close();
// 創(chuàng)建數(shù)據(jù)模型
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);
}
}
“`
上面的代碼中,我們?cè)贘Frame窗口中添加了一個(gè)JTable用于顯示數(shù)據(jù),以及一個(gè)JButton用于刪除行。點(diǎn)擊刪除按鈕將從JTable中獲取選中的行,并從數(shù)據(jù)庫(kù)中刪除該行的數(shù)據(jù),同時(shí)也將該行從JTable中刪除。
相關(guān)問(wèn)題拓展閱讀:
- jtable鏈接數(shù)據(jù)庫(kù)數(shù)據(jù)顯示不全
- 關(guān)于java中JTable中的錯(cuò)誤。下面是出錯(cuò)的代碼問(wèn)題。之一次在Jtable中點(diǎn)擊一條記錄時(shí)沒(méi),當(dāng)?shù)诙吸c(diǎn)擊時(shí)報(bào)
jtable鏈接數(shù)據(jù)庫(kù)數(shù)據(jù)顯示不全
jtable鏈接數(shù)據(jù)庫(kù)數(shù)據(jù)顯示不全?
答案如下:系統(tǒng)代碼出弊灶錯(cuò)了!正確的租或扮操作方法是團(tuán)喚,首先之一步先點(diǎn)擊打開(kāi)設(shè)置按鈕,然后帳戶(hù)管理在頁(yè)面點(diǎn)擊賬號(hào)安全中心進(jìn)入即可完成!多實(shí)踐測(cè)試。
1,點(diǎn)擊data source,顯爛巖仔示彈出框,選擇schemas勾選要在idea中展示的表如test_liu,點(diǎn)擊ok就完成了,我們就可以在idea界面看到素有的mysql表了棗腔
最終解決方法:
1.安裝navicat,連接異常的數(shù)據(jù)庫(kù),檢查用戶(hù)的權(quán)限是否正常。
檢查后,發(fā)現(xiàn)root賬號(hào)的權(quán)限已經(jīng)全部未設(shè)置饑汪。
2.修改root權(quán)限。
調(diào)整完后,修改root密碼,去掉上面添加的“skip-grant-tables”參數(shù)。
3.重啟數(shù)據(jù)庫(kù)服務(wù)。
重啟之后,一切正常。
首先確定你的crollPane是否顯示正常。亂睜如果正嘩握歲常,那就是把JTable放入crollPane的時(shí)皮寬候方置方法的問(wèn)題了。一般來(lái)講,是初始化一個(gè)JTable table = new JTable(),JscrollPane = new crollPane(table),table中數(shù)據(jù)的修改通過(guò)更改table的datamodle就可以了。
關(guān)于java中JTable中的錯(cuò)誤。下面是出錯(cuò)的代碼問(wèn)題。之一次在Jtable中點(diǎn)擊一條記錄時(shí)沒(méi),當(dāng)?shù)诙吸c(diǎn)擊時(shí)報(bào)
ArrayIndexOutOfBoundsException
這個(gè)是Array數(shù)組越界,是個(gè)常見(jiàn)的錯(cuò)誤,記住這個(gè)錯(cuò)誤,你以后肯定會(huì)碰到的
你的代碼不完整 都不滑笑好調(diào)試,我就直接看下。
Vector v =new Vector();
你直接這么初始化實(shí)例就行了
//一下是實(shí)例化Vector時(shí)候可以用的構(gòu)銀沒(méi)造方法
Vector()
構(gòu)造一個(gè)空向量,使其內(nèi)部數(shù)據(jù)數(shù)組的大小為 10,其標(biāo)準(zhǔn)容量增量為零。
Vector(Collection c)
構(gòu)造一個(gè)包含指定中的元素的向量,這些元素按其的迭代器返回元素的順序排列。
Vector(int initialCapacity)
使用指定的初始容量和等于零的容量增量構(gòu)造一個(gè)空向量。
Vector(int initialCapacity, int capacityIncrement)
使用指定的初始容量和容量增量構(gòu)造一個(gè)空的向量。
你用的是第三種,
Vector(int initialCapacity, int capacityIncrement)
使用指定的初始容量和容量信搏含增量構(gòu)造一個(gè)空的向量。
你都給這個(gè)向量指定了大小了。當(dāng)然會(huì)出錯(cuò)的,
報(bào)ArrayIndexOutOfBoundsException錯(cuò)是必然的。
jtable 刪除數(shù)據(jù)庫(kù)的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于jtable 刪除數(shù)據(jù)庫(kù),如何在JTable中刪除數(shù)據(jù)庫(kù)中的數(shù)據(jù)?,jtable鏈接數(shù)據(jù)庫(kù)數(shù)據(jù)顯示不全,關(guān)于java中JTable中的錯(cuò)誤。下面是出錯(cuò)的代碼問(wèn)題。之一次在Jtable中點(diǎn)擊一條記錄時(shí)沒(méi),當(dāng)?shù)诙吸c(diǎn)擊時(shí)報(bào)的信息別忘了在本站進(jìn)行查找喔。
數(shù)據(jù)庫(kù)運(yùn)維技術(shù)服務(wù) ? 如何在JTable中刪除數(shù)據(jù)庫(kù)中的數(shù)據(jù)? (jtable 刪除數(shù)據(jù)庫(kù))
網(wǎng)站小編 普通
分享到:
相關(guān)推薦
Discuz圖片模塊數(shù)據(jù)庫(kù)管理技巧 (discuz 圖片模塊 數(shù)據(jù)庫(kù))
深入探討Java數(shù)據(jù)庫(kù)封裝技術(shù) (java數(shù)據(jù)庫(kù) 封裝)
如何配置SQL Server連接遠(yuǎn)程數(shù)據(jù)庫(kù) (sqlserver連接遠(yuǎn)程數(shù)據(jù)庫(kù))
Java數(shù)據(jù)庫(kù)映射技術(shù):為什么它是代碼編寫(xiě)的關(guān)鍵步驟? (java 數(shù)據(jù)庫(kù)映射)
手動(dòng)復(fù)制數(shù)據(jù)庫(kù)文件:備份與恢復(fù)簡(jiǎn)便方法 (手動(dòng)復(fù)制了數(shù)據(jù)庫(kù)文件)
VB實(shí)現(xiàn)SQL數(shù)據(jù)庫(kù)表記錄添加 (vb向sql數(shù)據(jù)庫(kù)表添加記錄)
數(shù)據(jù)庫(kù):小白也能看懂的解釋 (數(shù)據(jù)庫(kù)通俗解釋)
探究Graph數(shù)據(jù)庫(kù)的優(yōu)勢(shì)與應(yīng)用場(chǎng)景 (graph數(shù)據(jù)庫(kù))
隨機(jī)文章
數(shù)據(jù)庫(kù)創(chuàng)新備份方式,安全性更高 (數(shù)據(jù)庫(kù)備份與現(xiàn)有備份不同)
探秘PB9數(shù)據(jù)庫(kù):如何利用PB9讀取數(shù)據(jù)庫(kù)信息? (pb9能讀的數(shù)據(jù)庫(kù))
如何創(chuàng)建Oracle數(shù)據(jù)庫(kù)時(shí)遇到?jīng)]監(jiān)聽(tīng)配置文件的問(wèn)題? (創(chuàng)建數(shù)據(jù)庫(kù)沒(méi)監(jiān)聽(tīng)配置文件)
Java數(shù)據(jù)庫(kù)新加一列操作指南 (java 數(shù)據(jù)庫(kù)添加一列)
CakePHP輕松查詢(xún)數(shù)據(jù)庫(kù)表格 (cakephp查詢(xún)表數(shù)據(jù)庫(kù))
大學(xué)計(jì)算機(jī)基礎(chǔ):探析數(shù)據(jù)庫(kù)概念與應(yīng)用 (大學(xué)計(jì)算機(jī)基礎(chǔ)數(shù)據(jù)庫(kù))
最近更新
標(biāo)簽
Linux Linux教程 Linux資訊 MacOS MacOS教程 MacOS資訊 MongoDB MongoDB教程 MongoDB資訊 MSSQL MSSQL錯(cuò)誤 MySQL mysql教程 MySQL維護(hù) MySQL資訊 Neo4j Neo4j教程 Neo4j資訊 ORACLE Oracle優(yōu)化 oracle內(nèi)部視圖 oracle參數(shù) oracle開(kāi)發(fā) oracle異常修復(fù) oracle故障處理 oracle教程 oracle維護(hù) oracle視圖 ORACLE資訊 oracle遠(yuǎn)程維護(hù) ORA錯(cuò)誤碼 Redis Redis教程 Redis資訊 SQLServer SQLServer報(bào)錯(cuò) SQLServer教程 SQLServer資訊 SQL修復(fù) SQL異常 SQL遠(yuǎn)程處理 Windows 技術(shù)文檔 操作系統(tǒng) 數(shù)據(jù)庫(kù)
- 登錄
- 注冊(cè)
安全登錄
立即注冊(cè) 忘記密碼?
成都創(chuàng)新互聯(lián)建站主營(yíng):成都網(wǎng)站建設(shè)、網(wǎng)站維護(hù)、網(wǎng)站改版的網(wǎng)站建設(shè)公司,提供成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、成都網(wǎng)站推廣、成都網(wǎng)站優(yōu)化seo、響應(yīng)式移動(dòng)網(wǎng)站開(kāi)發(fā)制作等網(wǎng)站服務(wù)。
網(wǎng)站題目:如何在JTable中刪除數(shù)據(jù)庫(kù)中的數(shù)據(jù)?(jtable刪除數(shù)據(jù)庫(kù))
分享網(wǎng)址:http://m.5511xx.com/article/dpjephe.html


咨詢(xún)
建站咨詢(xún)
