创建命令对象之后,可以通过命令对象的一些方法来执行SQL语句,这些方法主要包括以下三种。由于在学习过程中,CallableStatement对象执行存储过程不太常见,因此本节将重点讲解Statement对象和PreparedStatement对象的执行方法。
1.boolean execute() throws SQLException
execute()方法可以执行指定的SQL语句,该方法的返回值是boolean类型。若返回值为true,则表示所执行的SQL语句有查询结果;若返回false,则表示所执行的SQL语句没有查询结果。
由于该方法只能简单告知处理结果的大致情况,若要对返回结果进行进一步处理(例如,需要遍历SQL语句执行之后得到的结果集),该方法略显不足。
Statement对象执行SQL语句的方法为:
PreparedStatement对象执行SQL语句的时候,如果SQL语句带参数,使用了“?”占位符,则在执行之前必须使用setXXX()方法为参数赋值,具体使用方法如下:
提示:
在执行SQL语句的时候,Statement对象的执行方法需要SQL语句作为参数,而PreparedStatement对象不需要SQL语句作为参数。特别是在执行带参数的SQL语句时,如果向PreparedStatement对象的执行方法传递了SQL语句参数,那么程序能编译,不会报错,但执行时将会抛出“com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax;”异常,提示开发人员检查SQL语句是否正确。
2.ResultSet executeQuery() throws SQLException
executeQuery()可以执行查询类型(select)的SQL语句,此方法将返回查询所获取的结果集ResultSet对象。因此,如果使用executeQuery()方法,需要定义ResultSet对象的实例来接收函数的返回值,使用方法如下:
ResultSet res = stmt.executeQuery(sql);(www.daowen.com)
或者
ResultSet res = pstmt.executeQuery();
上述代码中,stmt表示Statement对象实例,pstmt表示PreparedStatement对象实例。
3.int executeUpdate() throws SQLException
executeUpdate()方法可以执行修改类型(insert、update、delete)的SQL语句,此方法将返回执行语句后所影响的行数(int类型)。如果返回值大于0,则表示有行数被影响,即修改数据成功;如果返回值为0,则表示修改数据失败,或者没有符合需要修改的行。该方法的使用方法如下:
int n = stmt.executeUpdate (sql);
或者
int n = pstmt.executeUpdate();
上述代码中,stmt表示Statement对象实例,pstmt表示PreparedStatement对象实例。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。