JDBC Java memanggil Store Procedure Oracle Update Delete PL/SQL

Di artikel sebelumnya sudah saya tulis bagaimana java memanggil sp yang isinya insert dan select, dan yang sekarang adalah untuk operasi update dan delete. seperti biasa sebelumnya kita buat dulu Store Procedurenya untuk Update dan Delete :

Store Procedure Update

create or replace
PROCEDURE SP_BHE_MHS_U 
(
nim_in         IN bhe_mhs.nim%type,
name_in        IN bhe_mhs.name%type,
address_in     IN bhe_mhs.address%type,
result_cursor  OUT SYS_REFCURSOR
)
AS 
BEGIN
  update bhe_mhs 
  set
  name      =name_in,
  address   =address_in
      where 
      nim=nim_in;
        
         OPEN result_cursor FOR
  select 'success' as status from dual;
END;

Store Procedure untuk Delete

create or replace
PROCEDURE SP_BHE_MHS_D 
(
nim_in         IN bhe_mhs.nim%type,
result_cursor  OUT SYS_REFCURSOR
)
AS 
BEGIN
  
  delete from bhe_mhs 
      where 
      nim=nim_in;
  
END;

Code java yang memanggilnya :

code Update

public void update(Mahasiswa o) throws SQLException {
        String updateMahasiswa = "{call bahrie_bhe.sp_bhe_mhs_u(?,?,?,?)}";
        CallableStatement callableStatement = DatabaseUtilities.getConnection().prepareCall(updateMahasiswa);
        callableStatement.setString(1, o.getNim());
        callableStatement.setString(2, o.getNama());
        callableStatement.setString(3, o.getAlamat());
        callableStatement.registerOutParameter(4, OracleTypes.CURSOR);
        callableStatement.executeUpdate();
    }

Code java untuk delete

public void delete(String nim) throws SQLException {
        String deleteMahasiswa = "{call bahrie_bhe.sp_bhe_mhs_d(?,?)}";
        CallableStatement callableStatement = DatabaseUtilities.getConnection().prepareCall(deleteMahasiswa);
        callableStatement.setString(1, nim);
        callableStatement.registerOutParameter(2, OracleTypes.CURSOR);
        callableStatement.executeUpdate();
    }

insert select update delete sudah saya kasih contoh, silahkan teman2 kembangkan sendiri dalam belajar.
Selamat mencoba 😀

@bahrie_bhe

JDBC Java memanggil Store Procedure Oracle Select PL/SQL

Di artikel yang sebelumnya sudah saya bahas bagaimana memanggil SP insert, nah yang sekarang adalah contoh untuk operasi select. jadi pertama kita bkin Store Procedure di oracle setelah itu kita panggil dengan java. codenya dapat dilihat dibawah ini, oh ya keuntungan memakai Store Procedure dibandingkan kita query insert ada di program java yaitu dengan data transaction di tangani oleh Oracle maka proses yang ada di aplikasi kita akan menjadi lebih ringan karena proses transaksinya berada di database. dan biasanya mesin database dan mesin aplikasi itu di pisah, sehingga hit yang tinggi ke aplikasi tidak membuatnya hang karena proses transaksi di limpahkan ke oracle, java hanya sebagai penghubung atau jalan. bila penjelasannya masih belum bisa dipahami mungkin bisa tanya ke google atau bisa diskusi dengan saya 😀

Store Procedure Select

create or replace
PROCEDURE SP_BHE_MHS_S 
(
result_cursor OUT SYS_REFCURSOR
)
AS 
BEGIN
open result_cursor for
  SELECT  
    nim nim,
    name nama,
    address alamat
    from bhe_mhs;
END;

code java seperti dibawah ini :

public List<Mahasiswa> getAll() throws SQLException {
        String getMahasiswa = "{call bahrie_bhe.sp_bhe_mhs_s(?)}";
        CallableStatement callableStatement = DatabaseUtilities.getConnection().prepareCall(getMahasiswa);
        callableStatement.registerOutParameter(1, OracleTypes.CURSOR);
        callableStatement.executeUpdate();
        ResultSet rs = (ResultSet) callableStatement.getObject(1);
        List<Mahasiswa> list = new ArrayList<Mahasiswa>();
        while (rs.next()) {
            Mahasiswa mhs = new Mahasiswa();
            mhs.setNim(rs.getString("nim"));
            mhs.setNama(rs.getString("nama"));
            mhs.setAlamat(rs.getString("alamat"));
            list.add(mhs);
        }
        return list;
    }

Selamat mencoba 😀

@bahrie_bhe

JDBC Java Memanggil Store Procedure Oracle Insert PL/SQL

Di Postingan sebelumnya sudah saya singgung tentang bikin schema oracle. Nah disini saya teruskan dengan membuat table serta membuat SP (store procedure) yang berfungsi sebagai jembatan untuk memasukan data dari aplikasi ke table.
jadi skemanya nanti java melempar parameter ke SP dan SP memproses memasukkan ke table.

table BHE_MHS didalam schema BAHRIE_BHE :

  CREATE TABLE "BAHRIE_BHE"."BHE_MHS" 
   (	"NIM" VARCHAR2(20 BYTE) NOT NULL ENABLE, 
	"NAME" VARCHAR2(50 BYTE), 
	"ADDRESS" VARCHAR2(100 BYTE), 
	 CONSTRAINT "BHE_MHS_PK" PRIMARY KEY ("NIM")
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "BAHRI_TUTORIAL"  ENABLE
   ) SEGMENT CREATION IMMEDIATE 
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "BAHRI_TUTORIAL" ;
 

setelah itu bikin Store Procedure insert nya :

create or replace
PROCEDURE SP_BHE_MHS_I 
(
nim_in         IN bhe_mhs.nim%type,
name_in        IN bhe_mhs.name%type,
address_in     IN bhe_mhs.address%type,
result_cursor  OUT SYS_REFCURSOR
)
AS 
BEGIN
  INSERT INTO bhe_mhs
  (
  nim,
  name,
  address
  )
  VALUES
  (
  nim_in,
  name_in,
  address_in
  );
  
 
  OPEN result_cursor FOR
  select 'success' as status from dual;
  EXCEPTION
    WHEN DUP_VAL_ON_INDEX THEN
     OPEN result_cursor FOR
        select 'error' as status from dual;
   
END;

cara java memanggil sp tersebut dengan cara seperti dibawah ini :

public Mahasiswa insert(Mahasiswa o) throws SQLException {

        //use store procedure oracle
        String insertMahasiswa = "{call bahrie_bhe.sp_bhe_mhs_i(?,?,?,?)}";
        CallableStatement callableStatement = DatabaseUtilities.getConnection().prepareCall(insertMahasiswa);
        callableStatement.setString(1, o.getNim());
        callableStatement.setString(2, o.getNama());
        callableStatement.setString(3, o.getAlamat());
        callableStatement.registerOutParameter(4, OracleTypes.CURSOR);
        callableStatement.executeUpdate();
        ResultSet rs = (ResultSet) callableStatement.getObject(4);
        if(rs.next()){
        o.setStatus(rs.getString("status"));
        System.out.println(rs.getString("status"));
        }
        return o;
    }

Sekian tutorialnya. bila belumm paham bisa tinggalkan pesan dibawah atau mention aja di @bahrie_bhe 😀
Selamat Belajar.

Install JDK 7 Oracle/Sun di Ubuntu

sudo rm /var/lib/dpkg/info/oracle-java7-installer*
sudo apt-get purge oracle-java7-installer*
sudo rm /etc/apt/sources.list.d/*java*
sudo apt-get update
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java7-installer

JTree Tanpa Root

Setelah cari cari akhirnya ketemu kalo kita pengen buat JTree tapi rootnya gak mo di tampilkan. supaya gak langsung collapse kalo punya banyak kategori cuman gara2 ada rootnya.
oke langsung aja ke codingnya. ga susah kq, cuman butuh satu baris aja. yaitu

JTree tree=new JTree(bla bla bla);
tree.setRootVisible(false);

cuman butuh root visible false doank. oke. selamat berkarya 😀

Crud Java Menggunakan Spring-Hibernate

Malem semakin larut dan aku pun berfikir akan suatu hal. di tweet banyak yang bilang saya sedang galau. ah tidak itu hanya kata mereka saja. saya hanya sedang belajar menulis puisi. dan sampailah saya menulis tutorial yang sebenarnya sudah lama ingin ku tulis. namun karna sang waktu melenakanku, hingga baru sekarang coretan ini terwujud. Crud itu kepanjangan dari create read update delete, java yang berarti disusun oleh tutur java, menggunakan spring hibernate bermaksud menjadikan spring serta hibernate pendamping tutur java dalam membentuk sebuah aplikasi yang di impikan. ditutorial ini saya jadikan netbeans sebagai alat tulisku, spring dan hibernate meja belajarku.
Hibernate membatuku mempercapat urusan dalam pembuatan model yang bertugas bercakap2 dengan database. Belau dapat memberi kita table sesaui yang kita inginkan beserta relasi relasinya. dengan HQL nya, sang Hibernate memberi kita kebahagiaan akan harmonisnya dia dengan semua database. Spring bagaikan mesin jahit, yang dapat menusuk sana dan sini. dapat memasukkan aliran darah aplikasi ke dalam nadi yang membutuhkannya.

lebih jelasnya download projectnya serta jalankan. bila ditemukan keluahan atau kegalauan silahkan tulis curhatannya 🙂

untuk screenshoot wajah spring hibernate mungkin akan menyusul seiring waktu yang menggiringku ke sebuah tutorial yang meninggalkan tanda tanya.

http://bahrie127.googlecode.com/files/demo-spring.zip

Database to Excel menggunakan Java

Iseng iseng di tengah kesibukan, karena ada temen yg nanya jg gmana sih jadiin data yg ada di dalam database menjadi excel make java?. Karena saya pernah buat aplikasinya jadi coba saya share gimana buatnya, yg jelas disini kita harus make librari yg bukan bawaannya jdk, disini kita make librarinya apace poi. Untuk lebih jelasnya bisa baca referensi dari blognya kang eko, kang eko jg sebenarnya sudah buat tutorial kayaa gini, tapi dia buatnya diatas maven, jd yg blum terbiasa make maven bakal bingung jalaninnya gimana bukanya juga gimana.hehehe.. oke ini yg dah saya buat, buat klass klass pendukungnya,,

pertama buat databasenya dulu, saya buat dengan nama data. setelah itu buat table dan coba di isi.

CREATE TABLE IF NOT EXISTS `excel` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `biner` int(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

--
-- Dumping data for table `excel`
--

INSERT INTO `excel` (`id`, `biner`) VALUES
(1, 111101001),
(2, 11100100);

klass pertama : Data.java

package databasetoexcel.model;

/**
 *
 * @author saiful bahri (jepara,1990)
 * https://bahrie27.wordpress.com/
 */
public class Data {
    
    private int biner;

    public Data() {
    }

    public int getBiner() {
        return biner;
    }

    public void setBiner(int biner) {
        this.biner = biner;
    }
    
    
    
}

kelas ke dua : DataImpl.java

package databasetoexcel.model;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author saiful bahri (jepara,1990)
 * https://bahrie27.wordpress.com/
 */
public class DataImpl {

    private Connection conn;

    public DataImpl() {
        try {
            Class.forName("com.mysql.jdbc.Driver").newInstance();
            String db = "jdbc:mysql://localhost:3306/data";
            String user = "root";
            String pass = "root";
            conn = DriverManager.getConnection(db, user, pass);
        } catch (SQLException ex) {
            Logger.getLogger(DataImpl.class.getName()).log(Level.SEVERE, null, ex);
        } catch (ClassNotFoundException ex) {
            Logger.getLogger(DataImpl.class.getName()).log(Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            Logger.getLogger(DataImpl.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            Logger.getLogger(DataImpl.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    public void insertDb(int biner){
        try {
            PreparedStatement ps = conn.prepareStatement("insert into excel values(null,?)");
            ps.setInt(1, biner);
            ps.executeUpdate();
        } catch (SQLException ex) {
            Logger.getLogger(DataImpl.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    public List getAll(){
        try {
            Statement st = conn.createStatement();
            ResultSet rs = st.executeQuery("select *from excel");
            List list = new ArrayList();
            while (rs.next()) {
                Data d=new Data();
                d.setBiner(rs.getInt("biner"));
                list.add(d);
            }
            return list;
        } catch (SQLException ex) {
            Logger.getLogger(DataImpl.class.getName()).log(Level.SEVERE, null, ex);
            return null;
        }
    }

    public void deleteAll(){
        try {
            PreparedStatement ps = conn.prepareStatement("delete from excel");
            ps.executeUpdate();
        } catch (SQLException ex) {
            Logger.getLogger(DataImpl.class.getName()).log(Level.SEVERE, null, ex);
        }
        
        
    }

}

kelas ke tiga :JTableToExcelConverter.java (saya ambil dari codenya kang eko).

/*
 *  Copyright 2011 Eko Kurniawan Khannedy.
 * 
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at
 * 
 *       http://www.apache.org/licenses/LICENSE-2.0
 * 
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 *  under the License.
 */
package databasetoexcel.converter;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JTable;
import javax.swing.table.TableModel;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;

/**
 *
 * @author Eko Kurniawan Khannedy
 */
public class JTableToExcelConverter {

    private JTable jtable;

    public JTableToExcelConverter(JTable table) {
        this.jtable = table;
    }

    public void convert(File file) {
        // ambil table model
        TableModel tableModel = jtable.getModel();

        // ambil data header table
        List header = new ArrayList();
        for (int i = 0; i &lt; tableModel.getColumnCount(); i++) {
            header.add(tableModel.getColumnName(i));
        }

        // ambil data seluruh tabel
        List&lt;List&gt; data = new ArrayList&lt;List&gt;();

        // ambil data tiap baris
        for (int i = 0; i &lt; tableModel.getRowCount(); i++) {
            List row = new ArrayList();
            for (int j = 0; j &lt; tableModel.getColumnCount(); j++) {
                row.add(tableModel.getValueAt(i, j));
            }
            data.add(row);
        }

        HSSFWorkbook workbook = new HSSFWorkbook();
        HSSFSheet sheet = workbook.createSheet();

        HSSFRow rowHeader = sheet.createRow(0);
        for (int i = 0; i &lt; header.size(); i++) {
            HSSFCell rowCell = rowHeader.createCell(i);
            rowCell.setCellValue(header.get(i));
        }

        for (int i = 0; i &lt; data.size(); i++) {
            HSSFRow row = sheet.createRow(i + 1);
            List dataRow = data.get(i);
            for (int j = 0; j &lt; dataRow.size(); j++) {
                HSSFCell cell = row.createCell(j);
                cell.setCellValue(dataRow.get(j).toString());
            }
        }

        FileOutputStream stream = null;
        try {
            stream = new FileOutputStream(file);
            workbook.write(stream);
        } catch (IOException ex) {
            Logger.getLogger(JTableToExcelConverter.class.getName()).log(Level.SEVERE, null, ex);
        } finally {
            if (stream != null) {
                try {
                    stream.close();
                } catch (IOException ex) {
                    Logger.getLogger(JTableToExcelConverter.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        }
    }
}

setelah itu buat form nya. saya beri nama ViewDataToExcel.java screenshot dibawah.

form

untuk lbh jelas sourcodenya download aja di googlecode.

jfilechooser

ini sceen shotnya ketika menambahkan jfilechooser, kalo caranya g kaya gitu nanti hasinya mawot di framenya hehehe

ini acara menambahkan librari poi.jar nya. librarinya ada di folder /lib yg di download.

lib

Silahkan di download dan di plajari. Semoga bermanfaat.. bagi yg ingin tanya2 dapat chat di gtalk : bahrie172

Previous Older Entries