zoukankan      html  css  js  c++  java
  • 访问oracle数据库

    /**
       @version 1.30 2004-08-05
       @author Cay Horstmann
    */
    
    import java.net.*;
    import java.sql.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.io.*;
    import java.util.*;
    import javax.swing.*;
    import oracle.jdbc.pool.*;
    
    /**
       This program uses metadata to display arbitrary tables
       in a database.
    */
    public class ViewDB
    {  
       public static void main(String[] args)
       {  
          JFrame frame = new ViewDBFrame();
          frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
          frame.setVisible(true);
       }
    }
    
    /**
       The frame that holds the data panel and the navigation 
       buttons.
    */
    class ViewDBFrame extends JFrame
    {
       public ViewDBFrame()
       {  
          setTitle("ViewDB");
          setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);
    
          tableNames = new JComboBox();
          tableNames.addActionListener(new
             ActionListener()
             {
                public void actionPerformed(ActionEvent event)
                {
                   showTable((String) tableNames.getSelectedItem());
                }
             });
          add(tableNames, BorderLayout.NORTH);
    
          try
          {  
             conn = getConnection();         
             meta = conn.getMetaData();
             createStatement();
             getTableNames();
          }
          catch (SQLException e)
          {  
             JOptionPane.showMessageDialog(this, e);
          }
          catch (IOException e)
          {  
             JOptionPane.showMessageDialog(this, e);
          }      
    
          JPanel buttonPanel = new JPanel();
          add(buttonPanel, BorderLayout.SOUTH);
    
          if (scrolling)
          {
             previousButton = new JButton("Previous");
             previousButton.addActionListener(new
                ActionListener()
                {
                   public void actionPerformed(ActionEvent event)
                   {
                      showPreviousRow();
                   }
                });
             buttonPanel.add(previousButton);
          }
    
          nextButton = new JButton("Next");
          nextButton.addActionListener(new
             ActionListener()
             {
                public void actionPerformed(ActionEvent event)
                {
                   showNextRow();
                }
             });
          buttonPanel.add(nextButton);
    
          addWindowListener(new
             WindowAdapter()
             {  
                public void windowClosing(WindowEvent event)
                {  
                   try
                   {                   
                      if (conn != null) conn.close();
                   }
                   catch (SQLException e) 
                   {
                      while (e != null)
                      {
                         e.printStackTrace();
                         e = e.getNextException();
                      }
                   }
                }
            });
       }
    
       /**
          Creates the statement object used for executing queries.
          If the database supports scrolling cursors, the statement
          is created to yield them.
       */
       public void createStatement() throws SQLException
       {
          if (meta.supportsResultSetType(
             ResultSet.TYPE_SCROLL_INSENSITIVE))
          {
             stat = conn.createStatement(
                ResultSet.TYPE_SCROLL_INSENSITIVE, 
                ResultSet.CONCUR_READ_ONLY);
             scrolling = true;
          }
          else
          {
             stat = conn.createStatement();
             scrolling = false;
          }
       }
       
       /**
          Gets all table names of this database and adds them
          to the combo box.
       */
       public void getTableNames() throws SQLException
       {
          ResultSet mrs = meta.getTables(null, null, null, new String[] { "TABLE" });
          while (mrs.next())
             tableNames.addItem(mrs.getString(3));
          mrs.close();
       }
    
       /**
          Prepares the text fields for showing a new table, and
          shows the first row.
          @param tableName the name of the table to display
       */
       public void showTable(String tableName)
       {  
          try
          {  
             if (rs != null) rs.close();
             rs = stat.executeQuery("SELECT * FROM " + tableName);
             if (scrollPane != null) 
                remove(scrollPane);
             dataPanel = new QDataPanel(rs);
             scrollPane = new JScrollPane(dataPanel);
             add(scrollPane, BorderLayout.CENTER);
             validate();
             showNextRow();
          }
          catch (SQLException e)
          {  
             JOptionPane.showMessageDialog(this, e);
          }
       }
    
       /**
          Moves to the previous table row.
       */
       public void showPreviousRow()
       {  
          try
          {  
             if (rs == null || rs.isFirst()) return;
             rs.previous();
    
             dataPanel.showRow(rs);
          }
          catch (SQLException e)
          {  
             JOptionPane.showMessageDialog(this, e);
          }      
       }
    
       /**
          Moves to the next table row.
       */
       public void showNextRow()
       {  
          try
          {  
             if (rs == null || scrolling && rs.isLast()) return;
    
             if (!rs.next() && !scrolling) 
             { 
                rs.close(); 
                rs = null; 
                return; 
             }
    
             dataPanel.showRow(rs);
          }
          catch (SQLException e)
          {  
             JOptionPane.showMessageDialog(this, e);
          }      
       }
    
       /**
          Gets a connection from the properties specified
          in the file database.properties
          @return the database connection
       */
       public static Connection getConnection()
          throws SQLException, IOException
       {  
          /*
          Properties props = new Properties();
          FileInputStream in 
             = new FileInputStream("database.properties");
          props.load(in);
          in.close();
    
          String drivers = props.getProperty("jdbc.drivers");
          if (drivers != null) System.setProperty("jdbc.drivers", drivers);
          String url = props.getProperty("jdbc.url");
          String username = props.getProperty("jdbc.username");
          String password = props.getProperty("jdbc.password");
    
          return DriverManager.getConnection(url, username, password);
          
           
           */
          OracleDataSource ds = new OracleDataSource();
          ds.setURL("jdbc:oracle:thin:@10.69.11.25:1521:ora");
          return ds.getConnection("nick","nick");
       }
    
       public static final int DEFAULT_WIDTH = 300;
       public static final int DEFAULT_HEIGHT = 200;  
    
       private JButton previousButton;
       private JButton nextButton;
       private QDataPanel dataPanel;
       private Component scrollPane;
       private JComboBox tableNames;
    
       private Connection conn;
       private Statement stat;
       private DatabaseMetaData meta;
       private ResultSet rs;
       private boolean scrolling;
    }
    
    /**
       This panel displays the contents of a result set.
    */
    class QDataPanel extends JPanel
    {
       /**
          Constructs the data panel.
          @param rs the result set whose contents this panel displays
       */
       public QDataPanel(ResultSet rs) throws SQLException
       {
          fields = new ArrayList<JTextField>();
          setLayout(new GridBagLayout());
          GridBagConstraints gbc = new GridBagConstraints();
          gbc.gridwidth = 1;
          gbc.gridheight = 1;
    
          ResultSetMetaData rsmd = rs.getMetaData();
          for (int i = 1; i <= rsmd.getColumnCount(); i++)
          {  
             gbc.gridy = i - 1;
    
             String columnName = rsmd.getColumnLabel(i);
             gbc.gridx = 0;
             gbc.anchor = GridBagConstraints.EAST;
             add(new JLabel(columnName), gbc);
    
             int columnWidth = rsmd.getColumnDisplaySize(i);
             JTextField tb = new JTextField(columnWidth);
             fields.add(tb);
    
             gbc.gridx = 1;
             gbc.anchor = GridBagConstraints.WEST;
             add(tb, gbc);
          }      
       }
    
       /**
          Shows a database row by populating all text fields
          with the column values.
       */
       public void showRow(ResultSet rs) throws SQLException
       {  
          for (int i = 1; i <= fields.size(); i++)
          {  
             String field = rs.getString(i);
             JTextField tb = (JTextField) fields.get(i - 1);
             tb.setText(field);
          }
       }
    
       private ArrayList<JTextField> fields;
    }
  • 相关阅读:
    php1
    c# out参数
    c#冒泡算法
    c#方法 最大值我最小值
    方法
    OUT参数
    芮年
    PHP博客
    数组习题
    从郑和下西洋 到华人爱燕窝
  • 原文地址:https://www.cnblogs.com/qqjue/p/2502552.html
Copyright © 2011-2022 走看看