Menghubungkan android studio dengan mysql

Menghubungkan android studio dengan mysql

Retrofit merupakan library android yang sering digunakan untuk terhubung ke Client Rest kemudian menerjemahkan API ke java. Library ini juga dapat memudahkan penggunaan JSON dan diurai menjadi POJOs (Plain Old Java Objects).

Menghubungkan android studio dengan mysql

Langsung saja, sebelum melanjutkan ke tahap selanjutnya. Pastikan terlebih dahulu Android Studio (IDE, SDK & JDK), XAMPP versi terbaru (phpMyAdmin) telah terinstal pada perangkat yang akan digunakan. Jika belum, silahkan untuk mendownload dan menginstal software tersebut pada perangkat dan melanjutkan ke tahap berikutnya.

Pada bagian 1, kita akan membuat tabel database & koneksi terlebih dahulu. Silahkan untuk mengikuti langkah-langkah berikut, pastikan untuk mengikuti alur dari awal agar tidak terjadi error nantinya. 

1. Buat database di phpMyAdmin dengan nama latihancrud, kemudian buattabel dengan nama user dengan isi tabel seperti pada gambar dibawah ini. Klik untuk mengetahui cara membuat database baru pada phpMyAdmin

Menghubungkan android studio dengan mysql

Pada dasarnya: Anda dapat terhubung ke server MySQL (atau apa pun yang Anda gunakan), tetapi Anda tidak boleh melakukan ini langsung dari aplikasi Android Anda.

Alasan:

  1. Aplikasi Android dapat didekompilasi, dan klien akan memiliki kredensial untuk mengakses ke database Anda. Jika menggunakan alat peretasan yang tepat seperti Backtrack , maka klien jahat ini dapat mengakses, menyambungkan dan mengeksploitasi data dalam database Anda.

  2. Jika aplikasi Anda untuk klien di seluruh dunia, maka klien harus membuka dan memelihara koneksi ke database Anda per operasi atau serangkaian operasi. Membuka koneksi basis data fisik membutuhkan banyak waktu, bahkan ketika klien pc Anda berada dalam LAN di sebelah server mesin basis data. Sekarang, bayangkan membuka koneksi dari suatu negara di sisi lain dunia, mis. Cina atau Jepang atau dari negara di Amerika Selatan seperti Brasil atau Peru (tempat saya tinggal).

Untuk 2 alasan ini saya dapat memunculkannya, itu adalah ide yang buruk bahkan mencoba untuk terhubung ke MySQL atau mesin database lain langsung dari perangkat ponsel Anda.

Bagaimana cara mengatasi masalah ini? Gunakan arsitektur berorientasi layanan di mana Anda akan memiliki setidaknya dua aplikasi:

  1. Aplikasi penyedia layanan. Aplikasi ini akan membuat dan menerbitkan layanan web (sebaiknya RESTful) dan dapat menetapkan kebijakan untuk mengkonsumsi layanan web seperti otentikasi dan otorisasi pengguna. Aplikasi ini juga akan terhubung ke database dan menjalankan operasi CRUD.

  2. Aplikasi konsumen layanan. Ini adalah aplikasi Android Anda (atau ponsel lainnya).

Dari pertanyaan Anda, Anda berfokus pada poin 1. Seperti yang telah saya katakan di komentar saya, Anda dapat membuat aplikasi Web di Jawa, membuat layanan RESTful di sana, yang bermuara pada POJO (objek Java kuno sederhana) yang memiliki metode per layanan. Dalam metode ini, karena ini adalah Java biasa, Anda dapat menambahkan fungsionalitas lain seperti penggunaan JDBC.

Berikut adalah contoh kickoff menggunakan Jersey, Jackson (perpustakaan JSON) dan JDBC:

@Path("/product")
public class ProductRestService {

    @GET
    @Path("/list")
    @Produces(MediaType.APPLICATION_JSON)
    public List<Product> getProducts() {
        List<Product> productList = new ArrayList<>();
        Connection con = ...; //retrieve your database connection
        Statement stmt = con.createStatement();
        ResultSet rs = stmt.executeQuery("SELECT id, name FROM product");
        while (rs.next()) {
            Product product = new Product();
            product.setId(rs.getInt("id"));
            product.setName(rs.getString("name"));
            productList.add(product);
        }
        //ALWAYS close the resources
        rs.close();
        stmt.close();
        conn.close();
        return productList;
    }
}

Anda dapat memeriksa konfigurasi lebih lanjut dari aplikasi web Java dalam tutorial seperti mkyong's atau Vogella's atau yang lain dari suka Anda (terlalu banyak info untuk dimasukkan dalam jawaban ini).

Perhatikan bahwa aplikasi ini dapat berkembang menjadi aplikasi berlapis, dan kode JDBC akan masuk dalam kelas DAO, dan kemudian kelas ProductRestService akan mengakses ke database melalui kelas DAO ini. Berikut contoh kickoff lainnya:

public class ProductDao {
    public List<Product> getProducts() {
        List<Product> productList = new ArrayList<>();
        Connection con = ...; //retrieve your database connection
        //the rest of the code explained above...
        return productList;
    }
}

@Path("/product")
public class ProductRestService {
    @GET
    @Path("/list")
    @Produces(MediaType.APPLICATION_JSON)
    public List<Product> getProducts() {
        ProductDao productDao = new ProductDao();
        return productDao.getProducts();
    }
}

Dan Anda dapat menerapkan perubahan lain pada proyek ini dan juga sedang berkembang.

Bisakah Anda memberi tahu saya apa yang PHP lakukan di sini? (jika saya kembangkan dengan PHP)

Alih-alih menulis aplikasi penyedia Layanan di Jawa (seperti yang ditunjukkan di atas), Anda dapat melakukannya dalam PHP. Atau dengan Python, Ruby, C #, Scala atau bahasa pemrograman lain yang menyediakan teknologi ini untuk Anda. Sekali lagi, saya tidak yakin tutorial seperti apa yang Anda baca, tetapi ini harus dijelaskan di suatu tempat dan menjelaskan bahwa untuk keperluan tutorial itu Anda akan membuat layanan menggunakan PHP. Jika Anda merasa lebih nyaman menulis layanan ini di Jawa daripada di PHP atau bahasa lainnya, tidak ada masalah. Aplikasi Android Anda tidak terlalu peduli teknologi mana yang digunakan untuk menghasilkan layanan web, ia hanya akan peduli untuk mengkonsumsi layanan dan bahwa data dari mereka dapat dikonsumsi.