科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道使用Java Swing界面实现数据库基本操作

使用Java Swing界面实现数据库基本操作

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

使用Java Swing界面实现数据库基本操作

作者:龚勋 来源:赛迪网技术社区 2007年11月17日

关键字: 数据库 swing java

  • 评论
  • 分享微博
  • 分享邮件

实例:用Java Swing图形化界面来对数据库操作(增,删,查,改)

数据库版本:SQLServer2000

数据库名:dxaw

用户名:dxaw

密码:123

表名:bankAccount

表结构:id(int[自动增长]),ownerName(varchar),accountValue(varchar),accountLevel(varchar)

程序代码:

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

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.microsoft.jdbc.sqlserver.SQLServerDriver");
        String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=dxaw";
        conn=DriverManager.getConnection(url,"dxaw","123");
        stat = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
    } catch (Exception ex) {
    }
    }
    public static void main(String[] args) {
        data data = new data();
    }

    public void actionPerformed(ActionEvent e) {
        if(e.getSource()==add)
        {add();}
        if(e.getSource()==select)
        {select();}
        if(e.getSource()==update)
        {update();}
        if(e.getSource()==del)
        {del();}
    }


    public void del() {
    try {

    int row=table.getSelectedRow();
    stat.executeUpdate("delete bankAccount where accountID='"+body[row][0]+"'");
    JOptionPane.showMessageDialog(null,"数据已成功删除");
       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,"插入信息",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");
   String accountValue=t[3].getText();
   int accountLevel=Integer.parseInt(t[5].getText());
   stat.executeUpdate("update bankAccount set ownerName='"+ownerName+"',
   accountValue='"+accountValue+"',accountLevel='"+accountLevel+"' 
   where accountID='"+body[row][0]+"'");
   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.getInt(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,"插入数据错误!");
        }
      }

     } catch (Exception ex) {
     }

    }
}
查看本文来源
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章