Kamis, 18 September 2008
Database Grid MySQL GUI
tengs to :
Ezzaral @ http://www.daniweb.com/forums/thread118194.html
Poochi and Unicman @ http://www.codeguru.com/forum/showthread.php?t=33738
The Java Developers Almanac 1.4. http://exampledepot.com/egs/javax.swing.table/SelEvent.html
Pada tutorial jam kali ini kita akan membahas bagaimana memanfaatkan Netbeans (6.x) untuk membuat aplikasi database GUI menggunakan SMDB MySQL.
Ada beberapa tahapan dalam pembuatan aplikasi ini :
mempersiapkan komponen apa saja yang diperlukan
untuk dapat membuat aplikasi database ada 1 komponen tambahan yang perlu dipersiapkan, yakni driver JDBC untuk MySQL. Drivernya bisa diperoleh pada situs resmi MySQL di mysql.org.
mendesain database
pada tahap ini kita tentukan database informasi apa yang akan diolah. Contoh : untuk membuat database informasi kontak kita memerlukan informasi berupa nama, email, dan keterangan. Informasi ini kita susun dalam suatu tabel dalam database yang kita beri nama kontak. Berikut ini merupakan skrip SQL untuk membuat database dan tabel kontak :
CREATE DATABASE `test`;
CREATE TABLE `kontak` (
`id` int(11) NOT NULL auto_increment,
`nama` varchar(50) NOT NULL,
`email` varchar(50) NOT NULL,
`info` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
);
mengatur kelas
kelas yang akan kita buat ini akan berisikan skrip untuk melakukan penambahan, pengubahan, dan penghapusan record yang ada dalam tabel kontak. Secara umum kelas yang kita definisikan akan memiliki metode untuk query insert, update dan delete serta select. Berikut ini merupakan kelas diagram dari aplikasi yang akan dibuat.
Kelas : KontakGUI
Metode :
addRecord() : void
updateRecord() : void
deleteRecord() : void
openDatabase() : void
closeDatabase() : void
Variabel :
conn : java.sql.Connection
stmt : java.sql.Statement
id : String
nama : String
email : String
info : String
Di dalam kelas ini terdapat dua variabel utama yang akan digunakan untuk mengolah database, yakni : obyek conn dari kelas java.sql.Connection dan stmt dari kelas java.sql.Statement. Obyek conn digunakan untuk membuka dan menutup koneksi ke database, sedangkan obyek stmt digunakan untuk menjalankan query SQL DDL dan MDL.
skrip ;-)
Berikut ini beberapa skrip utama yang akan digunakan untuk membuat aplikasi database yang diurutkan berdasarkan prosesnya :
inisialisasi driver database
// cek driver mysql
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException ex) {
messageBox(ex.getMessage());
}
membuka koneksi databse
try {
String url = "jdbc:mysql://localhost:3306/test";
conn = java.sql.DriverManager.getConnection(url, "root", "");
} catch (SQLException exception) {
messageBox(exception.getMessage());
}
inisialisasi obyek statement
try {
stmt = conn.createStatement();
} catch (SQLException sQLException) {
messageBox(sQLException.getMessage());
}
menjalankan query DML INSERT, UPDATE, dan DELETE / DDL
boolean hasil = false;
try {
hasil = stmt.execute(query);
} catch (SQLException sQLException) {
messageBox(sQLException.getMessage());
}
menjalankan query DML SELECT
java.sql.ResultSet hasil = null;
try {
hasil = stmt.executeQuery(query);
} catch (SQLException sQLException) {
messageBox(sQLException.getMessage());
}
memproses hasil query DML SELECT
while (hasil.next()) {
System.out.println(rs.getString("id") + rs.getString("nama") + rs.getString("email") + rs.getString("info"));
};
}
hasil.close();
hasil = null;
menutup statement
try{
stmt.close();
stmt = null;
} catch (SQLException exception) {
messageBox(exception.getMessage());
}
menutup koneksi database
try{
conn.close();
conn = null;
} catch (SQLException exception) {
messageBox(exception.getMessage());
}
Selasa, 11 Maret 2008
JSTL, oh my mind..
Java memang terkenal selalu membuat inovasi tiada pernah henti... mereka telah mengeluarkan teknologi web yang mampu menyaingi yang sudah ada sebelumnya, seperti PHP, PERL, CGI-BIN, dan lain-lain... Sekarang, udah lama juga hanya penulis saja yang baru belajar teknologi yang satu ini, java mengeluarkan lagi teknologi baru di web yang memungkinkan seseorang pengembang aplikasi untuk membuat sendiri tag-tag baru. Sebagai pelopor dalam hal ini adalah produk tag-lib JSTL (JavaServer Pages Standard Tag Library) yang dikeluarkan oleh Sun, yang berisi tag-lib standar yang banyak dipakai dalam pengembangan aplikasi web, seperti manipulasi dokumen xml, sql, internasionalisasi, kendali struktur, perulangan, kondisi, dan sekawanannya. Detail pembagiannya terdapat dalam listlibrary berikut ini :
- core (javax.servlet.jsp.jstl.core) : untuk pengolahan skrip mendasar seperti struktur, termasuk juga
didalamnya adalah iterasi dan kondisi. - xml (javax.servlet.jsp.jstl.tlv) : berisi kumpulan tag untuk mengolah dokumen xml
- fmt (javax.servlet.jsp.jstl.fmt) : untuk internasionalisasi, sehingga web yang dihasilkan dapat
diakses dengan banyak bahasa - sql (javax.servlet.jsp.jstl.sql) : kumpulan tag untuk memproses data dalam database.
Tag-tag dalam library core
Menggunakan Tag-Lib JSTL
Terdapat beberapa tahapan untuk dapat menggunakan taglib ini :
- Download komponen JSTL, jakarta-taglibs-standard-current.tar.gz, dari
apache.org - Ekstrak hasil download
- Copy file jakarta-taglibs/standard-1.0.3/tld/c.tld ke lokasi
APLIKASI_WEB/WEB-INF/tlds - Copy semua file JAR yang ada di jakarta-taglibs/standard-1.0.3/lib ke
direktori APLIKASI_WEB/WEB-INF/lib - Tambahkan entri berikut pada file APLIKASI_WEB/WEB-INF/web.xml
<taglib>
<taglib-uri>http://java.sun.com/jstl/core</taglib-uri>
<taglib-location>/WEB-INF/tlds/c.tld</taglib-location>
</taglib>
- Restart web container (tomcat)
Penggunaan pada aplikasi Web
Berikut ini merupakan satu contoh penggunaan dari taglib ini :
<%@ page language="java" contentType="text/html" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
<html>
<head>
<title>Halaman JSP</title>
</head>
<body>
<jsp:include page="header.jsp" flush="true">
<jsp:param name="pageTitle" value="newInstance.com"/>
<jsp:param name="pageSlogan" value=" " />
</jsp:include>
<%@ include file="/navigation.jsp" %>
<c:import url="bookshelf.jsp" />
<c:import url="/mt-blogs/index.jsp" />
<%@ include file="/footer.jsp" %>
</body>
</html>
Pada umumnya untuk jstl/core diberikan prefix c, jikalau ingin mengganti juga
dapat dengan menggunakan nama yang lain.
referensi :
http://java.sun.com/products/jsp/jstl/
http://www.crazysquirrel.com/computing/java/jsp/introduction-to-the-jstl.jspx
http://www.ibm.com/developerworks/java/library/j-jsp05273.html
Minggu, 02 Maret 2008
Bugs java under SuSE 10.3
Penyebab :
Terdapat bugs pada distribusi SuSE untuk Java Runtime Environment. Dimana
Solusi :
Tambahkan pada file ~/.bashrc ataupun /etc/profile dengan :
export LIBXCB_ALLOW_SLOPPY_LOCK=1
Referensi :
http://en.opensuse.org/Xlib.lock
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6532373
http://www.suseforums.net/index.php?showforum=3
Kamis, 28 Februari 2008
Servlet ternyata....
Berikut ini merupakan gambaran sederhana dari aplikasi servlet ini....
/**
* Created on 22 february, 2008
* @author kadek surya pranata (kx.k_de@yahoo.com)
*/
package jeni;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class Tes extends javax.servlet.http.HttpServlet{
public void doGet(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse res) throws IOException, ServletException{
res.setContentType("text/html");
PrintWriter out = res.getWriter();
String title = "Hello World";
out.println(title);
}
}
kelas ini ditempatkan pada lokasi $WEB_ROOT/WEB-INF/classes/jeni/Tes.java, secara umum aplikasi servlet memiliki struktur direktori seperti berikut ini :
$WEB_ROOT
--- WEB-INF
-------- web.xml
-------- classes
------------- paket
----------------- Kelas.java
--- index.jsp
kemudian berikut ini merupakan konfigurasi dari servlet pada file web.xml
<?xml version="1.0" ?>
<web-app>
<servlet>
<servlet-name>Hello1</servlet-name>
<servlet-class>jeni.Tes</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Hello1</servlet-name>
<url-pattern>/Tes</url-pattern>
</servlet-mapping>
</web-app>
dengan servlet dimungkinkan untuk dapat membuat file class dapat dijalankan di browser client melalui jaringan. Untuk dapat menghasilkan file kelas dari file java dapat dilakukan dengan menjalankan perintah berikut ini :
javac -cp "$TOMCAT_HOME/common/lib/servlet-api.jar";"$TOMCAT_HOME/common/lib/jsp-api.jar";. jeni/Tes.java
perintah ini dijalankan pada lokasi $WEB_ROOT/WEB-INF/classes, untuk mempermudah dapat dengan menggunakan file script sehingga apabila melakukan modifikasi lebih lanjut dapat dikompilasi kembali menggunakan script yang sama. Apabila berhasil nanti akan dihasilkan satu file kelas dengan nama Tes.class di lokasi $WEB_ROOT/WEB-INF/classes/jeni/Tes.class. Untuk mempermudah proses kompilasi ini oleh pengembang java telah dibuatkan satu builder tool dengan nama ANT.
Terakhir untuk melihat hasilnya dapat dengan menjalankan tomcat kemudian buka browser dengan alamat http://localhost:8080/$WEB_ROOT/Tes.
Ini mungkin sedikit gambaran mengenai servlet yang penulis pelajari, semoga bisa membantu...
Jumat, 04 Januari 2008
James Gosling and Charles Sterling
Namun, disisi lain seorang evangelist dari microsoft menanggapi dengan memberikan pernyataan bahwa ia menerima komentar yang diberikan oleh James Gosling, dengan penjelasan, bahwa .NET tetap memberikan kemampuan c / c++ didalam .NET dengan tujuan agar kode .NET yang dibangun bisa berkomunikasi dengan bahasa tradisional tersebut dalam area "unsafe", sebagai akhirnya akan didapatkan sebuah aplikasi yang dapat meningkatkan performansi yang tinggi justru dikarenakan adanya penyertaan fitur unsafe code dalam .NET.
Artikel sumber yang digunakan dalam tulisan ini dapat dilihat di
http://articles.techrepublic.com.com/5100-1009_11-5565971.html?part=rss&tag=feed&subj=tr
Kamis, 01 November 2007
Connection Pooling, Thanks Mas Ponco
aku udah nyoba nyari sampe keliling-keliling dunia maya, keberbagai server di berbagai negara.. eh ternyata yang bisa beri cahaya terang datangnya dari orang sendiri.. ya dialah mas ponco yang udah repot-repot buat tutorial mengenai tomcat jdbc connection pool "Step by Step Tutorial, create JNDI JDBC Datasource in Tomcat 5.5" yang berhasil aku dapat dari situs http://www.fornewbie.com/article/java/step_by_step_tutorial_create_jndi_jdbc_datasource_in_tomcat_5.5.html.
memang ga nyangka juga sih... tapi aku seneng banget, setidaknya ada satu titik terang ;-) ;^) keep keen...
tapi waktu hari ini mau aku kunjungi lagi halamannya buat ngucapin makasih, eh halamannya udah ga ada lagi... padahal bagus banget kan tutorialnya... tapi ga apalah... sebagai rasa terima kasihku buat mas ponco, tutorialnya aku pajang lagi nih di blog ku...
Step by Step Tutorial, create JNDI JDBC Datasource in Tomcat 5.5
Written by Ponco, Thursday, 07 September 2006
JNDI resource configuration has changed somewhat between Tomcat 5.0.x and Tomcat 5.5.x In this tutorial we will use MySQL database.
Download mysql jdbc driver, extract it then copy the jar into $CATALINA_HOME/common/lib
Create new database for testing,
create database jspTutorial;
CREATE TABLE `employee` (
`EmployeeID` int(8) NOT NULL auto_increment,
`EmployeeName` varchar(128) NOT NULL,
`Address` text,
PRIMARY KEY (`EmployeeID`)
) ENGINE=MyISAM;
insert into `employee` values (1,'Agung Apriyanto','Jl. Merbabu Selatan #34'),
(2,'Slamet Riyadi','Jl. GandulWangi Selatan #23'),
(3,'Ahmad Hartono','Jl. Sumatra Barat #12');
Create context.xml in $CATALINA_HOME/webapps/jspTutorial/META-INF/ directory
<?xml version="1.0" encoding="UTF-8"?>
<Context path="/jspTutorial" docBase="jspTutorial"
debug="5" reloadable="true" crossContext="true">
<Resource name="jdbc/jspTutorial" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="root" password="" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost/jspTutorial?autoReconnect=true"/>
</Context>
Create jspTutorial3.jsp. this page will retrieve data from mysql database through jndi datasource
<%@ page import="javax.naming.InitialContext" %>
<%@ page import="javax.sql.DataSource" %>
<%@ page import="java.sql.Connection" %>
<%@ page import="java.sql.PreparedStatement" %>
<%@ page import="java.sql.ResultSet" %>
<%@ page import="javax.naming.NamingException" %>
<%@ page import="java.sql.SQLException" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
ResultSet rs = null;
try {
InitialContext ctx = new InitialContext();
DataSource ds = (DataSource) ctx.lookup("java:/comp/env/jdbc/jspTutorial");
Connection conn = ds.getConnection();
PreparedStatement pstmt = conn.prepareStatement("SELECT * FROM employee");
rs = pstmt.executeQuery();
} catch (NamingException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
%>
<html>
<head><title>JNDI Datasource tutorial</title></head>
<body>
<table border="1">
<tr><td>EmployeeID</td><td>Name</td><td>Address</td></tr>
<% while (rs.next()) { %>
<tr>
<td><%= rs.getString("EmployeeID")%></td>
<td><%= rs.getString("EmployeeName")%></td>
<td><%= rs.getString("Address")%></td>
</tr>
<% } %>
</table>
</body>
</html>
The page will display
+------------+-----------------+-----------------------------+
| EmployeeID | EmployeeName | Address |
+------------+-----------------+-----------------------------+
| 1 | Agung Apriyanto | Jl. Merbabu Selatan #34 |
| 2 | Slamet Riyadi | Jl. GandulWangi Selatan #23 |
| 3 | Ahmad Hartono | Jl. Sumatra Barat #12 |
+------------+-----------------+-----------------------------+