import java.sql.*; //导入java.sql包 public class Conn { //创建类Conn Connection con; Statement stmt; public Connection getConnection(){ //建立返回值为Connection的方法 try { Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); System.out.println("数据库驱动加载成功"); } catch (ClassNotFoundException e) { e.printStackTrace(); } try { con=DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;" + "DatabaseName=学生库","sa","12345"); System.out.println("数据库连接成功"); stmt=con.createStatement(); stmt.executeQuery("drop table 销售表"); System.out.println("删除成功"); stmt.close(); } catch (SQLException e) { e.printStackTrace(); } return con; //按方法要求返回个Connection对象 } public static void main(String[] args) { //主方法 Conn c = new Conn(); //创建本类对象 c.getConnection(); //调用连接数据库方法 } }
第18行运行结束后,表删除成功了,可是出现异常,System.out.println("删除成功");这句不运行
提示如下:
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]No ResultSet set was produced.
at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.executeQueryInternal(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.executeQuery(Unknown Source)
at ceshi.Conn.getConnection(Conn.java:20)
at ceshi.Conn.main(Conn.java:42)
stmt.executeQuery("drop table 销售表");
执行删除操作 还用executeQuery啊,不是有executeUpdate和execute吗。。。
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]No ResultSet set was produced.
很明显的告诉你了没有返回值,改成executeUpdate应该就没问题了
executeQuery一般用于查询操作,executeUpadate用于更新,删除,修改操作,而且我们应该使用preparedStatement,这样可以防止Sql注入,提高代码的性能,以及提高代码的可读性