Insert data ke Database dengan JSP menggunakan PreparedStatement

06:31AM May 25, 2010 in category Java by iftakhul anwar

Beberapa hari ini saya coba mainan JSP, ya baca-baca tutorial dari JENI sama
dari Roseindia.Kalo bagi saya yang masih belajaran kayak gini, mahamin syntax-syntax ma 
code-code yang nggak jelas (gk jelas versi saya maksudnya gk paham..hehe) emang lumayan buat
kepala rada anget :).
Tapi  ya lumayan asyik lah, buat nambah-nambah ilmu gwa yang masih cupu :D


JSP (Java Server Page) merupakan sebuah teknologi servlet-based yang digunakan pada web tier 
untuk menghadirkan dynamic dan static content.

JSP dilengkapi dengan beberapa Scripting element yang terdiri dari 
Scriptlet (untuk memasukkan kode java),expressi(untuk memasukkan nilai java ke output secara 
langsung), dan Deklarasi(untuk membuat method atau variable)sangat memungkinkan dapat 
membentuk suatu dynamic page.
Disamping itu JSP juga dilengkapi dengan kemampuan untuk mengakses JavaBeans yang berguna untuk membuat komponen yang 
reusable dalam Java sehingga dapat mengurangi jumlah dari elemen scripting dalam sebuah page.


OK kali ini saya bakal sedikit buat tulisan kecil dengan topik menginputkan data ke database mysql
dengan prepared statement.Dalam percobaan kali ini saya menggunakan Netbean, karena yang terpasang cman 
IDE ini di PC saya :D.

Pertama kita buat project baru dengan kategory Web, lalu untuk servernya kali ini saya menggunakan 
Apache Tomcat 6.0.14 yang emang udah terbundle di Netbeannya.
Selanjutnya di dalam folder Web Pages terdapat beberapa folder(WEB-INF,META-INF), juga terdapat index.jsp,
karena ini cman tulisan sederhana, ntar kita bakal nulis codingannya di index.jsp aja...:D

Selanjutnya Kita buat Database dengan nama student dan table stu_info di mysql kita.

create database student;

create table stu_info (
          ID int not null auto_increment,
          Name varchar(20),
          City varchar(20),
          Phone varchar(15),
          primary key(ID)
);


Setelah database udah ok, selanjutnya kita buka halaman index.jsp.Lalu ketikkan code berikut.
Untuk penjelasannya bisa diliat di tiap coment di atas codenya.


---------------------------------------------------------------------------------------------------------------------------


<%@ page import="java.sql.*" %>
<%@ page import="java.io.*" %>

<html>
<head>
    <title>Coba Prepared Statement</title>
    </head>

<body bgcolor="#ffffcc">
    
    <h3>Selamat Datang</h3>
    
<!-- Membuat form inputan yang valuenya nanti diproses di index.jsp(karena cuman simple, 1 
halaman jsp jadi ntar di proses halaman ini)

-->

    <form method="post" action="index.jsp">
        <table bgcolor="#ffffff">
            <tr>
            <th>Name</th>
            <td><input type="text" name="name" size="30"></td>
        </tr>
        
        <tr>
            <th>City</th>
            <td><input type="text" name="city" size="30"></td>
        </tr>
        
        <tr>
        <th>Phone</th>
        <td><input type="text" name="phone" size="30"></td>
    </tr>
    
    <tr>
    <th></th>
    <td><input type="submit" value="Submit"></td>
</tr>

</table>

<!-- Scriptlet untuk memasukkan codingan java yang nanganin proses inputan -->

<%

/**membuat variabel bertipe String dengan mengakses method getParamater yang 
berguna untuk mendapatkan parameter dari form inputan

        **/


String name=request.getParameter("name");
String city=request.getParameter("city");
String phone=request.getParameter("phone");

//membuat variabel untuk nampung alamat untuk akses database nantinya.

String url="jdbc:mysql://localhost:3306/student";

//membuat koneksi ke database dengan jdbc

Connection conn=null;
PreparedStatement ps=null;

Class.forName("com.mysql.jdbc.Driver").newInstance();

int updateQuery=0;


//untuk mengecek textbox name, city, dan phone tidak kosong

if(name!=null && city!=null && phone!=null){


    if(name!="" && city!="" && phone!=""){
         try{
        

/** membuat koneksi dengan method getConnection dengan 
parameter url(variabel yang dideklarasikan di atas),user dan password

**/

        conn=DriverManager.getConnection(url,"root","");

/** membuat variabel dengan nama query yang diisi dengan syntax 
sql insert into untuk memasukkan data ke table stu_info
tanda "?" merupakan value yang nantinya di set oleh preparedStatement.
**/

 
        String query="Insert into stu_info(Name,City,Phone) values(?,?,?)";
        
//mengeksekusi perintah sql di variabel query dengan prepareStatement

        ps=conn.prepareStatement(query);

/** mengeset value. angka 1,2 dan 3 maksudnya adalah tampungan untuk nilai dari tanda "?" berurut-urut 
di code "Insert into stu_info(Name,City,Phone) values(?,?,?)".Jadi tanda "?" pertama adalah 
nilai dari "name", tanda "?" keduaadalah tampungan dari "city", lalu ketiga adalah tampungan dari "phone".

**/

        
        ps.setString(1,name);
        ps.setString(2,city);
        ps.setString(3,phone);

//mengeksekusi query
        
        updateQuery=ps.executeUpdate();
        
        if(updateQuery!=0){

            %>

            <br>
            <table bgcolor="#ffffff">
                <tr>Inserted Success</tr>
            </table>
        <% }

//handle jika terjadi exception

    }catch(Exception ex){
        out.println("Koneksi bermasalah");
        
 
        }finally{
        ps.close();
        conn.close();
    }


    }
}

   
%>

</form>
</body>
</html>

                
            
----------------------------------------------------------------------------------------------------------------------- 
         
Setelah itu untuk menjalankannya, klik kanan di project lalu pilih build.
Setelah success, klik kanan di project lalu pilih run.


Sekian tulisan sederhana saya ini,

Bila ada tulisan ato kata-kata yang salah mohon dibenarkan :D.

Matur Thank you            
            

Sumber: http://www.roseindia.net          
            
            

Comments[3]

Comments:

test

Posted by test on May 31, 2010 at 01:26 PM WIT #

test

Posted by test juga on May 31, 2010 at 01:27 PM WIT #

test

Posted by test on May 31, 2010 at 01:46 PM WIT #

Post a Comment:
  • HTML Syntax: Allowed