In this tutorial you will learn about java.sql.PreparedStatement interface and how to use it in your application
In this tutorial you will learn about java.sql.PreparedStatement interface and how to use it in your applicationjava.sql.PreparedStatement is enhanced version of java.sql.Statement.It inherits some functionality of java.sql.Statement and also add some extra feature to it. In is an enhanced version of statement which allows precompiled queries with parameter. It does not compile the query every time, The query once compiled is used every time. PreparedStatement object can also be used with SQL statement with no parameter.
Creating a java.sql.PreparedStamenet
PreparedStatement ptmt=con.prepareStatement(" UPDATE StudentDetail SET Name=? WHERE RollNo=?");
This ptmt object contains the UPDATE StudentDetail SET Name=? WHERE RollNo=? which have already sent to the DBMS and is prepared for execution.
Now we pass the parameter to ptmt object as
ptmt.setString(2,"John");
This sets the String "John" to the second column of the StudentDetail table.
An example given below which illustrates how to update the table using prepared statement.
At first create a database in MySql named student and then create a table StudentDetail into it
CREATE TABLE student (
RollNo int(9) PRIMARY KEY NOT NULL,
Name tinytext NOT NULL,
Course varchar(25) NOT NULL,
Address text
);
Java code for Prepared Statement
JDBCPreparedStatementExample.java
package roseindia.net; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; public class JDBCPreparedStatementExample { Connection connection = null; public JDBCPreparedStatementExample() { try { // Loading the driver Class.forName("com.mysql.jdbc.Driver"); } catch (ClassNotFoundException e) { System.out.println(e.toString()); } } public Connection createConnection() { Connection con = null; if (connection != null) { System.out.println("Cant create a connection"); } else { try { // Crating a Connection to the Student database con = DriverManager.getConnection( "jdbc:mysql://localhost:3306/student", "root", "root"); System.out.println("Connection created Successfully"); } catch (SQLException e) { System.out.println(e.toString()); } } return con; } public static void main(String[] args) throws SQLException { JDBCPreparedStatementExample jdbccOnnectionExample = new JDBCPreparedStatementExample(); Connection conn = jdbccOnnectionExample.createConnection(); // Creating a Statement reference variable PreparedStatement ptmt = null; // getting the connection reference to the Statement String queryString = "UPDATE student SET Name=? WHERE RollNo=?"; // getting reference of connection ptmt = conn.prepareStatement(queryString); // setting parameters to prepared statement ptmt.setString(1, "John"); ptmt.setInt(2, 2); // Executing query ptmt.executeUpdate(); System.out .println("Table Updated successfully Using prepared statement............"); ptmt.close(); conn.close(); } }When you run this application it will display message as shown below:
Connection created Successfully Table Updated successfully Using prepared statement............ |