首页 | 互联网 | IT动态 | IT培训 | Cisco | Windows | Linux | Java | .Net | Oracle | 软件测试 | C/C++ | 嵌入式开发 | 存储世界 | 服务器
网络设备 | IDC | 安全 | 求职招聘 | 数字网校 | 笔记本电脑 | 北大青鸟 | 技术专题 | 电子书下载 | 教学视频 | 源码下载 | 搜索 | 博客 | 论坛
中国IT实验室Linux频道
中国IT教育
Google
首页 资讯动态 认证考试 新手入门 核心技术 高级技术 J2EE J2ME Java&XML 开源技术 其他技术 RSS订阅 论坛 专题
您现在的位置: 中国IT实验室 >> Java >> 核心技术 >> 高级编程 >> 正文

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

实例:用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) {
     }

    }
}
【责编:Peng】

中国IT教育

相关产品和培训
文章评论
 友情推荐链接
 认证培训
 专题推荐

 ·Oracle外键及外键约束修改行为
 ·开源软件测试工具学习专题
 ·JSP Web开发 入门基础到高手进阶教程
 ·JavaFX—是Java桌面的新希望么?
 ·安全至上 .NET开发安全策略
 ·测试用例设计之道-测试用例学习专题
 ·面向Java开发人员的Scala指南
 ·Java设计模式之实例详解
 ·Oracle数据库11g 面向DBA和开发人员的重要新特性
 ·桌面应用软件编程 J2SE技术详解
 今日更新
 社区讨论
 博客论点
 频道精选
 Java 频道导航