JDBC语句接口
时间:2020-01-09 10:35:20 来源:igfitidea点击:
java.sql.Statement用于执行静态SQL语句并返回其产生的结果。语句接口具有两个子接口
- PreparedStatement –存储预编译的SQL语句,然后可以通过传递不同的参数值来多次执行该语句。在此后JDBC PreparedStatement接口中阅读有关PreparedStatement的更多信息。
- CallableStatement –用于执行SQL存储过程。在此后JDBC CallableStatement接口中阅读有关CallableStatement的更多信息。
Statement界面中的方法
此处详细介绍了一些Statement接口的常用方法
- execute(String sql)–执行给定的SQL语句,该语句可能返回多个结果。该方法返回一个布尔值;如果第一个结果是ResultSet对象,则为true;否则为false。如果是更新计数或者没有结果,则返回false。
- executeQuery(String sql)–执行给定的SQL语句,返回一个ResultSet对象。适用于运行SELECT查询。
- executeUpdate(String sql)–执行指定的SQL,它可以是INSERT,UPDATE或者DELETE语句或者不返回任何内容的SQL语句,例如SQL DDL语句(Create,Drop)。
- addBatch(String sql)-如果要批量运行一堆SQL语句,则此方法会将给定的SQL命令添加到此Statement对象的当前命令列表中。
- executeBatch()–将一批命令提交到数据库以执行。
- close()–立即释放此Statement对象的数据库和JDBC资源。
Java中的语句示例
在示例中,我们将使用三种类型的execute方法,execute(),executeQuery()和executeUpdate()来更好地了解如何使用这些方法。
import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class JDBCStatementDemo { public static void main(String[] args) { Connection connection = null; try { // Load driver Class.forName("com.mysql.cj.jdbc.Driver"); // connection object connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/theitroad", "root", "admin"); // create Statement object Statement statement = connection.createStatement(); /** execute method **/ boolean flag = statement.execute("UPDATE Employee SET DEPARTMENT = 'HR' where id = 15"); // flag false means not returning resultset if(flag == false){ System.out.println("Updated rows " + statement.getUpdateCount() ); } /** executeUpdate method **/ // Insert statement int count = statement.executeUpdate("INSERT INTO Employee(FIRST_NAME, LAST_NAME, DEPARTMENT) " + "values('John', 'Trudaue', 'IT')"); System.out.println("Number of records Inserted " + count); // update statement count = statement.executeUpdate("UPDATE Employee SET DEPARTMENT = 'Finance' where id = 15"); System.out.println("Number of records Updated " + count); //delete statement count = statement.executeUpdate("Delete from Employee where id = 11"); System.out.println("Number of records Deleted " + count); /** executeQuery method **/ // Executing Query ResultSet rs = statement.executeQuery("Select * from Employee"); while(rs.next()){ System.out.println("id: " + rs.getInt("id") + " First Name: " + rs.getString("FIRST_NAME") + " Last Name: " + rs.getString("LAST_NAME")+ " Dept: " + rs.getString("DEPARTMENT")); } }catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ if(connection != null){ //close connection try { connection.close(); } catch (SQLException e) { e.printStackTrace(); } } } } }