JDBC中execute(), executeQuery()和executeUpdate()方法之间有什么区别?
和是JDBC API的接口的方法,用于执行SQL语句。
文章共849字 · 阅读需要大约3分钟
一键AI生成摘要,助你高效阅读
问答
·
executeQuery(), executeUpdate() 和 execute() 是JDBC API的java.sql.Statement接口的方法,用于执行SQL语句。
executeQuery() Vs executeUpdate() Vs execute()
executeQuery() | executeUpdate() | execute() |
此方法用于执行从数据库中检索某些数据的 SQL 语句。 | 此语句用于执行更新或修改数据库的 SQL 语句。 | 此方法可用于任何类型的 SQL 语句。 |
此方法返回一个 ResultSet 对象,该对象包含查询返回的结果。 | 此方法返回一个 int 值,该值表示受查询影响的行数。对于不返回任何内容的语句,这将为 0。 | 此方法返回布尔值。TRUE 表示查询返回了结果集对象,FALSE 表示返回了整型值或未返回任何内容。 |
此方法用于执行选择查询。 | 此方法用于执行非选择查询。 | 此方法用于执行选择和非选择查询。 |
例如:SELECT | 例如: DDL-> CREATE, ALTER | 任何类型的 SQL 语句。 |
创建语句对象后,可以使用语句接口的执行方法之一执行它,即execute(), executeUpdate() 和 executeQuery()。
execute() 方法:此方法用于执行 SQL DDL 语句,它返回一个布尔值,指定可以检索结果集对象的天气。
例
import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Statement; public class Example { public static void main(String args[]) throws SQLException { //Registering the Driver DriverManager.registerDriver(new com.mysql.jdbc.Driver()); //Getting the connection String mysqlUrl = "jdbc:mysql://localhost/sampleDB"; Connection con = DriverManager.getConnection(mysqlUrl, "root", "password"); System.out.println("Connection established......"); //Creating the Statement Statement stmt = con.createStatement(); //Executing the statement String createTable = "CREATE TABLE Employee( " + "Name VARCHAR(255), " + "Salary INT NOT NULL, " + "Location VARCHAR(255))"; boolean bool = stmt.execute(createTable); System.out.println(bool); } }
输出
Connection established...... false
executeUpdate():此方法用于执行插入、更新、删除等语句。它返回一个整数值,表示受影响的行数。
例
import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Statement; public class ExecuteUpdateExample { public static void main(String args[]) throws SQLException { //Registering the Driver DriverManager.registerDriver(new com.mysql.jdbc.Driver()); //Getting the connection String mysqlUrl = "jdbc:mysql://localhost/sampleDB"; Connection con = DriverManager.getConnection(mysqlUrl, "root", "password"); System.out.println("Connection established......"); //Creating the Statement Statement stmt = con.createStatement(); String insertData = "INSERT INTO Employee(" + "Name, Salary, Location) VALUES " + "('Amit', 30000, 'Hyderabad'), " + "('Kalyan', 40000, 'Vishakhapatnam'), " + "('Renuka', 50000, 'Delhi'), " + "('Archana', 15000, 'Mumbai')"; int i = stmt.executeUpdate(insertData); System.out.println("Rows inserted: "+i); } }
输出
Connection established...... Rows inserted: 4
executeQuery():此方法用于执行返回表格数据的语句(示例选择)。它返回类结果集的对象。
例
import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class ExecuteQueryExample { public static void main(String args[]) throws SQLException { //Registering the Driver DriverManager.registerDriver(new com.mysql.jdbc.Driver()); //Getting the connection String mysqlUrl = "jdbc:mysql://localhost/sampleDB"; Connection con = DriverManager.getConnection(mysqlUrl, "root", "password"); System.out.println("Connection established......"); //Creating the Statement Statement stmt = con.createStatement(); //Retrieving data ResultSet rs = stmt.executeQuery("Select *from Employee"); while(rs.next()) { System.out.print("Name: "+rs.getString("Name")+", "); System.out.print("Salary: "+rs.getInt("Salary")+", "); System.out.print("City: "+rs.getString("Location")); System.out.println(); } } }
输出
Connection established...... Name: Amit, Salary: 30000, City: Hyderabad Name: Kalyan, Salary: 40000, City: Vishakhapatnam Name: Renuka, Salary: 50000, City: Delhi Name: Archana, Salary: 15000, City: Mumbai
更多推荐
已为社区贡献65条内容
所有评论(0)