说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

在JBuilder4中做一个applet用jdbc连接Oracle数据库,怎样放入IE中运行?!

编辑:说三道四文库 发布时间:2018-04-24 05:01
HTML文档下载 WORD文档下载 PDF文档下载
在JBuilder4中做一个applet用jdbc连接Oracle数据库,怎样放入IE中运行?!
用到JBuilder4中的以下控件:
tableScrollPanel,jdbTable,jdbNavToolBar,database,queryDataSet,
他们分别在dbswing.jar和dx.jar两个文件中。
在JBuilder4环境中可以对Oracle中的表进行增,删,改,查(Web Run)。
现在我想把该applet放入到WebServer(WebLogic)环境中,用IE5.5调用之。
html如下:
<HTML>
<HEAD>
<TITLE>
HTML Test Page
</TITLE>
</HEAD>
<BODY>
pjt_nationcode.Applet1 will appear below in a Java enabled browser.<BR>
<APPLET
  CODEBASE = "."
  CODE     = "Applet1.class"
  archive  = "swingall.jar,db_test.jar,dbswing.jar,dx,jar"
  NAME     = "TestApplet"
  WIDTH    = 400
  HEIGHT   = 300
  HSPACE   = 0
  VSPACE   = 0
  ALIGN    = middle
>
</APPLET>
</BODY>
</HTML>
其中swingall.jar是从sun的网站上down下来的,db_test.jar是用JBuilder4的jar生成向导产生的(大约6M)。
IE5.5的安全性已经手工设置为最低了。
OS是NT4 Workstation+sp6
在IE中调用该applet产生一大堆的安全警告!并且applet不能正常调用!
请问怎么办?
有什么办法能降低jar文件的大小?!因为有一些.jar文件里可能有我并不需要的class!
具体如何操作?!
你的数据库和web服务器在同一台物理主机上吗?
如果不是,那么,applet是不能直接和数据库连接的。写一个运行在web服务器端的代理程序吧。
oracle数据库服务器:172.16.1.2,数据库实例:labora
我的数据库驱动器放在目录:E:\OracleJdbc
系统环境变量中的classpath中加入数据库驱动器值:
E:\OracleJdbc\classes12.zip;E:\OracleJdbc\classes111.zip;E:\OracleJdbc\jndi.zip;
E:\OracleJdbc\jta.zip;E:\OracleJdbc\nls_charset12.zip

1.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:@172.16.1.2:1521:labora","scott","tiger";

  // This is the kind of string you would use if going through the 
  // Oracle 8 connection manager which lets you run the database on a 
  // different host than the Web Server.  See the on-line documentation
  // 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;
  }
}

2.调用该applet的html

<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 classes111.zip are not
in this directory.<p>

<hr>
<applet codebase="." archive="classes111.zip"
code="JdbcApplet" width=500 height=200>
</applet>
<hr>
我想你遇到的和我的一样。我觉得是IE的支持问题。
IE5内置的是JDK1,而JBUILDER的是JDK1.3。而且你用了JBUILDER的控件,更解析不了。
如果你能解决,麻烦告诉我一声
KK_EMAIL@21CN.COM
QQ:65159328
 这个问题有人回答过了,如果只是支持问题的化,可以下载插件,或装入JDK1.3
并将原来的HTML代码改为如下类似代码:

<html>
<title>a</title>
<body>
<!--"CONVERTED_APPLET"-->
<!-- CONVERTER VERSION 1.3 -->
<p>Test Tree</p>
<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93"
WIDTH = 950 HEIGHT = 342  codebase="http://java.sun.com/products/plugin/1.3/jinstall-13-win32.cab#Version=1,3,0,0">
<PARAM NAME = CODE VALUE = "rpt_ui.ReportMan.class" >

<PARAM NAME="type" VALUE="application/x-java-applet;version=1.3">
<PARAM NAME="scriptable" VALUE="false">
<COMMENT>
<EMBED type="application/x-java-applet;version=1.3"  CODE = "EditTree" WIDTH = 950 HEIGHT = 342  scriptable=false pluginspage="http://java.sun.com/products/plugin/1.3/plugin-install.html"><NOEMBED></COMMENT>

</NOEMBED></EMBED>
</OBJECT>

<!--
<APPLET CODE = "NotHelloWorldApplet" WIDTH = 950 HEIGHT = 342>


</APPLET>
-->
<!--"END_CONVERTED_APPLET"-->
</body>
</html>
请注意<OBJECT></OBJECT>中间的部分
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘