Application Server
Call Store Procedure dari Java
0Sebagai contoh saya mempunyai package oracle seperti dibawah ini
Secara umum format pemanggilan procedure di java dapat dilihat pada template coding dibawah ini :
CallableStatement cs;
try {
Memanggil prosedur tanpa parameter
cs = connection.prepareCall("{call myproc}");
cs.execute();
// Pemanggilan procedure dengan nama myprocin dengan satu parameter
cs = connection.prepareCall("{call myprocin(?)}");
// Set nilai parameter
cs.setString(1, "a string");
// Execute the stored procedure
cs.execute();
// Call a procedure with one OUT parameter
cs = connection.prepareCall("{call myprocout(?)}");
// Register the type of the OUT parameter
cs.registerOutParameter(1, Types.VARCHAR);
// Execute the stored procedure and retrieve the OUT value
cs.execute();
String outParam = cs.getString(1); // OUT parameter
// Call a procedure with one IN/OUT parameter
cs = connection.prepareCall("{call myprocinout(?)}");
// Register the type of the IN/OUT parameter
cs.registerOutParameter(1, Types.VARCHAR);
// Set the value for the IN/OUT parameter
cs.setString(1, "a string");
// Execute the stored procedure and retrieve the IN/OUT value
cs.execute();
outParam = cs.getString(1); // OUT parameter
} catch (SQLException e) {
}
berikutnya kita coba dengan sample menmanggil oracle procedure.
Access Connection Pooling from JSP
0Pada tulisan sebelumnya sudah dijelaskan langkah-langkah membuat Connection Pooling di Glassfish, Pertanyaannya bagaiman cara menggunakan connection pooling yang sudah dibuat misal dari JSP.
Sebagai contoh yang sederhana saya ingin menampilkan seluruh daftar karyawan.
IDE yang saya gunakan adalah Netbeans versi 6.8 untuk memudahkan melakukan editing. Untuk cara membuat project web menggunakan java akan dibahas secara terpisah pada kategory Netbeans.
berikut struktur file setelah wizard pembuatan project selesai

Dari gambar diatas ada 2 file yang digunakan yaitu index.jsp dan DBControl.java
file DBControl.java digunakan untuk mengakses resource JDBC Connection Pooling, script secara lengkap ada dibawah ini
package com.neuron.db;
import java.sql.Connection;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;
/**
*
* @author massri@neuronworks.co.id
*/
public class DBControl {
String JNDIDataSource ;
Connection conn;
public DBControl() {
this.JNDIDataSource = "jdbc_train";
this.Init();
}
public void Init() {
try {
Context ctx = new InitialContext();
DataSource ds = (DataSource) ctx.lookup(this.JNDIDataSource);
this.conn = ds.getConnection();
this.conn.setAutoCommit(false);
} catch (Exception e) {
e.printStackTrace();
}
}
public Connection getConn() {
return conn;
}
}
Class ini dibuat sederhana untuk pengembangan dan teknik yang lebih lanjut akan dibahas kemudian. Pada script diatas ada baris this.JNDIDataSource = “jdbc_train”, “jdbc_train” adalah JDBC Resource yang sudah kita buat seperti pada tulisan sebelumnya seting connection pooling
Dan berikut script index.jsp
<%--
Document : index
Created on : 28 Jan 10, 21:04:00
Author : massri@neuronworks.co.id
--%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@ page import="java.sql.*" %>
<%@ page import="com.neuron.db.DBControl"%>
JSP Test Connection Pooling
<%
DBControl dbctl = new DBControl();
Connection conn = dbctl.getConn();
if (conn == null) {
out.println("Gak Connect");
} else {
out.println("Connect");
}
String sql = "SELECT EMPLOYEE_ID,FIRST_NAME || ' ' || LAST_NAME NAME FROM EMPLOYEES WHERE ROWNUM <=10";
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);
ResultSetMetaData rsMetaData = rs.getMetaData();
int columnCount = rsMetaData.getColumnCount();
%>
| <% out.print(rsMetaData.getColumnName(i).trim());%> | <% } %>
|---|
| " + rs.getString(i) + " | "); } out.println("
Setelah di deploy ke server berikut contoh hasil yang didapatkan
selesai…..
Setting Connection Pooling di glassfish
1Sudah lama sekali ingin menulis tentang hal ini tetapi selalu lupa dan tidak sempat. Sekarang coba saya sempatkan membuat tulisan ini bertepatan dengan ada loma di kantor untuk implementasikan Connection pooling.
Untuk bahasan Connection Pooling sendiri kan di tulis terpisah. Sekarang kita fokus pada seting Connection pooling di Glassfish dengan database yang digunakan Oracle.
Berikut detail langkah-langkahnya :
Login ke web application server secara default menggunakan port 4848 username admin dan password adminadmin
Pada menu bagian kirim pilih resources-> JDBC ->Connection Pools

Setelah itu Isikan entrian pada form yang muncul

Input property dari connection Pooling
Selesai Connection Pool sekarang sudah terbentuk tinggal dilakukan testing

jika semua sudah terlewati tinglal step terakhir membuat JDBC Resource agar kit abisa menggunakan koneksi ini di pemrograman.




