Prepared Statement Set Object
In JDBC tutorial we are going to learn about the PreparedStatement and how to use with setObject method.
PreparedStatement: This is an interface of java.sql package which extends Statement interface. If you want to execute Statement object many times then we should use PreparedStatement object as it reduces the execution time. PreparedStatement object is faster than the Statement object as it is precompiled. In PreparedStatement we use IN parameter whose values are not known when the Sql statement is created. So we use "?" as a IN parameter and we also know it by the name of parameter marker. In this interface the modification has been done on the methods execute, executeQuery and executeUpdate. These methods are modified in such a way so that they take no argument.
Description of program:
In this program we are going to insert data in the database by using the setObject method of PreparedStatement interface. Before going into the details of the program we should firstly need to establish the connection with MySQL database by the help of JDBC driver. After establishing the connection now we will insert the data in setObject method. If the data gets added in the database table then it will display a message "Record is added in the table." otherwise it will show "SQL statement is not executed!".
Description of code:
prepareStatement(String sql):
This method returns the PreparedStatement object for sending the
parameterized SQL statement to the database that contains the
pre-compiled SQL statement. Here the pre- compiled means once the statement has
been compiled then it will not compile the same thing again. It takes the string type arguments which contains
one or more '?' parameter placeholders.
setObject(int par_index, object obj):
It is used for setting the values of parameterized index by using the given
object in this method. It takes two arguments to given
below:
par_index: It specifies the
parameter like: the first is 1, second is 2, ......
object obj: It contains the
parameter values to given by the users.
Here is the code of program:
import java.sql.*; public class PreparedStatementSetObject{ public static void main(String[] args) { System.out.println("Prepared Statement Set Array Example!"); Connection con = null; try{ Class.forName("com.mysql.jdbc.Driver"); con = DriverManager.getConnection ("jdbc:mysql://localhost:3306/jdbctutorial","root","root"); try{ PreparedStatement prest = con.prepareStatement("insert emp_sal values(?,?)"); prest.setObject(1,"Sushil"); prest.setObject(2,15000); int n = prest.executeUpdate(); System.out.println(n + " Record is added in the table."); con.close(); } catch (SQLException s){ System.out.println("SQL statement is not executed!"); } } catch (Exception e){ e.printStackTrace(); } } }
Database Table: emp_sal
Emp_name | Emp_sal |
ghtdfgl | 5455 |
Raja Ram | 545 |
Output of program:
C:\vinod\jdbc\jdbc\PreparedStatement>javac PreparedStatementSetObject.java C:\vinod\jdbc\jdbc\PreparedStatement>java PreparedStatementSetObject Prepared Statement Set Array Example! 1 Record is added in the table. |
After executing the program:
Database Table: emp_sal
Emp_name | Emp_sal |
ghtdfgl | 5455 |
Raja Ram | 545 |
Sushil | 15000 |