java.sql.Statement is used for executing a static SQL statement and returning the results it produces. Statement interface has two subinterfaces-
- PreparedStatement- Stores a precompiled SQL statement which can then be used to execute this statement multiple times by passing different values for the parameters. Read more about PreparedStatement in this post- JDBC PreparedStatement Interface
- CallableStatement- Used to execute SQL stored procedures. Read more about CallableStatement in this post- JDBC CallableStatement Interface
Methods in Statement interface
Some of the frequently used methods of the Statement interface are detailed here-
- execute(String sql)- Executes the given SQL statement, which may return multiple results. This method returns a boolean; true if the first result is a ResultSet object; false if it is an update count or there are no results.
- executeQuery(String sql)- Executes the given SQL statement returning a ResultSet object. Suited for running a SELECT query.
- executeUpdate(String sql)- Executes the specified SQL which may be an INSERT, UPDATE or DELETE statement or an SQL statement that returns nothing, such as an SQL DDL statement (Create, Drop).
- addBatch(String sql)- If you are running a bunch of SQL statements as a batch, this method adds the given SQL command to the current list of commands for this Statement object.
- executeBatch()- Submits a batch of commands to the database for execution.
- close()- Releases this Statement object's database and JDBC resources immediately.
JDBC Statement example
In the example we’ll use all the three types of execute methods; execute(), executeQuery() and executeUpdate() to have a better understanding of how to use these methods.
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/knpcode",
"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();
}
}
}
}
}
That's all for the topic JDBC Statement Interface. If something is missing or you have something to share about the topic please write a comment.
You may also like
- JDBC ResultSetMetaData Interface
- JDBC Transaction Management and Savepoint Example
- JDBC Driver Interface
- Java Parallel Streams With Examples
- Default Methods in Java Interface
- Remove Element From an Array in Java
- Advantages and Disadvantages of Autowiring in Spring
- Java Program to Read a File From HDFS
No comments:
Post a Comment