📄 updatedbframe.java
字号:
import java.net.URL;import java.sql.*;import java.util.Vector;import java.awt.*;import java.awt.event.*;public class UpdateDBFrame extends Frame implements ActionListener{ Vector fields; Button first,previous,next,last,insert,update,delete,commite,cancel,quit; Panel dataView,commandPanel,pUp,pDown; Connection con; Statement stm; ResultSet rs; boolean isInsert; public UpdateDBFrame() { setTitle("数据库更新"); setSize(400,400); setBackground(Color.lightGray); addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ System.exit(0); } } ); dataView=new Panel(); commandPanel=new Panel(); add("Center",dataView); dataView.setLayout(new GridBagLayout()); setButton(); add("South",commandPanel); fields=new Vector(); openTable(); loadField(); loadData(); isInsert=true; pack(); } private void setButton(){ commandPanel.setLayout(new GridLayout(2,1)); pUp=new Panel(); first=new Button("First"); first.addActionListener(this); previous=new Button("Previous"); previous.addActionListener(this); next=new Button("Next"); next.addActionListener(this); last=new Button("Last"); last.addActionListener(this); first.setEnabled(false); previous.setEnabled(false); pUp.add(first); pUp.add(previous); pUp.add(next); pUp.add(last); insert=new Button("Insert"); insert.addActionListener(this); update=new Button("Update"); update.addActionListener(this); delete=new Button("Delete"); delete.addActionListener(this); commite=new Button("Commite"); commite.addActionListener(this); cancel=new Button("Cancel"); cancel.addActionListener(this); quit=new Button("Quit"); commite.setEnabled(false); cancel.setEnabled(false); pDown=new Panel(); pDown.add(insert); pDown.add(update); pDown.add(delete); pDown.add(commite); pDown.add(cancel); pDown.add(quit); commandPanel.add(pUp); commandPanel.add(pDown); quit.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent evt){ System.exit(0); } } ); } public void openTable(){ try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); con=DriverManager.getConnection("jdbc:odbc:JDBCTEST;pwd=java"); stm=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); rs=stm.executeQuery("select * from publishers"); rs.first(); }catch(Exception e){ return; } } public void loadField(){ GridBagConstraints gbc=new GridBagConstraints(); gbc.weighty=100; try{ ResultSetMetaData rsmd=rs.getMetaData(); for(int i=1;i<=rsmd.getColumnCount() ;i++){ String fieldName=rsmd.getColumnName(i); int fieldSize=rsmd.getColumnDisplaySize(i) ; TextField txtField=new TextField(); txtField.setEditable(false) ; fields.add(txtField); gbc.weightx=0; gbc.anchor=GridBagConstraints.EAST; gbc.fill=GridBagConstraints.NONE; gbc.gridx=0; gbc.gridy=i-1; gbc.gridwidth=1; gbc.gridheight=1; dataView.add(new Label(fieldName),gbc); gbc.weightx=100; gbc.anchor=GridBagConstraints.WEST; gbc.fill=GridBagConstraints.HORIZONTAL; gbc.gridx=1; dataView.add(txtField,gbc); } }catch(Exception e){ return; } } public void loadData(){ try{ ResultSetMetaData rsmd=rs.getMetaData(); for(int i=1;i<=fields.size() ;i++){ String value=""; String name=rsmd.getColumnName(i).trim(); value=rs.getString(name); TextField txtField=(TextField)fields.get(i-1); txtField.setText(value); } }catch(Exception e){ System.out.println(e); } } public void actionPerformed(ActionEvent e){ Object obj = e.getSource(); if(obj==first) showfirst(); if(obj==previous) showprevious(); if(obj==next) shownext(); if(obj==last) showlast(); if(obj==insert) insertData(); if(obj==update) updateData(); if(obj==delete) delData(); if(obj==commite) commiteData(); if(obj==cancel) cancelCommand(); } private void showfirst(){ try{ rs.first(); loadData(); enableButtons(); }catch(Exception e){ } } private void showprevious(){ try{ rs.previous(); loadData(); enableButtons(); }catch(Exception e){ } } private void shownext(){ try{ rs.next(); loadData(); enableButtons(); }catch(Exception e){ } } private void showlast(){ try{ rs.last(); loadData(); enableButtons(); }catch(Exception e){ } } private void insertData(){ isInsert=true; pUp.setVisible(false); update.setEnabled(false); delete.setEnabled(false); commite.setEnabled(true); cancel.setEnabled(true); for(int i=1;i<=fields.size() ;i++){ TextField txtField=(TextField)fields.get(i-1); txtField.setText(""); txtField.setEditable(true); } insert.setEnabled(false); try{ // rs.moveToInsertRow(); }catch(Exception e){ System.out.println(e); } } private void updateData(){ isInsert=false; pUp.setVisible(false); insert.setEnabled(false); update.setEnabled(false); delete.setEnabled(false); commite.setEnabled(true); cancel.setEnabled(true); for(int i=1;i<=fields.size() ;i++){ TextField txtField=(TextField)fields.get(i-1); txtField.setEditable(true); } try{ // rs.moveToInsertRow(); }catch(Exception e){ System.out.println(e); } } private void commiteData(){ try{ ResultSetMetaData rsmd=rs.getMetaData(); for(int i=1;i<=fields.size() ;i++){ TextField txtField=(TextField)fields.get(i-1); String value=txtField.getText().trim(); String name=rsmd.getColumnName(i).trim().toUpperCase(); rs.updateString(name,value ); txtField.setEditable(false); } String value; if (isInsert) rs.insertRow() ; else rs.updateRow(); rs.moveToCurrentRow(); pUp.setVisible(true); insert.setEnabled(true); update.setEnabled(true); delete.setEnabled(true); commite.setEnabled(false); cancel.setEnabled(false); rs.refreshRow(); loadData(); enableButtons(); }catch(SQLException e){ System.out.println(e); } } private void cancelCommand(){ try{ for(int i=1;i<=fields.size() ;i++){ TextField txtField=(TextField)fields.get(i-1); txtField.setEditable(false); } rs.moveToCurrentRow(); rs.refreshRow(); pUp.setVisible(true); insert.setEnabled(true); update.setEnabled(true); delete.setEnabled(true); commite.setEnabled(false); cancel.setEnabled(false); loadData(); enableButtons(); }catch(Exception e){ System.out.println(e); } } private void delData(){ try{ int CursorPos=rs.getRow(); rs.deleteRow(); rs.absolute(CursorPos-1); loadData(); enableButtons(); }catch(Exception e){ } } private void enableButtons(){ try{ first.setEnabled(!rs.isFirst()); previous.setEnabled(!rs.isFirst()); next.setEnabled(!rs.isLast()); last.setEnabled(!rs.isLast()); }catch(Exception e){ } } static public void main(String[] args){ UpdateDBFrame db=new UpdateDBFrame(); db.show(); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -