其实我个人认为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]
本文地址:http://com.8s8s.com/it/it18125.htm