Mengakses database menggunakan Spring data source DBCP

Posted: August 1, 2011 in Spring 3
Tags: , , , , ,

Pada artikel sebelumnya, spring 3 JDBC, disitu saya mengakses database menggunakan data source. Sekarang saya akan memberikan cara mengakses database menggunakan connection pool. Dengan menggunakan connection pool maka akses ke database akan menjadi lebih cepat. Kalau ingin penjelasan lebih mengenai connection pool, silahkan googling ya😀 atau nanti saya akan buatkan tulisan mengenai connection pool tersebut.

Untuk dapat menggunakan connection pool kita harus menggunakan layanan yang disediakan oleh pihak ketiga. Salah satu layanan yang paling banyak digunakan adalah Apache Jakarta Commons DBCP dan C3PO. Library untuk Apache Jakarta Commons DBCP bisa didownload di sini. Selain itu kita juga memerlukan commons-pool yang dapat didownload di sini.

Sekarang langsung saja kita buat file application-context.xml nya. Ini tidak jauh berbeda dengan file konfigurasi di tulisan sebelumnya, hanya saja kali ini datasourcenya menggunakan class org.apache.commons.dbcp.BasicDataSource dan saya menggunakan context:property-placeholder.

<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans-3.0.xsd

http://www.springframework.org/schema/aop

http://www.springframework.org/schema/aop/spring-aop-3.0.xsd

http://www.springframework.org/schema/context

http://www.springframework.org/schema/context/spring-context-3.0.xsd">

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${jdbc.driverClassName}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
<context:property-placeholder location="/com/maniakjava/config/jdbc.properties"/>

<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource"/>
</bean>

</beans> 

Kemudian buat file jdbc.properties yang berisi konfigurasi data source

jdbc.driverClassName=org.postgresql.Driver
jdbc.url=jdbc:postgresql://localhost/spring
jdbc.username=postgres
jdbc.password=maniakjava

Kemudian kita tinggal membuat class Main

package com.maniakjava.main;

import java.util.Map;
import javax.sql.DataSource;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.jdbc.core.JdbcTemplate;

public class Main
{
   public static void main(String args[]) throws Exception
   {
      ApplicationContext context = new ClassPathXmlApplicationContext
("/com/maniakjava/config/application-context.xml");

      DataSource dataSource = (DataSource) context.getBean("dataSource");    
      JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);

      Map map = null;
      map = jdbcTemplate.queryForMap
           ("select * " +
           " from member where memberid = ?","test");

      System.out.println("MemberId : " + map.get("memberid"));
      System.out.println("Nama : " + map.get("name"));
   }
}

 

Sudah selesai, jika dijalankan maka output yang dihasilkan adalah

MemberId : test
Nama : testing

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s