Oracle8i JDBC Developer's Guide and Reference Release 2 (8.1.6) A81354-01 |
|
This section demonstrates the use of the Oracle JDBC Thin driver for a simple applet that selects "Hello World" and the date from the database. Both the HTML page and applet code are shown here. A JDBC applet, like any typical applet, can be deployed using any standard Web server and run from any standard browser.
In this example, the Web server and database must be on the same host, as this is not a signed applet and does not use Oracle Connection Manager. For more information, see "Connecting to a Database on a Different Host Than the Web Server". For a complete discussion of how to use JDBC with applets, see "JDBC in Applets".
Here is the HTML code for the user interface for the applet.
<html> <head> <title>JDBC applet</title> </head> <body> <h1>JDBC applet</h1> This page contains an example of an applet that uses the Thin JDBC driver to connect to Oracle.<p> The source code for the applet is in <a href="JdbcApplet.java">JdbcApplet.java</a>. Please check carefully the driver class name and the connect string in the code.<p> The Applet tag in this file contains a CODEBASE entry that must be set to point to a directory containing the Java classes from the Thin JDBC distribution *and* the compiled JdbcApplet.class.<p> As distributed it will *not* work because the classes*.zip files are not in this directory.<p> <hr> <applet codebase="." archive="classes111.zip" code="JdbcApplet" width=500 height=200> </applet> <hr>
Here is the source code for the applet.
/* * This sample applet just selects 'Hello World' and the date from the database */ // Import the JDBC classes import java.sql.*; // Import the java classes used in applets import java.awt.*; import java.io.*; import java.util.*; public class JdbcApplet extends java.applet.Applet { // The connect string static final String connect_string = "jdbc:oracle:thin:scott/tiger@langer:5521:rdbms"; /* This is the kind of string you would use if going through the * Oracle connection manager which lets you run the database on a * different host than the Web Server. See the Net8 Administrator's Guide * for more information. * static final String connect_string = "jdbc:oracle:thin:scott/tiger@ * (description=(address_list=(address=(protocol=tcp) * (host=dlsun511)(port=1610))(address=(protocol=tcp) * (host=pkrishna-pc2)(port=1521))) * (source_route=yes)(connect_data=(sid=orcl)))"; */ // The query we will execute static final String query = "select 'Hello JDBC: ' || sysdate from dual"; // The button to push for executing the query Button execute_button; // The place where to dump the query result TextArea output; // The connection to the database Connection conn; // Create the User Interface public void init () { this.setLayout (new BorderLayout ()); Panel p = new Panel (); p.setLayout (new FlowLayout (FlowLayout.LEFT)); execute_button = new Button ("Hello JDBC"); p.add (execute_button); this.add ("North", p); output = new TextArea (10, 60); this.add ("Center", output); } // Do the work public boolean action (Event ev, Object arg) { if (ev.target == execute_button) { try { // See if we need to open the connection to the database if (conn == null) { // Load the JDBC driver DriverManager.registerDriver (new oracle.jdbc.driver.OracleDriver()); // Connect to the databse output.appendText ("Connecting to " + connect_string + "\n"); conn = DriverManager.getConnection (connect_string); output.appendText ("Connected\n"); } // Create a statement Statement stmt = conn.createStatement (); // Execute the query output.appendText ("Executing query " + query + "\n"); ResultSet rset = stmt.executeQuery (query); // Dump the result while (rset.next ()) output.appendText (rset.getString (1) + "\n"); // We're done output.appendText ("done.\n"); } catch (Exception e) { // Oops output.appendText (e.getMessage () + "\n"); } return true; } else return false; } }