Langsung ke konten utama

Database di Pemrograman Java

Kali ini kita akan mencoba membaca data di dalam database melalui aplikasi yang dibuat dari bahasa pemrograman java. Database yang akan kita gunakan adalah MySQL. Pada postingan sebelumnya saya sudah menjelaskan tentang bagaimana membuat database sederhana dengan MySQL. Sekarang tinggal kita hubungkan koneksinya pada program java nantinya.
Sebelum kita menghubungkan database dengan program java, kita membutuhkan sebuah library java yang nantinya berguna sebagai “perantara” antara database MySQL dengan program java kita. Library yang akan kita gunakan adalah MySQL connector java yang anda bisa download disini, untuk aplikasi ini saya menggunakan mysql-connector-java-5.1.7.
Setelah library di add dalam ide baru kita bisa memanggil ataupun menggunakan db tersebut.
Di dalam lab kami diberi penjelasan seperti diatas dan codenya diberi oleh aslab kami seperti dbawah ini:
Database.java

package Pertemuan6.Complex;
import java.sql.*;
public class Database {
    private static final String dbName = "fedosdb", dbUsername = "root", dbPass = "";
    public Statement makeStatement() throws SQLException {
        Connection connection = DriverManager.getConnection(
                "jdbc:mysql://localhost:3306/" + dbName,
                dbUsername,
                dbPass
        );
        return connection.createStatement();
    }
}
Model.java
package Pertemuan6.Complex;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Types;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

public abstract class Model {

    protected abstract String tableName();

    public <T> List<T> select(String where, Class<? extends Model> className) {

        Database db = new Database();

        List<T> list = new ArrayList<>();

        try {

            Statement statement = db.makeStatement();
            String str = "SELECT * FROM " + tableName();

            if (where != null)

                str += " WHERE " + where;
            ResultSet result = statement.executeQuery(str);

            HashMap<Integer, Method> methods = new HashMap<Integer, Method>();

            for (int i = 1; i <= result.getMetaData().getColumnCount(); i++) {

                String columnName = result.getMetaData().getColumnName(i);
                try {

                    switch (result.getMetaData().getColumnType(i)) {
                        case Types.INTEGER:
                        case Types.SMALLINT:
                        case Types.TINYINT:
                        case Types.BIGINT:
                            methods.put(i, className.getDeclaredMethod("set" + columnName, Integer.class));
                        case Types.VARCHAR:
                        case Types.CHAR:
                            methods.put(i, className.getDeclaredMethod("set" + columnName, String.class));
                    }
                } catch (NoSuchMethodException e) {
                    System.err.println("No method named set" + columnName);
                }
            }
            while (result.next()) {
                try {
                    T o = (T) className.newInstance();
                    for (int i = 1; i <= result.getMetaData().getColumnCount(); i++) {
                        Method method = methods.get(i);
                        if (method != null) {
                            switch (result.getMetaData().getColumnType(i)) {
                                case Types.INTEGER:

                                case Types.SMALLINT:

                                case Types.TINYINT:

                                case Types.BIGINT:

                                    method.invoke(o, result.getInt(i));

                                    break;

                                case Types.VARCHAR:

                                case Types.CHAR:

                                    method.invoke(o, result.getString(i));

                                    break;

                            }

                        }

                    }

                    list.add(o);

                } catch (InstantiationException | InvocationTargetException | IllegalAccessException e) {

                    e.printStackTrace();

                }

            }

        } catch (SQLException e) {

            e.printStackTrace();

        }
        return list;

    }

}
User.java
package Pertemuan6.Complex;



import java.util.List;
public class User extends Model {
    private Integer id;
    private String username;
    @Override
    protected String tableName() {
        return "user";
    }
    public static void main(String[] args) {
        User user = new User();
        List<User> list = user.select(null, User.class);
        System.out.println(list);
    }
    public Integer getid() {
        return id;
    }
    public void setid(Integer id) {
        this.id = id;
    }
    public String toString() {
        if (username != null)
            return username.toString();
        return null;
    }
public String getusername() {
        return username;
    }
    public void setusername(String username) {
        this.username = username;
    }
}


sekian~

Komentar

Postingan populer dari blog ini

Thread dalam Java

Apa itu Kelas  Thread Java Salah satu fitur yang tertanam pada  environment Java  yaitu dukungan untuk menggunakan  thread .  Thread  memungkinkan sebuah aplikasi  Java untuk melakukan banyak aktifitas/operasi secara simultan (serentak). Dengan menggunakannya secara benar,  thread  memungkinkan  User Interface  sebuah aplikasi tetap responsif saat aplikasi tersebut melakukan operasi yang memakan waktu lama seperti komunikasi  networking  atau perhitungan-perhitungan yang kompleks.  Thread  adalah unit fundamental dari eksekusi program. Setiap aplikasi minimal memiliki sebuah  thread  untuk menjalankan kode. Aplikasi yang memiliki dua  thread  atau lebih, biasa disebut dengan  multithreaded application .  Fungsi seperti ini sering kita butuhkan dalam membuat program aplikasi/game nantinya. Misalnya, sebuah  thread  yang bertugas menjalankan operasi penghitungan nilai/...

Program Exception Pada Java

Di dalam Lab, kami juga mempelajari sekilas tentang program exception: Exception  merupakan suatu kejadian yang tidak biasa atau event abnormal yang muncul ketika sedang menjalankan program. Exception merupakan runtime error. Ketika Exception muncul, maka akan melempar  sebuah obyek Exception, jika obyek yang dilempar ini tidak ditangani atau ditangkap maka akan mengakibatkan program determinasi (berhenti), hal ini dapat menyebabkan program menjadi tidak handal. Untuk mengatasi hal ini dibutuhkan sesuatu untuk menangani Exception. Error dan Exception Classes Seluruh exceptions adalah subclasses, baik secara langsung maupun tidak langsung, dari sebuah root class Throwable. Kemudian, dalam class ini terdapat dua kategori umum : Error class dan Exception class. Exception class menunjukkan kondisi yang dapat diterima oleh user program. Umumnya hal tersebut disebabkan oleh beberapa kesalahan pada kode program. Contoh dari exceptions adalah pembagian oleh 0 dan error di luar ...

Java Collection

C ollection adalah sekumpulan interface dan class yang sangat berguna dalam pengolahan variable / objek di Java.  Suatu objek collection Java dapat menyimpan beberapa elemen objek dalam suatu kesatuan group.  Dengan pengelompokan dalam group tersebut kita mendapatkan manfaat berikut : menyimpan elemen dengan urutan tertentu,  mengambil kembali elemen tersebut dengan index atau dengan berbagai metode yang spesifik,  memanipulasi data terutama agregasi dari elemen-elemen yang ada seperti penjumlahan,  dan berbagai transformasi bermanfaat lainnya. Beberapa Pengertian: 1.  Map dan List Map dan List merupakan sebuah interface yang digunakan untuk menerapkan Collection. Map dan List yang dibuat dapat memiliki cara implementasi yang berbeda, misalnya dengan menggunakan Array, menggunakan key hash. Apa perbedaan map dan list? Map dapat memiliki Key custom (Object, String, Integer, dll) sedangkan List hanya berupa sebuah daftar 2. ...