Kamis, 30 Januari 2014

Java-Statement-PreparedStatement



Statement
Object Statement digunakan untuk memanipulasi database yang menggunakan query statis. Query statis adalah query yang tidak mengandung parameter didalamnya.
contohnya seperti query dibawah ini :
?
1
select * from tb_user;
query diatas adalah query statis yaitu query yang nilainya selalu tetap…tidak ada parameter yang dimasukkan kedalam query tersebut…

PreparedStatement
PreparedStatement digunakan untuk manipulasi database yang menggunakan query – query dinamis… kebalikan dari Statement yang menggunakan query statis… query dinamis adalah query SQL yang memiliki parameter… parameter ini adalah nilai yang dimasukkan atau dikirimkan kepada database pada saat query tersebut di eksekusi… pada Java parameter di representasikan dengan tanda tanya “?” jadi untuk mengidentifikasi secara mudah query dinamis adalah query yang ada tanda tanya..nya…. contoh seperti di bawah ini :
?
1
String SQL_insert = "insert into tb_user values (?, ?, ?, ?, ?)";
nah untuk memasukkan nilai nilai pada parameter tersebut kita menggunakan method setString(); seperti contoh dibawah ini :
?
1
2
3
4
5
6
7
8
ps = koneksi.prepareStatement(SQL_insert);
                ps.setString(1, username);
                ps.setString(2, password);
                ps.setString(3, nama);
                ps.setString(4, alamat);
                ps.setString(5, telp);

                ps.executeUpdate();
jumlah angka yang dimasukkan harus sesuai dengan jumlah tanda tanya yang ada di query………
source kode statement

import java.sql.* ;

class JDBCPreparedStatement
{
 public static void main( String args[] )
 {
  try
  {
      // Load the database driver
      Class.forName( "com.microsoft.sqlserver.jdbc.SQLServerDriver" ) ;

      // Get a connection to the database
      Connection conn = DriverManager.getConnection( "jdbc:sqlserver://localhost:1058;user=zhaw;" +
                                                     "password=gugus;databaseName=JDBCDemo" ) ;

      // Print all warnings
      for( SQLWarning warn = conn.getWarnings(); warn != null; warn = warn.getNextWarning() )
      {
          System.out.println( "SQL Warning:" ) ;
          System.out.println( "State  : " + warn.getSQLState()  ) ;
          System.out.println( "Message: " + warn.getMessage()   ) ;
          System.out.println( "Error  : " + warn.getErrorCode() ) ;
      }

      // Prepare a statement
      PreparedStatement ps = conn.prepareStatement( "SELECT * FROM PERSON WHERE Nachname = ?" ) ;

      // Set the first parameter of the statement
      ps.setString( 1, "Meier" ) ;

      // Execute the query
      ResultSet rs = ps.executeQuery() ;

      // Loop through the result set
      while( rs.next() )
         System.out.println( rs.getString("Vorname") + " " + rs.getString("Nachname") ) ;

      // Close the result set, statement and the connection
      rs.close() ;
      ps.close() ;
      conn.close() ;
  }
  catch( SQLException se )
  {
      System.out.println( "SQL Exception:" ) ;

      // Loop through the SQL Exceptions
      while( se != null )
      {
          System.out.println( "State  : " + se.getSQLState()  ) ;
          System.out.println( "Message: " + se.getMessage()   ) ;
          System.out.println( "Error  : " + se.getErrorCode() ) ;

          se = se.getNextException() ;
      }
  }
  catch( Exception e )
  {
      System.out.println( e ) ;
  }
 }
}
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();
  }
  }
}

Tidak ada komentar:

Posting Komentar