把connection=DriverManager.getConnection(connectionStr, "", "");  放到try catch块中再试试看

解决方案 »

  1.   

    public static synchronized Connection getConnection(String url,
                                                         String user,
                                                         String password) throws SQLException
    凡是函数定义时有throws ***Exception的,都必须捕捉异常,否则编译不过!
      

  2.   

    public class test {
    //windows下,且系统较小时,使用access是一个比较好的选择,这里提供一种不使用数据源的JAVA直接连接数据库方法。
    public static void main(String []args){
    String phone_no,city_name;
    Connection conDatabase;
    Statement stmt;
    ResultSet rs; try{
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    conDatabase=DriverManager.getConnection("jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=E:\\Computer Language\\Src.JAVA\\test\\classes\\test\\phone_no.mdb");
    //ACCESS文件名"E:\\Computer Language\\Src.JAVA\\test\\classes\\test\\phone_no.mdb"
    stmt=conDatabase.createStatement();
    rs=stmt.executeQuery("select phone_no,city_name from tb_phone_no where city_code='0414'");
    //ResultSet executeQuery(String sql) throws SQLException 执行一个SQL语句,返回一个ResultSet类型结果
    //int executeUpdate(String sql) throws SQLException 执行INSERT、UPDATE、DELETE语句,返回操作成功的记录数量
    //boolean execute(String sql) throws SQLException 执行一个可能会返回多个结果的SQL语句(?)
    while(rs.next()){
    //指针的初始位置是指向第一行之前,所以第一次调用next()方法时,指针才指向结果集中的第一行
    phone_no=rs.getString(1);//取第一列值,即:phone_no列
    city_name=rs.getString(2);//取第二列值,即:city_name列
    System.out.println(phone_no + " " +city_name);
    }
    rs.close();//关闭结果集
    conDatabase.close();//断开连接
    }
    catch(Exception e){
    System.out.println(e.toString());
    }
    }//main
    }//test别忘记自己加上头文件