
Melanjutkan artikel Apache Velocity Create Template DAO, pada pembahasan kali ini juga akan membutuhkan referensi dari artikel CRUD Console dengan Java karena kita akan men-generate DAO dari template yang sudah kita buat di artikel Apache Velocity Create Template DAO. Dalam proses men-generate DAO ini kita akan menggunakan POJO sebagai data informasi untuk men-generate DAO.
Pembahasan kali ini kita beri judul
Apache Velocity Generate DAO
Mari kita ikuti langkah-langkah pembahasan Apache Velocity Generate DAO, seperti dibawah ini:
1). Karena artikel ini melanjutkan pembahasan Apache Velocity Create Template DAO maka kita buka projek “Belajar Apache Velocity” dengan editor eclipse
2). Download JDBC PostgreSQL disini. atau copy dari project “Belajar JDBC PostgreSQL” pada artikel JDBC PostgreSQL dengan Java. Ikuti langkah di artikel JDBC PostgreSQL dengan Java untuk menambahkan library postgreSQL.
3). Copy class “PostgreSQLJDBC” pada project “Belajar JDBC PostgreSQL” pada artikel JDBC PostgreSQL dengan Java. Simpan di folder “src” package “com.wijaksana”
4). Copy class “Mahasiswa” pada project “Belajar JDBC PostgreSQL” pada artikel PreparedStatement Insert Data dengan Java. Simpan di folder “src” package “com.wijaksana”
5). Buka class “Mahasiswa” di package “com.wijaksana”, tambahkan attribut “umur” dengan tipe data “int” jangan lupa aktifkan getter-setter-nya. seperti dibawah ini:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
........ private int umur; ........ public int getUmur() { return umur; } public void setUmur(int umur) { this.umur = umur; } ........ |
6). Buka tabel mahasiswa di database postgreSQL dan tambahkan column “umur” dengan tipe “integer”. berikut sintak sql-nya:
1 2 |
ALTER TABLE mahasiswa ADD COLUMN umur integer; |
7), Create class “GeneretaFromDomain” jangan lupa centang void main.
8). Buka class “GeneretaFromDomain” dan tambahkan coding seperti dibawah ini:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
public static void main(String[] args) throws IOException { ArrayList<ClassDescriptor> classes = new ArrayList<ClassDescriptor>(); ClassDescriptor classDescriptor = new ClassDescriptor(); classDescriptor.setName(Mahasiswa.class.getSimpleName()); Field[] fields = Mahasiswa.class.getDeclaredFields(); for (Field field : fields) { AttributeDescriptor attributeDescriptor = new AttributeDescriptor(); attributeDescriptor.setName(field.getName()); attributeDescriptor.setType(field.getType().getSimpleName()); classDescriptor.addAttributes(attributeDescriptor); } classes.add(classDescriptor); GeneratorUtility utility = new GeneratorUtility(); for (ClassDescriptor wClass : classes) { VelocityEngine ve = new VelocityEngine(); ve.init(); Template template = ve.getTemplate("./resources/dao.vm"); FileWriter writer = new FileWriter("./src/com/wijaksana/" + wClass.getName() + "Dao.java"); VelocityContext context = new VelocityContext(); context.put("class", wClass); context.put("utility", utility); template.merge(context, writer); writer.flush(); writer.close(); } } |
9). Run & Output
Terbentuk file MahasiswaDao.java di folder “src” package “com.wijaksana”
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 package com.wijaksana;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;public class MahasiswaDao {private PostgreSQLJDBC postgreSQLJDBC;public MahasiswaDao(PostgreSQLJDBC postgreSQLJDBC) {this.postgreSQLJDBC = postgreSQLJDBC;}public void create(Mahasiswa mahasiswa) {Connection conn = postgreSQLJDBC.getConnection();try {PreparedStatement ps = conn.prepareStatement("INSERT INTO mahasiswa "+ "(kode, nama, alamat, nohp, umur) "+ "Values(?, ?, ?, ?, ?)");ps.setString(1, mahasiswa.getKode());ps.setString(2, mahasiswa.getNama());ps.setString(3, mahasiswa.getAlamat());ps.setString(4, mahasiswa.getNohp());ps.setInt(5, mahasiswa.getUmur());System.out.println("Insert " + ps.executeUpdate() + " rows");conn.commit();ps.close();} catch (SQLException e) {try {conn.rollback();} catch (SQLException e1) {e1.printStackTrace();}e.printStackTrace();}};public void read() {Connection conn = postgreSQLJDBC.getConnection();try {PreparedStatement ps = conn.prepareStatement("SELECT * FROM mahasiswa");ResultSet rs = ps.executeQuery();while (rs.next()) {String kode = rs.getString("kode");String nama = rs.getString("nama");String alamat = rs.getString("alamat");String nohp = rs.getString("nohp");int umur = rs.getInt("umur");System.out.println(kode + " : " + nama + " : " + alamat + " : " + nohp + " : " + umur);}rs.close();ps.close();} catch (SQLException e) {e.printStackTrace();}};public void update(Mahasiswa mahasiswa) {Connection conn = postgreSQLJDBC.getConnection();try {PreparedStatement ps = conn.prepareStatement("UPDATE mahasiswa "+ "SET nama=?, alamat=?, nohp=?, umur=? "+ "WHERE kode=?");ps.setString(1, mahasiswa.getNama());ps.setString(2, mahasiswa.getAlamat());ps.setString(3, mahasiswa.getNohp());ps.setInt(4, mahasiswa.getUmur());ps.setString(5, mahasiswa.getKode());System.out.println("Update " + ps.executeUpdate() + " rows");conn.commit();ps.close();} catch (SQLException e) {try {conn.rollback();} catch (SQLException e1) {e1.printStackTrace();}e.printStackTrace();}};public void delete(Mahasiswa mahasiswa) {Connection conn = postgreSQLJDBC.getConnection();try {PreparedStatement ps = conn.prepareStatement("DELETE FROM mahasiswa "+ "WHERE kode=?");ps.setString(1, mahasiswa.getKode());System.out.println("Delete " + ps.executeUpdate() + " rows");conn.commit();ps.close();} catch (SQLException e) {try {conn.rollback();} catch (SQLException e1) {e1.printStackTrace();}e.printStackTrace();}};public static void main(String[] args) {PostgreSQLJDBC jdbc = new PostgreSQLJDBC();jdbc.createConnection();MahasiswaDao ups = new MahasiswaDao(jdbc);ups.read();Mahasiswa data = new Mahasiswa();data.setKode("24");data.setNama("24");data.setAlamat("24");data.setNohp("24");data.setUmur(24);ups.create(data);ups.read();data.setNama("1234");ups.update(data);ups.read();ups.delete(data);ups.read();}}
10). Silahkan di run class “MahasiswaDao” untuk melihat hasilnya.
Semoga Membantu,
Salam berbagi,
Yulianto Wijaksana