Monday, May 24, 2010

Using the Prepared Statement Twice

This JDBC tutorial helps us to use the PreparedStatement interface of java.sql package twice in a program. According to our requirement we can use the PreparedStatement object. The PreparedStatement object represents the precompiled SQL statement. Whenever, the SQL statement is precompiled then it stored in the PreparedStatement object which executes the statement many times and it reduces the time duration of execution. The PreparedStatement uses the '?' with SQL statement that provides the facility for setting an appropriate conditions in it. See brief description below:

Description of program:

In this program we are going to retrieve the movies name and it releases year from the 'movies' database table which releases in the year 2002 and 2003 by using the PreparedStatement object. For this to work, first of all we will establish the connection with MySQL database by using the JDBC driver. When the connection has been established then we will pass the SQL statement with some conditions in the prepareStatement method that returns the PreparedStatement object, after this only we will get the result according to our requirements. If any problem arises in this then it will display a message "SQL statement is not executed!".

Here is the code program:

import java.sql.*;

public class TwicePreparedStatement{
public static void main(String[] args) {
System.out.println("Twice use prepared statement example!\n");
Connection con = null;
PreparedStatement prest;
try{
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection("jdbc:mysql:
//localhost:3306/jdbctutorial","root","root");
try{
String sql = "SELECT * FROM movies WHERE year_made = ?";
prest = con.prepareStatement(sql);
prest.setInt(1,2002);
ResultSet rs1 = prest.executeQuery();
System.out.println("List of movies that made in year 2002");
while (rs1.next()){
String mov_name = rs1.getString(1);
int mad_year = rs1.getInt(2);
System.out.println(mov_name + "\t- " + mad_year);
}
prest.setInt(1,2003);
ResultSet rs2 = prest.executeQuery();
System.out.println("List of movies that made in year 2003");
while (rs2.next()){
String mov_name = rs2.getString(1);
int mad_year = rs2.getInt(2);
System.out.println(mov_name + "\t- " + mad_year);
}
}
catch (SQLException s){
System.out.println("SQL statement is not executed!");
}
}
catch (Exception e){
e.printStackTrace();
}
}
}
Download this program:

Database Table: movies

title year_made
alam ara 1945
Bagal bali 2002
Karan 1996
Bagban 2003
Ram Teri Ganga Maili 2003
output of program:

C:\vinod\jdbc\jdbc\PreparedStatement>javac TwicePreparedStatement.java

C:\vinod\jdbc\jdbc\PreparedStatement>java TwicePreparedStatement
Twice use prepared statement example!

List of movies that made in year 2002
Bagal bali - 2002
List of movies that made in year 2003
Bagban - 2003
Ram Teri Ganga Maili - 2003

No comments:

Post a Comment