`
dyllove98
  • 浏览: 1383000 次
  • 性别: Icon_minigender_1
  • 来自: 济南
博客专栏
73a48ce3-d397-3b94-9f5d-49eb2ab017ab
Eclipse Rcp/R...
浏览量:38348
4322ac12-0ba9-3ac3-a3cf-b2f587fdfd3f
项目管理checkList...
浏览量:78674
4fb6ad91-52a6-307a-9e4f-816b4a7ce416
哲理故事与管理之道
浏览量:131833
社区版块
存档分类
最新评论

使用JTable组件操作数据库中的表

 
阅读更多

使用JTable组件显示message表的记录、更新message表的记录、像message表插入记录。本例共有4个Java源文件,需分别保存编译,其中Example.java是主类,效果图如

Example.java代码

 1 import javax.swing.*;    
 2 import java.awt.*;
 3 import java.awt.event.*;
 4 import java.sql.*; 
 5 public class Example{
 6     public static void main(String args[ ]){
 7         try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");  
 8         }
 9         catch(ClassNotFoundException e){
10                System.out.println(""+e);
11         } 
12         DatabaseWin win=new DatabaseWin();  
13     }
14 }
15 class DatabaseWin extends JFrame implements ActionListener{//主窗口
16        JMenuBar menubar;
17        JMenu menu;
18        JMenuItem itemShow,itemUpdate,itemInsert;
19        ShowRecord showRecord;
20        ModifyRecord modifyRecord;
21        InsertRecord insertRecord;
22        DatabaseWin(){
23            menubar=new JMenuBar(); 
24            menu=new JMenu("操作数据库");
25            itemShow=new JMenuItem("显示记录");
26            itemUpdate=new JMenuItem("更新记录");
27            itemInsert=new JMenuItem("插入记录");
28            itemShow.addActionListener(this);
29            itemUpdate.addActionListener(this);
30            itemInsert.addActionListener(this);
31            menu.add(itemShow);
32            menu.add(itemUpdate);
33            menu.add(itemInsert);
34            menubar.add(menu);
35            showRecord=new ShowRecord("显示记录对话框");
36            modifyRecord=new ModifyRecord("修改记录对话框");
37            insertRecord=new InsertRecord("插入记录对话框");
38            setJMenuBar(menubar);
39            setBounds(100,100,370,250);
40            setVisible(true);
41            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
42        } 
43        public void actionPerformed(ActionEvent e){
44            if(e.getSource()==itemShow)
45               showRecord.setVisible(true);
46            else if(e.getSource()==itemUpdate)
47               modifyRecord.setVisible(true);
48            else if(e.getSource()==itemInsert)
49               insertRecord.setVisible(true);
50       }
51 }

ShowRecord.java代码

 1 import javax.swing.* ;
 2 import java.awt.* ;
 3 import java.awt.event.* ;
 4 import java.sql.* ;
 5 public class ShowRecord extends JDialog implements ActionListener  //负责显示记录的类
 6 {
 7     JTable table ;
 8     Object a[][] ;
 9     Object name[]={"学号","姓名","出生日期","身高"} ;
10     JButton showRecord ;
11     Connection con ;
12     Statement sql ;
13     ResultSet rs ;
14     ShowRecord(String title){
15       setTitle(title) ;
16       showRecord=new JButton("显示记录") ;
17       showRecord.addActionListener(this) ;
18       add(showRecord,BorderLayout.NORTH) ;
19       setBounds(200,60,400,250) ;
20     }
21     public void actionPerformed(ActionEvent e){
22       try
23       {
24         con=DriverManager.getConnection("jdbc:odbc:hello","","") ;
25         sql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY) ;
26         rs=sql.executeQuery("SELECT * FROM message") ;
27         rs.last() ;
28         int lastNumber=rs.getRow() ;
29         a=new Object[lastNumber][4] ;
30         int k=0 ;
31         rs.beforeFirst() ;
32         while(rs.next()){
33             a[k][0]=rs.getString(1) ;
34             a[k][1]=rs.getString(2) ;
35             a[k][2]=rs.getDate(3) ;
36             a[k][3]=rs.getString(4) ;
37             k++ ;
38         }
39         con.close() ;
40       }
41       catch (SQLException ee)
42       {
43           System.out.println(ee) ;
44       }
45       table=new JTable(a,name) ;
46       getContentPane().removeAll() ;
47       add(showRecord,BorderLayout.NORTH) ;
48       add(new JScrollPane(table),BorderLayout.CENTER) ;
49       validate() ;
50     }
51 }

ModifyRecord.java代码

 1 import javax.swing.*;
 2 import java.awt.*;
 3 import java.awt.event.*;
 4 import java.sql.*; 
 5 import javax.swing.border.*;
 6 public class ModifyRecord extends JDialog implements ActionListener{ //负责更新记录的类
 7      JLabel hintLabel;
 8      JTextField inputNumber;
 9      Object name[]={"姓名","出生日期","身高"};
10      Object a[][]=new Object[1][3];
11      JTable table;
12      JButton enterModify; 
13      Connection con;
14      Statement sql; 
15      ResultSet rs;
16      String num;
17      ModifyRecord(String s){
18         setTitle(s);
19         hintLabel=new JLabel("输入学号(回车确认):");
20         inputNumber=new JTextField(20);
21         table=new JTable(a,name);
22         enterModify=new JButton("更新记录");
23         setLayout(null); 
24         Box baseBox=Box.createHorizontalBox();
25         baseBox.add(hintLabel);
26         baseBox.add(inputNumber);
27         baseBox.add(new JScrollPane(table));
28         baseBox.add(enterModify);
29         add(baseBox);
30         baseBox.setBounds(10,40,600,38);
31         inputNumber.addActionListener(this);
32         enterModify.addActionListener(this);
33         setBounds(20,60,700,200);
34     }
35     public void actionPerformed(ActionEvent e){
36        if(e.getSource()==inputNumber)
37        try{ num=inputNumber.getText().trim();

38             con=DriverManager.getConnection("jdbc:odbc:hello","","");
39             sql=con.createStatement();
40             rs=sql.executeQuery("SELECT * FROM message WHERE number='"+num+"'");
41             boolean boo=rs.next();
42             if(boo==false){
43                    JOptionPane.showMessageDialog
44                    (this,"学号不存在","提示",JOptionPane.WARNING_MESSAGE);
45             }
46             else{

47                    a[0][0]=rs.getString(2);
48                    a[0][1]=rs.getDate(3).toString();
49                    a[0][2]=rs.getString(4);
50                    table.repaint();
51             }
52            con.close();
53        }  
54        catch(SQLException ee){ 
55            System.out.println(ee);
56        }
57       if(e.getSource()==enterModify){
58            try{ con=DriverManager.getConnection("jdbc:odbc:hello","","");
59                 sql=con.createStatement();
60                 sql.executeUpdate
61                 ("UPDATE message SET name='"+a[0][0]+
62                   "',birthday='"+a[0][1]+
63                   "',height='"+a[0][2]+"'WHERE number='"+num+"'");
64                  JOptionPane.showMessageDialog
65                    (this,"更新成功","成功",JOptionPane.PLAIN_MESSAGE);     
66                  con.close();
67            }  
68            catch(SQLException ee){ 
69                  JOptionPane.showMessageDialog
70                 (this,"更新失败"+ee,"失败",JOptionPane.ERROR_MESSAGE);
71            }    
72       } 
73     }      
74 }

InsertRecord.java代码

 1 import javax.swing.*;
 2 import java.awt.*;
 3 import java.awt.event.*;
 4 import java.sql.*; 
 5 import javax.swing.border.*;
 6 public class InsertRecord extends JDialog implements ActionListener{ //负责插入记录的类
 7      JLabel hintLabel;
 8      Object name[]={"学号","姓名","出生日期","身高"};
 9      Object a[][]=new Object[1][4];
10      JTable table;
11      JButton enterInsert; 
12      Connection con;
13      Statement sql; 
14      ResultSet rs;
15      String num;
16      InsertRecord(String s){
17         setTitle(s);
18         hintLabel=new JLabel("输入新记录:");
19         table=new JTable(a,name);
20         enterInsert=new JButton("插入新记录");
21         setLayout(null); 
22         Box baseBox=Box.createHorizontalBox();
23         baseBox.add(hintLabel);
24         baseBox.add(new JScrollPane(table));
25         baseBox.add(enterInsert);
26         add(baseBox);
27         baseBox.setBounds(10,40,600,38);
28         enterInsert.addActionListener(this);
29         setBounds(120,160,700,200);
30     }
31     public void actionPerformed(ActionEvent e){
32        try{  con=DriverManager.getConnection("jdbc:odbc:hello","","");
33              sql=con.createStatement();
34              int k=sql.executeUpdate
35              ("INSERT INTO message VALUES('"+
36               a[0][0]+"','"+a[0][1]+"','"+a[0][2]+"','"+a[0][3]+"')");
37              if(k==1)
38                 JOptionPane.showMessageDialog
39                 (this,"插入记录成功","成功",JOptionPane.PLAIN_MESSAGE);     
40              con.close();
41        }  
42        catch(SQLException ee){ 
43              JOptionPane.showMessageDialog
44              (this,"插入记录失败"+ee,"失败",JOptionPane.ERROR_MESSAGE);
45        }    
46     }      
47 }

 

分享到:
评论

相关推荐

    Java jtable使用 包括读取数据库 虚拟表模型

    Java jtable使用 包括读取数据库 虚拟表模型

    java取出mysql中数据,显示在jtable里面

    java取出mysql中数据,显示在jtable里面

    java语言JTable,model构造表格并显示后台数据.zip

    通过连接后台数据库,把后台数据显示在表格中。表格通过JTable和model方法构造和显示较为容易,其中model方法可以自然显示表格内容,本人学艺不精也是在经过各种试错之后,才得出了代码比较简易的方法,欢迎批评和...

    Java数据库编程中查询结果的表格式输出

    利用Java开发数据库应用系统时,经常需要在用户界面上显示查询结果。由于SUN公司提供的JDK1.x开发工具包不是可视化的集成开发环境 (IDE),不能象Delphi、VB那样方便地把查询结果在DBGrid等表格中显示出来。因此,...

    Movies:简单的电影数据库应用程序。 使用 JTable GUI 组件显示来自 Derby 数据库的数据

    电影简单的电影数据库应用程序。 使用 JTable GUI 组件显示来自 Derby 数据库的数据 Custom TableModel 处理在 GUI 中显示来自表的数据。

    Java数据库查询结果的输出

     JTable组件是Swing组件中比较复杂的小件,隶属于javax.swing包,它能以二维表的形式显示数据。类Jtable: 定义如下: public class JTable extends JComponent implements TableModelListener, Scrollable, ...

    学生成绩管理系统源代码(java)+Swing窗口程序+mysql数据库

    使用技术:mysql数据库,java数据库技术,swing组件,jtable,jbutton等组件使用。 主要功能: 老师权限: 1.新增老师资料,修改老师资料,删除老师资料,查询老师信息; 2.新增学生成绩,修改学生成绩,删除学生...

    Java图形界面开发—学生信息管理系统 完整源码

    学生信息管理系统,使用Java开发。 1、登录界面可以进行登录操作。...3、图形化界面中使用了JTable等组件,将查询结果显示在表格中。 详见我的博客:http://blog.csdn.net/qq_25827845/article/details/50932501

    java连接数据库

    java连接数据库对初学者来说,应该是比较难的,这里就是一个用java连接数据库的很好的实例,供大家学习。里面有详细的源代码,还讲述了功能丰富的JTable等组件的使用。

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    以开发人员在项目开发中经常遇到的问题和必须掌握的技术为中心,介绍了应用Java进行桌面程序开发各个方面的知识和技巧,主要包括Java语法与面向对象技术、Java高级应用、窗体与控件应用、文件操作典型应用和数据库...

    超市管理系统的Java程序

    SupermarketDatabase类用于处理与数据库相关的操作,包括添加产品、更新产品、删除产品、获取产品列表和获取产品详细信息等。其中的initialize方法用于初始化数据库相关的数据结构。 以上程序是一个简单的超市管理...

    java 图形化界面 学生信息管理系统.rar

    基于Java开发的学生信息管理系统的设计,使用图形化可视化界面。 学生信息管理系统,使用Java开发。...3、图形化界面中使用了JTable等组件,将查询结果显示在表格中。 该项目使用的jframe框架,并非Javaweb应用

    酒店预订源代码.txt

    酒店预订系统,使用java+mysql开发...3.图形化界面中使用了JTable等组件,将查询结果显示在表格中。 关于更多详解见我的博客: https://blog.csdn.net/qqshenbaobao/article/details/114417043?spm=1001.2014.3001.5501

    Java开发技术大全 电子版

    14.8.9表格(Jtable)使用示例508 14.8.10树(JTree)使用示例518 14.8.11菜单使用示例523 14.9布局管理527 14.9.1流式布局(FlowLayout)回顾527 14.9.2边框布局(BorderLayout)使用示例528 14.9.3网格布局...

    Java图形界面开发—学生信息管理系统 完整源码.rar

    学生信息管理系统,使用Java开发。 1、登录界面可以进行登录操作。...3、图形化界面中使用了JTable等组件,将查询结果显示在表格中。 详见我的博客:http://blog.csdn.net/qq_25827845/article/details/50932501

    疯狂JAVA讲义

    学生提问:当我们使用编译C程序时,不仅需要指定存放目标文件的位置,也需要指定目标文件的文件名,这里使用javac编译Java程序时怎么不需要指定目标文件的文件名呢? 13 1.5.3 运行Java程序 14 1.5.4 根据...

Global site tag (gtag.js) - Google Analytics