teacher.getInstance().connectSql();//前面的方法是单列化,第二个是你加载驱动,连接数据库teacher.deleteAllTeacherToSql();//调用删除数据的方法,首先去查询全部的数据 deleteAllTeacherToSql(){ ................省略部分 st = sql.executeQuery("select * from teacher"); ................省略部分 }当次段代码出现空指针时,不要怀疑代码的写作上的错误.这里的错误就是没有实例化 sql,也就是sql的值是null;可以打印结果查看:System.out.peintln(sql);解决办法的话就是:调用方法前的时候不加载数据库,把它方法方法里面,然后你的try{}catch{}finally{};因为finally{}里面会关闭数据库;如改正后的:teacher.getInstance();//前面的方法是单列化,第二个是你加载驱动,连接数据库teacher.deleteAllTeacherToSql();//调用删除数据的方法,首先去查询全部的数据 deleteAllTeacherToSql(){ connectSql(); //数据库的加载 ................省略部分 st = sql.executeQuery("select * from teacher"); ................省略部分 }finally{ closeAqllSQL();//关闭数据库 }