你要把 stmt=conn.createStatement();
      
       query="select * from student";
      
       rs=stmt.executeQuery(query);
      
      while(rs.next())
          {
           subject=rs.getString(2);
           answer=rs.getString(3);
           System.out.print("问题内容="+subject);
           System.out.println(",答案内容="+answer);
          }
      rs.close();
      stmt.close();
      conn.close();一起放到 建立 conn 的 try 块中。

解决方案 »

  1.   

    肯定是你的jdbc与odbc桥没有设置好,
    导致此语句 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 不能执行,
    因此语句 conn = DriverManager.getConnection(url, "sa", "1982101"); 不能实例化。
      

  2.   

    import java.sql.*;
    import java.io.*;
    public class NorthwindAccessODBCDemo {
      public static void main(String[] args) throws Exception {
        String query,subject,answer;      
        Statement stmt;
        ResultSet rs;
        String url = "jdbc:odbc:student";
        Connection conn;             //建立连接类
        try{
          //告诉程序使用jdbc与odbc桥创建数据库联接
          Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
          System.out.println("JDBC-ODBC的驱动程序注册成功");
        }catch(Exception e){
          System.out.println("找不到JDBC-ODBC的驱动程序");
        }
        try{
          //使用DriverManager类的getConnection()方法建立联接,第一个字符参数定义用户名,
          //第二个字符参数定义密码
          conn = DriverManager.getConnection(url, "sa", "1982101");
          System.out.println("数据库联接成功");      
           stmt=conn.createStatement();
          
           query="select * from student";
          
           rs=stmt.executeQuery(query);
          
          while(rs.next())
              {
               subject=rs.getString(2);
               answer=rs.getString(3);
               System.out.print("问题内容="+subject);
               System.out.println(",答案内容="+answer);
              }
          rs.close();
          stmt.close();
          conn.close();
      }catch(Exception ex){
        System.out.println("url定义错误,找不到相关的数据源");
      }
      }
    }
      

  3.   

    哎!让我怎么说呢!没有初始化Connection!没有初始化Connection!没有初始化Connection!没有初始化Connection!没有初始化Connection!没有初始化Connection!没有初始化Connection!没有初始化Connection!没有初始化Connection!没有初始化Connection!没有初始化Connection!没有初始化Connection!没有初始化Connection!没有初始化Connection!没有初始化Connection!没有初始化Connection!没有初始化Connection!没有初始化Connection!没有初始化Connection!没有初始化Connection!没有初始化Connection!没有初始化Connection!没有初始化Connection!没有初始化Connection!没有初始化Connection!没有初始化Connection!没有初始化Connection!没有初始化Connection!没有初始化Connection!没有初始化Connection!没有初始化Connection!没有初始化Connection!没有初始化Connection!没有初始化Connection!没有初始化Connection!没有初始化Connection!Connection conn=null就好了!Connection conn=null就好了!Connection conn=null就好了!Connection conn=null就好了!Connection conn=null就好了!Connection conn=null就好了!Connection conn=null就好了!Connection conn=null就好了!Connection conn=null就好了!Connection conn=null就好了!Connection conn=null就好了!Connection conn=null就好了!Connection conn=null就好了!Connection conn=null就好了!Connection conn=null就好了!Connection conn=null就好了!Connection conn=null就好了!Connection conn=null就好了!Connection conn=null就好了!Connection conn=null就好了!Connection conn=null就好了!Connection conn=null就好了!Connection conn=null就好了!Connection conn=null就好了!Connection conn=null就好了!Connection conn=null就好了!Connection conn=null就好了!Connection conn=null就好了!
      

  4.   

    Connection conn;             //建立连接类
    是不对的
    Connection con=DriverManager.getConnection(url,info);try {
    String url=new String ();
    url="jdbc:odbc:pa";
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    java.util.Properties info = new java.util.Properties();
    info.put("user","sa");
    info.put("password","");
    info.put("weblogic.codeset","GBK");
    Connection con=DriverManager.getConnection(url,info);
    DatabaseMetaData dma=con.getMetaData();
    out.println("Connected to :"+dma.getURL()); Statement stmt=con.createStatement();
    String SQL=new String();
    SQL="select  *  from  as_table";
    ResultSet rs=stmt.executeQuery(SQL);
    out.println("<table width='75%' border='1'>");
    while(rs.next()){
    String name=new String();
    name=rs.getString("tab_na");
    out.println(" <tr><td>");
    out.println(name);
    out.println("</td></tr>");
    }
    rs.close();
    stmt.close();
    con.close();
    }catch(SQLException ex){
    while(ex!=null){
    out.println("sqlstate:"+ex.getSQLState());
    out.println(ex.toString());
    ex=ex.getNextException();
    }
    }
      

  5.   

    import java.sql.*;
    import java.io.*;public class SqlServerDemo {
      Connection conn;
      Statement stmt;
      ResultSet rs;  public static void main(String[] args) throws Exception {  }  public void print() {
        String URL = "jdbc.odbc:student";
        String query, subject, answer;    try {
          Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");      conn = DriverManager.getConnection(URL, "", "");      stmt = conn.createStatement();      query = "select * from student";      rs = stmt.executeQuery(query);
        }
        catch (SQLException ex) {
          ex.printStackTrace();
        }
        catch (ClassNotFoundException ex) {
          ex.printStackTrace();
        }    try {
          while (rs.next()) {
            subject = rs.getString(2);
            answer = rs.getString(3);
            System.out.print("问题内容=" + subject);
            System.out.println(",答案内容=" + answer);
          }
        }
        catch (SQLException ex1) {
          ex1.printStackTrace();
        }
        try {
          rs.close();
          stmt.close();
          conn.close();
        }
        catch (SQLException ex2) {
          ex2.printStackTrace();
        }  }
    }
    ---------------------------
    这样定位错误
      

  6.   

    D:\>javac NorthwindAccessODBCDemo.java
    NorthwindAccessODBCDemo.java:27: variable conn might not have been initialized
    stmt=conn.createStatement();
    变量conn可能还没有被初始化。如果你在getconn的过程中发生异常被catch到,conn就不会被正常的初始化,但是代码还是向下走到stmt=conn.createStatement();当然这种情况下conn没有被初始化。解决办法:
    把这两句话放在一起try...catch...finally
    conn=DriverManager.getConnection(..);
    stmt=conn.createStatement();后面可能还会告诉你说resultset变量没有初始化,原因也是一样的。记得做完想做的事情以后要把resultset、stmt、conn都关掉。
      

  7.   

    将Connection conn=null;
    再试试
      

  8.   

    try {
    //使用DriverManager类的getConnection()方法建立联接,第一个字符参数定义用户名,
    //第二个字符参数定义密码
    conn = DriverManager.getConnection(url, "sa", "1982101");
    System.out.println("数据库联接成功");
    }
    catch(Exception ex){
    System.out.println("url定义错误,找不到相关的数据源");
    } stmt = conn.createStatement();conn = DriverManager.getConnection(url, "sa", .....这个 conn 在 try 模块里面初始化,但如果抛出异常,你在 catch 的处理仅仅是打印一句语句,然后继续执行程序,那么当执行到 stmt = conn.createStatement() 的时候,由于 conn 初始化失败了,自然就会抛出 conn might not have been initialized 的错误了,解决办法:
    把这些代码全部放在一个 try catch 里面
      

  9.   

    我怀疑是错误提示错误, 因为所有的数据库操作都会抛出 IOExcption ,但是你却没有捕获,错误提示应该是指你建立 conn 对象不一定能成功,但你却没有在 try 块中使用他,可能会有不确定的错误出现,因此编译器不让通过编译.
      

  10.   

    同意 giant216($贫下中农$) 的
    将Connection conn;             //建立连接类
    改成Connection conn = null;             //建立连接类这是java语言的一个特别的地方,如果是类的实例字段,
      Connection conn; 
    它会自动用null初始化。           
    但在方法或static块内部, 变量申明时必须要初始化。否则要报错。
    初始化的方法一个是 =null,或者 = DriverManager.getConnection(url, "sa", "1982101");