⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dbframe.java

📁 JAVA入门的一些基本写法以及一些入门的简单代码 由于本人只是初学者
💻 JAVA
字号:
import java.net.URL;import java.sql.*;import java.util.Vector;import java.awt.*;import java.awt.event.*;public class dbFrame extends Frame   implements ActionListener, ItemListener{    Database db;    Choice Tables, Columns;    List Data;    Button Search, Quit;    public dbFrame(){      super("数据库浏览");      setGUI();      db = new Database("sun.jdbc.odbc.JdbcOdbcDriver");      db.Open("jdbc:odbc:JDBCTEST;pwd=java", "C:\\My Documents\\biblio.mdb");      String tnames[] = db.getTableNames();      loadChoice(Tables, tnames);    }   //------------------------------------   private void setGUI(){      setBackground(Color.lightGray);      setLayout(new BorderLayout());      Panel pn = new Panel();      add("North",pn);      pn.setLayout(new GridLayout(2,2));      pn.add(new Label("Tables"));      pn.add(new Label("Columns"));      pn.add(Tables = new Choice());      pn.add(Columns = new Choice());      Panel pc = new Panel();      add(pc);      pc.setLayout(new BorderLayout());      pc.add("North",new Label("Data"));      pc.add("Center",Data = new List(15));      Panel pQuit=new Panel();      pQuit.add(Quit = new Button("Quit"));      pc.add("South",pQuit);      Tables.addItemListener(this);      Columns.addItemListener(this);      Quit.addActionListener(this);      setBounds(100, 100, 500, 300);      setVisible(true);   }   //------------------------------------   private void loadChoice(Choice choice, String[] s){      choice.removeAll();      for (int i=0; i< s.length; i++)          choice.add(s[i]);   }   //------------------------------------   private void loadList(List list, String[] s){    //清除并填充指定的列表框    list.removeAll();    for (int i=0; i< s.length; i++)         list.add(s[i]);   }   //------------------------------------   public void actionPerformed(ActionEvent e){      Object obj = e.getSource();      if (obj == Quit){          try{               db.con.close();          }catch(Exception ec){          }         System.exit(0);      }   }   //------------------------------------   public void itemStateChanged(ItemEvent e){      Object obj = e.getSource();      if (obj == Tables)         showColumns();      if (obj == Columns)         showData();   }   //显示列名  private void showColumns(){      String cnames[] = db.getColumnNames(Tables.getSelectedItem());      loadChoice(Columns, cnames);   }   //------------------------------------   private void showData(){      String colname = Columns.getSelectedItem();      String colval = db.getColumnValue(Tables.getSelectedItem(), colname);      Data.setVisible(false);      Data.removeAll();      Data.setVisible(true);      colval = db.getNextValue(Columns.getSelectedItem());      while (colval.length()>0){         Data.add(colval);         colval = db.getNextValue(Columns.getSelectedItem());      }   }   //------------------------------------   static public void main(String argv[]){      new dbFrame();   }}//======================================================class Database{    Connection con;    resultSet results;    ResultSetMetaData rsmd;    DatabaseMetaData dma;    String catalog;    String types[];   public Database(String driver){       types = new String[1];       types[0] = "TABLE";       try{            Class.forName(driver);       }catch (Exception e){          System.out.println("driver load failed:"+ e.getMessage());       }   }   //-----------------------------------   public void Open(String url, String cat){      catalog = cat;      try{          con   = DriverManager.getConnection(url);          dma =con.getMetaData();          results = new resultSet(dma.getCatalogs());          String s[];         while (results.hasMoreElements()){             s = results.nextElement();         }      }catch (Exception e){         System.out.println("open failed: "+ e.getMessage());      }   }   //-----------------------------------   public String[] getTableNames(){        String[] tbnames = null;        Vector tname = new Vector();        try{             results = new resultSet(dma.getTables(null, null, null, types));            while (results.hasMoreElements())                 tname.addElement(results.getColumnValue("TABLE_NAME"));         }catch (Exception e) {             System.out.println(e);        }        tbnames = new String[tname.size()];       for (int i=0; i< tname.size(); i++)           tbnames[i] = (String)tname.elementAt(i);      return tbnames;   }   // 返回表的元数据   public String[] getTableMetaData()   {      results = null;      try{      results = new resultSet(dma.getTables(null, null, null, types));      }      catch (Exception e)      {System.out.println(e.getMessage());}      return results.getMetaData();   }   //返回一个字段的元数据   public String[] getColumnMetaData(String tablename){       results = null;       try {            results = new resultSet(dma.getColumns(catalog, null, tablename, null));       }catch (Exception e){            System.out.println(e.getMessage());}       return results.getMetaData();   }   //返回一个字段名数组   public String[] getColumnNames(String table){      String[] tbnames = null;      Vector tname = new Vector();      try {            results = new resultSet(dma.getColumns(catalog, null, table, null));           while (results.hasMoreElements() )                 tname.addElement(results.getColumnValue("COLUMN_NAME"));      }catch (Exception e) {            System.out.println(e);      }      tbnames = new String[tname.size()];      for (int i=0; i< tname.size(); i++)           tbnames[i] = (String)tname.elementAt(i);      return tbnames;   }   //返回给定字段的值   public String getColumnValue(String table, String columnName){      String res = null;      try{          if (table.length()>0)              results = Execute("Select distinct "+columnName+" from "+table+" order by "+columnName);           res = results.getColumnValue(columnName);      } catch (Exception e){           System.out.println("Column value error" +columnName+ e.getMessage());      }      return res;   }   public String getNextValue(String columnName){       String res = "";       try{            // 使用存储的 resultSet            //返回该列的下一个值           if (results.hasMoreElements())            res = results.getColumnValue(columnName);        } catch (Exception e){            System.out.println("next value error"+columnName+ e.getMessage());        }        return res;   }   //对此数据库执行一个 SQL 查询   public resultSet Execute(String sql){       results = null;      try{            Statement stmt = con.createStatement();            results = new resultSet(stmt.executeQuery(sql));       }catch (Exception e){            System.out.println(e.getMessage());       }       return results;   }}//==========================================class resultSet{   ResultSet rs;   ResultSetMetaData rsmd;   int numCols;   public resultSet(ResultSet rset){      rs = rset;      try{           rsmd = rs.getMetaData();           numCols = rsmd.getColumnCount();      }catch (Exception e){           System.out.println(e.getMessage());      }   }   //-----------------------------------   public String[] getMetaData(){      String md[] = new String[numCols];      try{           for (int i=1; i<= numCols; i++)              md[i-1] = rsmd.getColumnLabel(i);      }catch (Exception e){           System.out.println(e.getMessage());      }      return md;   }   //-----------------------------------   public boolean hasMoreElements(){      try{          return rs.next();      }catch(Exception e){          return false;      }   }   //-----------------------------------   public String[] nextElement(){      String[] row = new String[numCols];      try{          for (int i = 1; i <= numCols; i++)              row[i-1] = rs.getString(i);      }catch (Exception e){          System.out.println(e.getMessage());      }     return row;   }   //-------------------------------------   public String getColumnValue(String columnName){      String res = "";      try{           res = rs.getString(columnName);      }catch (Exception e){           System.out.println(e.getMessage());      }      return res;   }   //----------------------------------------------   public void finalize(){      try{           rs.close();}      catch(Exception e){           System.out.println(e.getMessage());      }   }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -