您的位置:首页 > 产品设计 > UI/UE

execute、executeupdate、executequery三者的区别

2016-02-25 14:45 477 查看
JDBC中Statement 接口提供了三种执行 SQL 语句的方法:executeQuery、executeUpdate 和 execute。使用哪一个方法由 SQL 语句所产生的内容决定。

一、boolean execute(String sql)

允许执行查询语句、更新语句、DDL语句。

返回值为true时,表示执行的是查询语句,可以通过getResultSet方法获取结果;

返回值为false时,执行的是更新语句或DDL语句,getUpdateCount方法获取更新的记录数量。

例子:

st = con.createStatement();

boolean ret = st.execute(“select username,age from employee”);

//boolean ret = st.execute(“update employee set age=10”);

con.commit();

if (ret == true) {

System.out.println(“获取的结果集是:”);

ResultSet rs = st.getResultSet();

while (rs.next()) {

System.out.println(rs.getString(1) + “:” + rs.getInt(2));

}

rs.close();

} else {

System.out.println(“更新的结果是:” + st.getUpdateCount());

}

二、int executeUpdate(String sql)

执行给定 SQL 语句,该语句可能为 INSERT、UPDATE 或 DELETE 语句,或者不返回任何内容的 SQL 语句(如 SQL DDL
4000
语句)。返回值是更新

的记录数量

例如 CREATE TABLE 和 DROP TABLE。INSERT、UPDATE 或 DELETE 语句的效果是修改表中零行或多行中的一列或多列。executeUpdate 的返

回值是一个整数(int),指示受影响的行数(即更新计数)。对于 CREATE TABLE 或 DROP TABLE 等不操作行的语句,executeUpdate 的返回

值总为零。

如:

//加载数据库驱动

Class.forName(“com.mysql.jdbc.Driver”);

//使用DriverManager获取数据库连接

Connection conn = DriverManager.getConnection(“jdbc:mysql://localhost:3306/test”,

“root”,”1234”);

//使用Connection来创建一个Statment对象

Statement stmt = conn.createStatement();

//执行DML语句,返回受影响的记录条数

return stmt.executeUpdate(sql);

三、ResultSet executeQuery(String sql)

执行给定的 SQL 语句,该语句返回单个 ResultSet 对象。

Class.forName(“com.mysql.jdbc.Driver”);

//使用DriverManager获取数据库连接

Connection conn = DriverManager.getConnection(“jdbc:mysql://localhost:3306/test”,

“root”,”1234”);

//使用Connection来创建一个Statment对象

Statement stmt = conn.createStatement();

//执行查询语句

ResultSet rs =stmt.executeQuery(“select * from teacher”);

//把查询结果输出来

while (rs.next())

{

System.out.println(rs.getInt(1) + “\t” + rs.getString(2));

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: