其实我个人认为Applet要访问数据库的话,采用我以前一篇文章《Servlet传送查询记录集给Applet》的方法去实现比较好的,这样可以不用客户端下载jdbc驱动程序,同时也不必暴露数据库结构。所以这篇文章仅作为技术探讨。 我这里要讲解的是Applet直接访问SQLServer2000的实例,我想其他的数据库也是类似了。准备工作,到微软站点下载Microsoft SQL Server 2000 Driver for JDBC。下面详解各个步骤: 1。写一个简单的Applet import java.awt.*; import java.applet.*; import java.sql.*;
public class Test extends Applet { private String strErrorMessage = ""; public void init() { try{ //注册SQLServer2000 jdbc驱动程序 Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); //连接数据库 Connection conn = DriverManager.getConnection("jdbc:microsoft:sqlserver://192.9.200.52:1433;databaseName=bluesite", "sa", ""); String sql= "SELECT UserName FROM UserInfo"; Statement stmt = conn.createStatement(); ResultSet rslt = stmt.executeQuery(sql); while (rslt.next()) { strErrorMessage +=rslt.getString(1); } rslt.close(); stmt.close(); conn.close(); } catch (Exception exp) { strErrorMessage += exp.toString(); } }
public void paint(Graphics g) { g.drawString(strErrorMessage, 50, 60 ); } } 编译。
2。打包数据库驱动程序与Test.class 建一个Test.jar,把Test.class,以及SQLServer2000驱动程序的三个jar文件解出来打包进去。 最后的Test.jar目录结构如下: com\microsoft\jdbc[目录] com\microsoft\jdbcx[目录] com\microsoft\util[目录] Test.class
3。写一个使用的html文件 <HTML> <HEAD> </HEAD> <BODY> <CENTER> <APPLET code = "Test.class" archive = "Test.jar" width = "800" height = "300" > </APPLET> </CENTER> </BODY> </HTML>
4。编辑策略文件.java.policy
grant { permission java.lang.RuntimePermission "accessClassInPackage.com.microsoft.util"; permission java.lang.RuntimePermission "accessClassInPackage.com.microsoft.jdbc"; permission java.lang.RuntimePermission "accessClassInPackage.com.microsoft.jdbcx"; permission java.net.SocketPermission "192.9.200.52:1433", "connect"; };
注:192.9.200.52是数据库服务器的ip,1433是sqlserver开的连接端口 保存到系统盘:\Documents and Settings\UserName下,注意这个文件是要保存到客户端的
5。运行测试 直接在浏览器中打开那个html文件。应该可以看到结果
全文完。如有不详之处请邮件联系[email protected] 
|