在Jtable中显示增加删除查询修改的数据库信息

/**
  * 连接数据库函数
  */
 public static Connection fetchconnection()
 {
  try{
         Class.forName("oracle.jdbc.driver.OracleDriver");
      String url ="jdbc:oracle:thin:@192.168.119.108:1521:orclcn";
   String user = "zenggan";
   String pwd = "zeng";
      return DriverManager.getConnection(url, user, pwd);
  }
  catch(Exception e)
  {
   e.printStackTrace();
   return null;
  }
 }
 
 private void addsubinfoButtonActionPerformed(ActionEvent evt) throws Exception {
  /**
   * 插入语句
   */
  Statement statement = null;
  Connection connection =null;
  try{
   connection = fetchconnection();
   statement = connection.createStatement();
   
   String sql = "insert into subject values('"+this.sub_idTextField.getText()+"','"+this.sub_nameTextField.getText()+"','"+this.creditTextField.getText()+"')";
      statement.executeUpdate(sql);
      JOptionPane.showMessageDialog(this, "增加成功!!");
      this.sub_idTextField.setText("");
   this.sub_nameTextField.setText("");
   this.creditTextField.setText("");
     
  }
  catch(Exception e)
  {
      e.printStackTrace();
  }
  finally{
   statement.close();
   connection.close();
  }
 }
 
 private void modifysub_infoButtonActionPerformed(ActionEvent evt) throws SQLException {
  Statement statement = null;
  Connection connection =null;
  ResultSet resultSet = null;
  
  try{
   connection = fetchconnection();
   statement = connection.createStatement();
   
   String sql = "update subject set sub_name='"+this.editsub_nameTextField.getText()+"' where sub_id='"+this.editsub_idTextField.getText()+"'";
   resultSet = statement.executeQuery(sql);
   sql = "update subject set credit='"+this.editcreditTextField.getText()+"' where sub_id='"+this.editsub_idTextField.getText()+"'";
   resultSet = statement.executeQuery(sql);
   JOptionPane.showMessageDialog(this,"修改成功!!");
   this.editsub_idTextField.setText("");
   this.editsub_nameTextField.setText("");
   this.editcreditTextField.setText("");
  }
  catch(Exception e)
  {
      e.printStackTrace();
  }
  finally{
   resultSet.close();
   statement.close();
   connection.close();
  }
 }
 
 public static String[] data = new String[3];//定义一数组存储字段
 private void subjectinfoButtonActionPerformed(ActionEvent evt) throws SQLException {
  Statement statement = null;
  Connection connection =null;
  ResultSet resultSet = null;
  
  ((DefaultTableModel) this.subjectinfoTable.getModel()).getDataVector().clear();
  this.subjectinfoTable.updateUI();
  
  try{
   connection = fetchconnection();
   statement = connection.createStatement();
   
   String sql = "select * from subject";//查询subject表的所有信息
   resultSet = statement.executeQuery(sql);
     while(resultSet.next())  {
      data[0] = resultSet.getString("sub_id");   //将类型赋值给定义的数组
      data[1] = resultSet.getString("sub_name");
      data[2] = resultSet.getString("credit");
      ((DefaultTableModel) this.subjectinfoTable.getModel()).addRow(data);//table中显示
     }
  }
  catch(Exception e)
  {
      e.printStackTrace();
  }
  finally{
   resultSet.close();
   statement.close();
   connection.close();
  }
 }
 
 private void deletesub_infoButtonActionPerformed(ActionEvent evt) throws SQLException {
  Statement statement = null;
  Connection connection =null;
  ResultSet resultSet = null;
  
  try{
   connection = fetchconnection();
   statement = connection.createStatement();
   
   String sql = "delete subject where sub_id='"+this.editsub_idTextField.getText()+"'";
   resultSet = statement.executeQuery(sql);
   JOptionPane.showMessageDialog(this,"删除成功!!");
   this.editsub_idTextField.setText("");
   this.editsub_nameTextField.setText("");
   this.editcreditTextField.setText("");
  }
  catch(Exception e)
  {
      e.printStackTrace();
  }
  finally{
   resultSet.close();
   statement.close();
   connection.close();
  }
 }
 
 private void addtestButtonActionPerformed(ActionEvent evt) throws SQLException {
  Statement statement = null;
  Connection connection =null;
  try{
   connection = fetchconnection();
   statement = connection.createStatement();
   
   String sql = "insert into test values('"+this.test_idTextField.getText()+"','"+
                                            this.class_idTextField.getText()+"','"+
                                            this.testsub_idTextField.getText()+"','"+
                                            this.teacher_idTextField.getText()+"','"+
                                            this.test_timeTextField.getText()+"','"+
                                            this.test_addressTextArea.getText()+"')";
      statement.executeUpdate(sql);
      JOptionPane.showMessageDialog(this, "增加成功!!");
      this.test_idTextField.setText("");
            this.class_idTextField.setText("");
            this.testsub_idTextField.setText("");
            this.teacher_idTextField.setText("");
            this.test_timeTextField.setText("");
            this.test_addressTextArea.setText("");
     
  }
  catch(Exception e)
  {
      e.printStackTrace();
  }
  finally{
   statement.close();
   connection.close();
  }
 }
 
 public static String[] dataone = new String[6];
 
 private void testinfoButtonActionPerformed(ActionEvent evt) throws SQLException {
  Statement statement = null;
  Connection connection =null;
  ResultSet resultSet = null;
  
  ((DefaultTableModel) this.testinfoTable.getModel()).getDataVector().clear();
  this.testinfoTable.updateUI();
  try{
   connection = fetchconnection();
   statement = connection.createStatement();
   String sql = "select * from test";//查询test表的所有信息
   resultSet = statement.executeQuery(sql);
     while(resultSet.next())  {
      dataone[0] = resultSet.getString("test_id");   //将类型赋值给定义的数组
      dataone[1] = resultSet.getString("class_id");
      dataone[2] = resultSet.getString("sub_id");
      dataone[3] = resultSet.getString("teacher_id");
      dataone[4] = resultSet.getString("test_time");
      dataone[5] = resultSet.getString("test_adress");
      ((DefaultTableModel) this.testinfoTable.getModel()).addRow(dataone);//table中显示
     }
  }
  catch(Exception e)
  {
      e.printStackTrace();
  }
  finally{
   resultSet.close();
   statement.close();
   connection.close();
  }
 }
 
 private void edittestmodifyButtonActionPerformed(ActionEvent evt) throws SQLException {
  Statement statement = null;
  Connection connection =null;
  ResultSet resultSet = null;
  
  try{
   connection = fetchconnection();
   statement = connection.createStatement();
   
   String sql = "update test set class_id='"+this.editclass_idTextField.getText()+"' where test_id='"+this.edittest_idTextField.getText()+"'";
   resultSet = statement.executeQuery(sql);
   sql = "update test set sub_id='"+this.edittestsub_idTextField.getText()+"' where test_id='"+this.edittest_idTextField.getText()+"'";
   resultSet = statement.executeQuery(sql);
   sql = "update test set teacher_id='"+this.edittestteacheridTextField.getText()+"' where test_id='"+this.edittest_idTextField.getText()+"'";
   resultSet = statement.executeQuery(sql);
   sql = "update test set test_time='"+this.edittesttimeTextField.getText()+"' where test_id='"+this.edittest_idTextField.getText()+"'";
   resultSet = statement.executeQuery(sql);
   sql = "update test set test_adress='"+this.edittestaddressTextArea.getText()+"' where test_id='"+this.edittest_idTextField.getText()+"'";
   resultSet = statement.executeQuery(sql);
   JOptionPane.showMessageDialog(this,"修改成功!!");
   this.edittest_idTextField.setText("");
   this.editclass_idTextField.setText("");
   this.edittestsub_idTextField.setText("");
   this.edittestteacheridTextField.setText("");
   this.edittesttimeTextField.setText("");
   this.edittestaddressTextArea.setText("");
  }
  catch(Exception e)
  {
      e.printStackTrace();
  }
  finally{
   resultSet.close();
   statement.close();
   connection.close();
  }
 }
 
 private void edittestdeleteButtonActionPerformed(ActionEvent evt) throws SQLException {
  Statement statement = null;
  Connection connection =null;
  ResultSet resultSet = null;
  
  try{
   connection = fetchconnection();
   statement = connection.createStatement();
   
   String sql = "delete test where test_id='"+this.edittest_idTextField.getText()+"'";
   resultSet = statement.executeQuery(sql);
   JOptionPane.showMessageDialog(this,"删除成功!!");
   this.edittest_idTextField.setText("");
   this.editclass_idTextField.setText("");
   this.edittestsub_idTextField.setText("");
   this.edittestteacheridTextField.setText("");
   this.edittesttimeTextField.setText("");
   this.edittestaddressTextArea.setText("");
  }
  catch(Exception e)
  {
      e.printStackTrace();
  }
  finally{
   resultSet.close();
   statement.close();
   connection.close();
  }
 }
 
 private void tuichuButtonActionPerformed(ActionEvent evt) {
  System.exit(0);
 }
  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
可以通过以下步骤来实现: 1. 创建一个 JTable 对象,并将其添加到 JFrame 窗口。 2. 使用 JDBC 连接数据库,并编写 SQL 查询语句以检索所需的数据。 3. 将查询结果保存在 ResultSet 对象,并使用 ResultSetMetaData 获取列的名称和数量。 4. 创建一个 DefaultTableModel 对象,并将列名称和数据添加到模型。 5. 将模型设置为 JTable 的数据模型,并使用 setModel() 方法将其设置为 JTable 的模型。 6. 在 JTable 上添加一个按钮列,可以使用 TableColumnModel 和 TableCellRenderer 来实现。 7. 在按钮的 ActionListener 编写代码,以便在单击按钮时执行所需的操作,例如显示所选行的详细信息删除所选行。 下面是一个简单的示例代码,可以根据需要进行修改: ``` import java.sql.*; import javax.swing.*; import javax.swing.table.*; public class JTableExample extends JFrame { private JTable table; private DefaultTableModel model; public JTableExample() { // 创建 JTable 对象 table = new JTable(); // 创建表头 String[] columns = {"ID", "Name", "Age", "Gender", "Action"}; // 创建数据模型 model = new DefaultTableModel(columns, 0); // 将数据模型设置为 JTable 的模型 table.setModel(model); // 添加按钮列 TableColumnModel columnModel = table.getColumnModel(); columnModel.getColumn(4).setCellRenderer(new ButtonRenderer()); columnModel.getColumn(4).setCellEditor(new ButtonEditor(new JCheckBox())); // 添加 JTable 到 JFrame 窗口 add(new JScrollPane(table)); // 设置窗口属性 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setSize(600, 400); setVisible(true); // 加载数据库数据 loadData(); } public void loadData() { try { // 创建 JDBC 连接 Class.forName("com.mysql.jdbc.Driver"); Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", ""); // 创建 SQL 查询语句 String sql = "SELECT * FROM users"; Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery(sql); // 获取列的名称和数量 ResultSetMetaData metaData = rs.getMetaData(); int columnCount = metaData.getColumnCount(); String[] columns = new String[columnCount]; for (int i = 1; i <= columnCount; i++) { columns[i - 1] = metaData.getColumnName(i); } // 添加数据到模型 while (rs.next()) { Object[] rowData = new Object[columnCount + 1]; for (int i = 1; i <= columnCount; i++) { rowData[i - 1] = rs.getString(i); } rowData[columnCount] = "Action"; model.addRow(rowData); } // 关闭 JDBC 连接 rs.close(); stmt.close(); con.close(); } catch (Exception e) { e.printStackTrace(); } } public static void main(String[] args) { new JTableExample(); } // 自定义按钮列的渲染器 class ButtonRenderer extends JButton implements TableCellRenderer { public ButtonRenderer() { setOpaque(true); } public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { setText((value == null) ? "" : value.toString()); return this; } } // 自定义按钮列的编辑器 class ButtonEditor extends DefaultCellEditor { protected JButton button; private String label; private boolean isPushed; public ButtonEditor(JCheckBox checkBox) { super(checkBox); button = new JButton(); button.setOpaque(true); button.addActionListener(e -> fireEditingStopped()); } public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) { if (isSelected) { button.setForeground(table.getSelectionForeground()); button.setBackground(table.getSelectionBackground()); } else { button.setForeground(table.getForeground()); button.setBackground(table.getBackground()); } label = (value == null) ? "" : value.toString(); button.setText(label); isPushed = true; return button; } public Object getCellEditorValue() { if (isPushed) { // 在这里编写按钮单击后的操作 JOptionPane.showMessageDialog(button, label + " was clicked!"); } isPushed = false; return label; } public boolean stopCellEditing() { isPushed = false; return super.stopCellEditing(); } protected void fireEditingStopped() { super.fireEditingStopped(); } } } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值