当前页面: 开发资料首页 → J2SE 专题 → 想试JAVA访问ODBC数据库,这么简单的一句都不能运行通过,请邦俺看看
想试JAVA访问ODBC数据库,这么简单的一句都不能运行通过,请邦俺看看
摘要: 想试JAVA访问ODBC数据库,这么简单的一句都不能运行通过,请邦俺看看
import java.awt.*;
import java.applet.*;
import java.sql.*;
public class java_dbf extends Applet
{
public void paint(Graphics g)
{
try
{
Class.forName(-#34;sun.jdbc.odbc.JdbcOdbcDriver-#34;); // ??难道有毛病
}
catch(Exception e)
{
g.drawString(-#34;Error-#34;,0,20);
}
}
}
编译正常,用HTML运行后,显示Error,说明try中的:
Class.forName(-#34;sun.jdbc.odbc.JdbcOdbcDriver-#34;);
有错,问题出在啥,求助!
g.drawString(e.toString(),0,20);
看看什么错
java.security.AccessControlException: access denied(java.lang.RuntimePermission
accessClassPackage.sun.jdbc.odbc)
这么长的提示:好象是安全方面的,怎办呢?
在applet中安全限制不允许访问jdbc吧
Applet怎么可以访问?
用servlet访问数据库,再和applet通信
支持~
果然在非APPLET中通过,我放到CONSOLE方式,新建一个FRAME,打开Access2000一个库中的表,
public void paint(Graphics g)
{
try
{
Class.forName(-#34;sun.jdbc.odbc.JdbcOdbcDriver-#34;);
Connection hCon=DriverManager.getConnection(-#34;jdbc:odbc:access2000-#34;);
Statement hState=hCon.createStatement();
ResultSet rs=hState.executeQuery(-#34;select * from tz-#34;);
int ly=50;
while (rs.next())
{
g.drawString(rs.getString(5),10,ly);
ly=ly+15;
}
hCon.close();
}
catch(Exception e)
{
g.drawString(e.toString(),0,50);
}
}
但书中访问库的例子也是在Applet,为何却不能通过呢?怎么才能绕过安全呢
我java书上有介绍
要改变缺省安全策略+数字签名,很麻烦!
我也不明白:
为何不允许APPLET访问它的源程序主机上的数据库呢
难道这包含什么不安全呢?
APPLET好像默认是不允许访问本地电脑资源的
APPLET不允许:是指IE客户端不能访问客户本地硬盘,但可以访问HTML来源服务端,
就是允许访问沙箱。