就是用JAVA和SQL的连接问题
import java.sql.*; //加载java数据连接包,java基本所有的数据库的调用的都在这个东西里面 
import java.awt.*;
import java.applet.*;public class Testsql extends Applet

public void init()
{
resize(400,300);
}

public void paint(Graphics g)
{
this.setBackground(Color.white);
this.setForeground(Color.red);
g.drawString("编号",40,40);
  g.drawString("名称",100,40);
  g.drawString("所在州",220,40);
    String address = "jdbc:odbc:testnorthwind"; //取得连接的url名,注意sqlserver是dsn名 
    Connection con; //实例化一个Connection对象 
    Statement stmt; 
    String query = "select * from customers";
    
    try
    {
     Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //加载jdbc-odbc桥驱动
    }
    catch(java.lang.ClassNotFoundException e)
    {
     System.err.print("ClassNotFoundException: "); //加载jdbc-odbc桥错误 
      System.err.println(e.getMessage()); //其他错误
    }
    
    try
    {
     con = DriverManager.getConnection(address); //数据库连接 
      stmt = con.createStatement(); //Create 一个声明 
      ResultSet rs = stmt.executeQuery(query); //返回一个结果集 
      int i=0;
      while(rs.next())
      {
g.drawString(rs.getString(1),40,60+i);
g.drawString(rs.getString(3),100,60+i);
g.drawString(rs.getString(6),220,60+i);
i+=20;
      }
     rs.close();
     stmt.close(); 
     con.close(); //上面的语句关闭声明和连接 
    }
catch(SQLException ex)
{
System.out.println("SQLException:"+ex.getMessage());
}
catch(Exception e)
{
System.out.println("Exception:"+e.getMessage());
}
}
}    在用JDK的时候,无法通过,先前是数据库连接问题,现在是线程问题,不知道怎么回事,希望大家帮帮忙啊,谢谢啊,支持一下大学生啊!!!!

解决方案 »

  1.   

    我测试了,你的con = DriverManager.getConnection(address);
    这里没加登陆数据库的用户名和密码,加上就可以了. 比如con = DriverManager.getConnection(address,"sa","1234");
    其实你看报的错就应该想到没写用户名和密码的
    用户 '(null)' 登录失败。
      

  2.   

    我按照您的做了啊,但是还是一样的啊,有这样的异常啊,你能看一下吗???
    E:\java\javasql>appletviewer applet.html
    Exception in thread "AWT-EventQueue-1" java.security.AccessControlException: acc
    ess denied (java.lang.RuntimePermission accessClassInPackage.sun.jdbc.odbc)
            at java.security.AccessControlContext.checkPermission(AccessControlConte
    xt.java:264)
            at java.security.AccessController.checkPermission(AccessController.java:
    427)
            at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
            at java.lang.SecurityManager.checkPackageAccess(SecurityManager.java:151
    2)
            at sun.applet.AppletSecurity.checkPackageAccess(AppletSecurity.java:190)        at sun.applet.AppletClassLoader.loadClass(AppletClassLoader.java:116)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
            at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
            at java.lang.Class.forName0(Native Method)
            at java.lang.Class.forName(Class.java:164)
            at testsqlindex.paint(testsqlindex.java:26)
            at sun.awt.RepaintArea.paintComponent(RepaintArea.java:248)
            at sun.awt.RepaintArea.paint(RepaintArea.java:224)
            at sun.awt.windows.WComponentPeer.handleEvent(WComponentPeer.java:254)
            at java.awt.Component.dispatchEventImpl(Component.java:4031)
            at java.awt.Container.dispatchEventImpl(Container.java:2024)
            at java.awt.Component.dispatchEvent(Component.java:3803)
            at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
            at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchTh
    read.java:242)
            at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
    ad.java:163)
            at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)        at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
    Exception in thread "AWT-EventQueue-1" java.security.AccessControlException: acc
    ess denied (java.lang.RuntimePermission accessClassInPackage.sun.jdbc.odbc)
            at java.security.AccessControlContext.checkPermission(AccessControlConte
    xt.java:264)
            at java.security.AccessController.checkPermission(AccessController.java:
    427)
            at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
            at java.lang.SecurityManager.checkPackageAccess(SecurityManager.java:151
    2)
            at sun.applet.AppletSecurity.checkPackageAccess(AppletSecurity.java:190)        at sun.applet.AppletClassLoader.loadClass(AppletClassLoader.java:116)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
            at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
            at java.lang.Class.forName0(Native Method)
            at java.lang.Class.forName(Class.java:164)
            at testsqlindex.paint(testsqlindex.java:26)
            at sun.awt.RepaintArea.paintComponent(RepaintArea.java:248)
            at sun.awt.RepaintArea.paint(RepaintArea.java:224)
            at sun.awt.windows.WComponentPeer.handleEvent(WComponentPeer.java:254)
            at java.awt.Component.dispatchEventImpl(Component.java:4031)
            at java.awt.Container.dispatchEventImpl(Container.java:2024)
            at java.awt.Component.dispatchEvent(Component.java:3803)
            at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
            at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchTh
    read.java:242)
            at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
    ad.java:163)
            at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)        at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
      

  3.   

    问题好象
    在执行Class.forName("sun.jdbc.odbc:JdbcOdbcDriver")时错
    Applet没有权限执行该操作
    如果你以Application的方式操作,应该没问题
      

  4.   

    里边加main函数,作为application运行,即便有问题也应该不是上面列出的问题
    Applet在操作很多操作上是有限制的