JDBC- Execute UPDATE query using Statement's execute and getUpdateCount method in java

java.sql.Statement's execute method can be used for executing UPDATE queries


--Before executing java program execute these database scripts  >
create table EMPLOYEE(id number(4),name varchar2(22));
insert into EMPLOYEE values(1,'ankit');
insert into EMPLOYEE values(2,'rohit');
commit;

--If table already exists then execute the DROP command >
drop table EMPLOYEE;



Full Programs JDBC- Execute UPDATE query using Statement's execute and getUpdateCount method in java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
/** Copyright (c), AnkitMittal JavaMadeSoEasy.com */
public class StatementUpdateTest {
   public static void main(String... arg) {
          Connection con = null;
          Statement stmt = null;
          try {
                 // registering Oracle driver class
                 Class.forName("oracle.jdbc.driver.OracleDriver");
                 // getting connection
                 con = DriverManager.getConnection(
                              "jdbc:oracle:thin:@localhost:1521:orcl",
                              "ankit", "Oracle123");
                 System.out.println("Connection established successfully!");
                
                 stmt = con.createStatement();
                 /*
                 execute() method returns true
                       if returned result is a ResultSet object and
                 execute() method returns false
                       if returned result is a update count
                 */
                 //execute update query
                 boolean result = stmt.execute("UPDATE EMPLOYEE set name='amy' where id=2 ");
                 System.out.println(result ? "returned result is a ResultSet object"
                              : "returned result is a update count"); // false
                 int numberOfRowsUpdated = stmt.getUpdateCount();
                 System.out.println("numberOfRowsUpdated = " + numberOfRowsUpdated);
          } catch (ClassNotFoundException e) {
                 e.printStackTrace();
          } catch (SQLException e) {
                 e.printStackTrace();
          }
          finally{
                 try {
                       if(stmt!=null) stmt.close(); //close Statement
                       if(con!=null) con.close(); // close connection
                 } catch (SQLException e) {
                       e.printStackTrace();
                 }
          }
   }
}
/*OUTPUT
Connection established successfully!
returned result is a update count
numberOfRowsUpdated = 1
*/




Must Know :

By default connection is auto-commit, so all update queries will be committed automatically by java connection.
(Also must know : update is a DML(Data Manipulation Language) command, queries are not committed automatically in database)

We may stop connection from doing auto-commits by setting auto-commit to false using > con.setAutoCommit(false);
Well in that we may commit transactions any time using con.commit();

Also, We may set connection back to default behavior of doing auto-commit by using > con.setAutoCommit(true) or simply using con.setAutoCommit();

But what will be benefit of using con.setAutoCommit(false)?
If any transaction goes wrong than we may halt execution further related transactions before calling con.commit() and call con.rollback() in catch block.


NOTE : Statement is suitable for executing DDL commands - create, drop, alter and truncate. This article demonstrates that Statement can also be used to serve the purpose.
We must prefer PreparedStatement, as it is suitable for executing DML commands - SELECT, INSERT, UPDATE and DELETE.




RELATED LINKS>

JDBC- Batch PreparedStatement example- Execute INSERT query(DML command) using PreparedStatement's addBatch() and executeBatch() methods in java


JDBC- Calling Oracle database STORED PROCEDURE and pass its IN parameter from java - CallableStatement example in java

JDBC- Calling Oracle database STORED PROCEDURE- OUT parameter - CallableStatement example in java

JDBC- Calling Oracle database STORED PROCEDURE- IN OUT parameter - CallableStatement example in java


JDBC- Calling Oracle database FUNCTION - CallableStatement example in java


No comments:

Post a Comment