你有没有导入:java.sql.*;再就是你这里错了:
conn=DriverManager.getConnection("jdbc:odbc:archive");应该为:Connection conn=DriverManager.getConnection("jdbc:odbc:archive");或者:java.sql.Connection conn = null;//要记得初始化
conn=DriverManager.getConnection("jdbc:odbc:archive");你conn有错,stmt当然会报错啦,试试吧

解决方案 »

  1.   

    不是,错误提示是无效的conn和stmt,java.sql*倒入了,还有,我没有加finally{
     //rs.close();
     stmt.close();
     conn.close();}这个的时候程序是可以运行的
      

  2.   

    声明变量在最前面,在try{上面
    java.sql.Connection conn = null;//
    java.sql.Statemenet stmt = null;
      

  3.   

    这个问题很明显嘛
    你的conn和stmt是在try里面创建的,在finally里面是不可见的
    所以,你要把他们在try之前创建
    大家都糊涂了
    呵呵
      

  4.   

    以下是csdn里面的人发给我的帖子
    《--应该在没次用try{}住conn.open().然后在finally{}里面用conn.close()
    这样应该就可以每次打开连接,每次都关闭
    ——》
    他要在try里面打开conn,在finally中关闭conn,我是在try中关闭的,到底是怎么回事,请各位帮忙解答一下
      

  5.   

    要在finally里面关闭,这样即使出现异常也能关闭的
      

  6.   

    我的客户就说,有连接过多的错误提示,现在我就是想解决这个问题,但是我所有在try 中建立了conn ,同时在try中也关闭了conn.close();,为什么还有错误呢,还有,我的java.sql.Connetion conn是在try中申明的,请问不用连接池有什么办法,用代码实现
      

  7.   

    建议还是用连接池,一个物理conn,可以实现200多个会话,这样基本不会出现连接过多的情况
      

  8.   

    那我这样可以吧try{
    java.sql.Connection conn;
    .
    .
    .
    .
    .
     conn.close}
      

  9.   

    并没有解决,可能还会提示连接过多,虽然我已经在try中关闭了conn
      

  10.   

    就是写一个数据库访问的类
    然后写一个close()方法
    在这个方法里面关闭,ResultSet,Statement,Connection