Java swing 增删改查示例
代码import javax.swing.*; import java.awt.*; import javax.swing.table.DefaultTableModel; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseListener; import java.awt.event.MouseEvent; import java.awt.event.MouseAdapter; public class mylnx { public static void main(String[] agrs) throws ClassNotFoundException, SQLException { JFrame frame new JFrame(Linux命令查询); Class.forName(org.sqlite.JDBC); String db lnxcmd.db; Connection conn DriverManager.getConnection(jdbc:sqlite: db); Statement state conn.createStatement(); ResultSet rs state.executeQuery(select * from lnxcmd;); JPanel panel new JPanel(); panel.setLayout(new FlowLayout()); JLabel label6 new JLabel(命令); JTextField txt6 new JTextField(); //txt6.setSize(100, 30); JButton btn1 new JButton(查询); //JButton btn2 new JButton(测试按钮2); //JButton btn3 new JButton(测试按钮3); //btn1.setPreferredSize(new Dimension(50, 30)); //btn2.setPreferredSize(new Dimension(50, 30)); //btn3.setPreferredSize(new Dimension(50, 30)); //panel.add(label6); panel.add(txt6); //panel.add(btn1); //panel.add(btn2); //panel.add(btn3); //panel.setPreferredSize(new Dimension(200, 30)); DefaultTableModel model new DefaultTableModel(); model.addColumn(ID); model.addColumn(命令); model.addColumn(功能); model.addColumn(参数); model.addColumn(示例); Object[] rowData null; while (rs.next()) { rowData new Object[5]; rowData[0] rs.getString(id); rowData[1] rs.getString(mycmd); rowData[2] rs.getString(funcs); rowData[3] rs.getString(params); rowData[4] rs.getString(exams); model.addRow(rowData); } JTable tablenew JTable(model); JScrollPane scroll new JScrollPane(table); JPanel panel2 new JPanel(); panel2.setLayout(new FlowLayout()); JRadioButton radiobtn1 new JRadioButton(选项 1); JRadioButton radiobtn2 new JRadioButton(选项 2); panel2.add(radiobtn1); panel2.add(radiobtn2); JPanel panel3 new JPanel(); panel3.setLayout(new GridLayout(5,2)); JLabel label1 new JLabel(ID); JLabel label2 new JLabel(命令); JLabel label3 new JLabel(功能); JLabel label4 new JLabel(参数); JLabel label5 new JLabel(示例); JTextField txt1 new JTextField(); txt1.setEditable(false); JTextField txt2 new JTextField(); JTextField txt3 new JTextField(); JTextField txt4 new JTextField(); JTextField txt5 new JTextField(); panel3.add(label1);panel3.add(txt1);panel3.add(label2);panel3.add(txt2);panel3.add(label3); panel3.add(txt3);panel3.add(label4);panel3.add(txt4);panel3.add(label5);panel3.add(txt5); JPanel panel4 new JPanel(); panel4.setLayout(new FlowLayout()); JButton btn4 new JButton(添加); JButton btn5 new JButton(删除); JButton btn6 new JButton(更新); panel4.add(btn4);panel4.add(btn5);panel4.add(btn6); btn4.addMouseListener(new MouseListener(){ public void mouseReleased(MouseEvent e) { //JOptionPane.showMessageDialog(null, 鼠标放开事件); } public void mousePressed(MouseEvent e) { //JOptionPane.showMessageDialog(null,鼠标按下事件); } public void mouseExited(MouseEvent e) { //JOptionPane.showMessageDialog(null,鼠标退出按钮区域); } public void mouseEntered(MouseEvent e) { //JOptionPane.showMessageDialog(null,鼠标移入按钮区域); } public void mouseClicked(MouseEvent e) { //JOptionPane.showMessageDialog(null,添加数据); String addsql; try{ Statement state2 conn.createStatement(); addsql insert into lnxcmd values (null, txt2.getText() , txt3.getText() , txt4.getText() , txt5.getText() );; int ret state2.executeUpdate(addsql); model.setRowCount(0); ResultSet rs2 state.executeQuery(select * from lnxcmd;); Object[] rowData2 null; while (rs2.next()) { rowData2 new Object[5]; rowData2[0] rs2.getString(id); rowData2[1] rs2.getString(mycmd); rowData2[2] rs2.getString(funcs); rowData2[3] rs2.getString(params); rowData2[4] rs2.getString(exams); model.addRow(rowData2); } txt2.setText();txt3.setText();txt4.setText();txt5.setText(); }catch (SQLException e2) { //e.printStackTrace(); // 可以选择抛出一个运行时异常或者做一些其他处理 throw new RuntimeException(插入数据失败, e2); } } }); btn5.addMouseListener(new MouseListener(){ //btn5删除数据 public void mouseReleased(MouseEvent e) { } public void mousePressed(MouseEvent e) { } public void mouseExited(MouseEvent e) { } public void mouseEntered(MouseEvent e) { } public void mouseClicked(MouseEvent e) { //JOptionPane.showMessageDialog(null,删除数据); int selectedRow table.getSelectedRow(); if (selectedRow ! -1) { // btn5删除数据 int cmdid Integer.parseInt(table.getValueAt(selectedRow,0).toString()); String delsql; try{ Statement state3 conn.createStatement(); delsql DELETE FROM lnxcmd WHERE id cmdid; int ret state3.executeUpdate(delsql); model.setRowCount(0); ResultSet rs3 state.executeQuery(select * from lnxcmd;); Object[] rowData3 null; while (rs3.next()) { rowData3 new Object[5]; rowData3[0] rs3.getString(id); rowData3[1] rs3.getString(mycmd); rowData3[2] rs3.getString(funcs); rowData3[3] rs3.getString(params); rowData3[4] rs3.getString(exams); model.addRow(rowData3); } }catch (SQLException e2) { //e.printStackTrace(); // 可以选择抛出一个运行时异常或者做一些其他处理 throw new RuntimeException(删除数据失败, e2); } } } }); btn6.addMouseListener(new MouseListener(){ //btn6更新数据 public void mouseReleased(MouseEvent e) { } public void mousePressed(MouseEvent e) { } public void mouseExited(MouseEvent e) { } public void mouseEntered(MouseEvent e) { } public void mouseClicked(MouseEvent e) { //JOptionPane.showMessageDialog(null,更新数据); int cmdid Integer.parseInt(txt1.getText()); String updatesql; try{ Statement state4 conn.createStatement(); updatesql update lnxcmd set mycmd txt2.getText() , funcs txt3.getText() , params txt4.getText() , exams txt5.getText() where id cmdid; int ret state4.executeUpdate(updatesql); model.setRowCount(0); ResultSet rs4 state4.executeQuery(select * from lnxcmd;); Object[] rowData4 null; while (rs4.next()) { rowData4 new Object[5]; rowData4[0] rs4.getString(id); rowData4[1] rs4.getString(mycmd); rowData4[2] rs4.getString(funcs); rowData4[3] rs4.getString(params); rowData4[4] rs4.getString(exams); model.addRow(rowData4); } }catch (SQLException e2) { //e.printStackTrace(); // 可以选择抛出一个运行时异常或者做一些其他处理 throw new RuntimeException(更新数据失败, e2); } } }); table.addMouseListener(new MouseAdapter() { Override public void mouseClicked(MouseEvent e) { int selectedRow table.getSelectedRow(); if (selectedRow ! -1) { // 检查是否有行被选中 txt1.setText(table.getValueAt(selectedRow,0).toString()); txt2.setText(table.getValueAt(selectedRow,1).toString()); txt3.setText(table.getValueAt(selectedRow,2).toString()); txt4.setText(table.getValueAt(selectedRow,3).toString()); txt5.setText(table.getValueAt(selectedRow,4).toString()); } } }); frame.setLayout(new GridLayout(5, 1)); frame.getContentPane().add(panel); frame.getContentPane().add(scroll); frame.getContentPane().add(panel2); frame.getContentPane().add(panel3); frame.getContentPane().add(panel4); frame.setSize(400, 300); frame.setLocationRelativeTo(null); frame.setVisible(true); } }可以实现基本的增删改查功能数据库结构如下顶部的查询功能还没做顶部的 JTextField txt6 new JTextField(); 这文本框不知为什么没有宽度界面和细节还需要调整编译和运行命令D:\JavaPrjjava -classpath .;D:/JavaPrj/* mylnxD:\JavaPrjjava -classpath .;D:/JavaPrj/* mylnx代码、数据库、jar包放到D:\JavaPrj;目前的代码是保存为ANSI保存为其他格式中文显示有问题