java swing 对数据库的简单操作例子(另一例)

来源:互联网 发布:怎么设置淘宝店铺页面 编辑:程序博客网 时间:2024/04/30 13:34

package test;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.*;
//import java.awt.*;
import javax.swing.*;

/**
 * 表名:bankAccount
 * 表结构:id(int[自动增长]),ownerName(varchar),accountValue(varchar),accountLevel(varchar)
 *
 * @author wbcui
 *
 */
public class data extends JFrame implements ActionListener {
 JButton add, select, del, update;

 JTable table;

 Object body[][] = new Object[50][4];

 String title[] = { "编号", "姓名", "分数", "级别" };

 Connection conn;

 Statement stat;

 ResultSet rs;

 JTabbedPane tp;

 public data() {
  super("数据库操作");
  this.setSize(400, 300);
  this.setLocation(300, 200);
  this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  JPanel ps = new JPanel();
  add = new JButton("添加");
  select = new JButton("显示");
  update = new JButton("更改");
  del = new JButton("删除");
  add.addActionListener(this);
  select.addActionListener(this);
  update.addActionListener(this);
  del.addActionListener(this);
  ps.add(add);
  ps.add(select);
  ps.add(update);
  ps.add(del);
  table = new JTable(body, title);
  tp = new JTabbedPane();
  tp.add("bankAccount表", new JScrollPane(table));
  this.getContentPane().add(tp, "Center");
  this.getContentPane().add(ps, "South");
  this.setVisible(true);
  this.connection();

 }

 public void connection() {
  try {
   Class.forName("com.mysql.jdbc.Driver");
   String url = "jdbc:mysql://localhost:3306/test";
   conn = DriverManager.getConnection(url, "cwb", "cwb123");
   stat = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
     ResultSet.CONCUR_READ_ONLY);
  } catch (Exception ex) {
  }
 }

 public static void main(String[] args) {
  data d=new data();
  d.select();
 }

 public void actionPerformed(ActionEvent e) {
  if (e.getSource() == add) {
   System.out.println("add");
   this.add();
  }
  if (e.getSource() == select) {
   System.out.println("select");
   this.select();
  }
  if (e.getSource() == update) {
   System.out.println("update");
   this.update();
  }
  if (e.getSource() == del) {
   System.out.println("del");
   this.del();
  }
 }

 public void del() {
  try {

   int row = table.getSelectedRow();
   String sql="delete from bankAccount where id='"+ body[row][0] + "'";
   stat.executeUpdate(sql);
   System.out.println("del1");
   JOptionPane.showMessageDialog(null, "数据已成功删除");
   System.out.println("del2");
   this.select();
  } catch (SQLException ex) {
  }
 }

 public void update() {
  try {
   int row = table.getSelectedRow();

   JTextField t[] = new JTextField[6];
   t[0] = new JTextField("输入姓名:");
   t[0].setEditable(false);
   t[1] = new JTextField();
   t[2] = new JTextField("输入分数:");
   t[2].setEditable(false);
   t[3] = new JTextField();
   t[4] = new JTextField("输入级别:");
   t[4].setEditable(false);
   t[5] = new JTextField();
   String but[] = { "确定", "取消" };
   int go = JOptionPane.showOptionDialog(null, t, "插入信息2",
     JOptionPane.YES_OPTION, JOptionPane.INFORMATION_MESSAGE,
     null, but, but[0]);
   if (go == 0) {
    String ownerName = new String(t[1].getText().getBytes(
      "ISO-8859-1"), "GBK");
    System.out.println(ownerName);
    String accountValue = t[3].getText();
    System.out.println(accountValue);
//    int accountLevel = Integer.parseInt(t[5].getText());
    String accountLevel = t[5].getText();
    System.out.println(accountLevel);
    String sql="update bankAccount set ownerName='"
     + ownerName + "',accountValue='" + accountValue
     + "',accountLevel='" + accountLevel
     + "' where id=" + body[row][0] + "";
    System.out.println(sql);
    stat.executeUpdate(sql);
    JOptionPane.showMessageDialog(null, "修改数据成功");
    this.select();
   }

  } catch (Exception ex) {
  }
 }

 public void select() {
  try {
   for (int x = 0; x < body.length; x++) {
    body[x][0] = null;
    body[x][1] = null;
    body[x][2] = null;
    body[x][3] = null;
   }
   int i = 0;
   rs = stat.executeQuery("select * from bankAccount");
   while (rs.next()) {
    body[i][0] = rs.getInt(1);
    body[i][1] = rs.getString(2);
    body[i][2] = rs.getString(3);
    body[i][3] = rs.getString(4);
    i = i + 1;
   }
   this.repaint();
  } catch (SQLException ex) {
  }

 }

 private void add() {

  try {

   JTextField t[] = new JTextField[6];
   t[0] = new JTextField("输入姓名:");
   t[0].setEditable(false);
   t[1] = new JTextField();
   t[2] = new JTextField("输入分数:");
   t[2].setEditable(false);
   t[3] = new JTextField();
   t[4] = new JTextField("输入级别:");
   t[4].setEditable(false);
   t[5] = new JTextField();
   String but[] = { "确定", "取消" };

   int go = JOptionPane.showOptionDialog(null, t, "插入信息",
     JOptionPane.YES_OPTION, JOptionPane.INFORMATION_MESSAGE,
     null, but, but[0]);
   if (go == 0) {
    try {
     String ownerName = new String(t[1].getText().getBytes(
       "ISO-8859-1"), "GBK");
     String accountValue = t[3].getText();
     int accountLevel = Integer.parseInt(t[5].getText());
     stat
       .executeUpdate("insert into bankAccount(ownerName,accountValue,accountLevel) values('"
         + ownerName
         + "','"
         + accountValue
         + "','"
         + accountLevel + "')");
     JOptionPane.showMessageDialog(null, "数据已成功插入!");
    } catch (Exception ee) {
     JOptionPane.showMessageDialog(null, "插入数据错误!");
    }
   }
   this.select();

  } catch (Exception ex) {
  }

 }
}
 

原创粉丝点击