SQLite - Java: Panduan Pemula

Hai sana, bakal bintang pengkomputeran! ? Selamat datang ke dunia yang menakjubkan SQLite dan Java. Saya sangat gembira untuk menjadi panduanmu dalam perjalanan yang menarik ini. Sebagai seseorang yang telah mengajar sains komputer selama bertahun-tahun, saya bisa menjamin bahwa pada akhir tutorial ini, kamu akan terpesona dengan apa yang kamu bisa capai. Jadi, ayo masuk ke dalam!

SQLite - Java

Instalasi

Sebelum kita mulai menciptakan magi basisdata, kita perlu mengatur tools kita. Pihaknya seperti mempersiapkan dapurmu sebelum memasak makanan lezat. ?

  1. Pertama, unduh driver JDBC SQLite dari sini.
  2. Tambahkan file JAR yang diunduh ke classpath proyek Java mu.

Ini adalah sepotong kode kecil untuk memeriksa jika semua sudah diatur dengan benar:

import java.sql.*;

public class SQLiteTest {
public static void main(String[] args) {
try {
Class.forName("org.sqlite.JDBC");
System.out.println("SQLite JDBC driver loaded successfully!");
} catch (ClassNotFoundException e) {
System.out.println("Error: SQLite JDBC driver not found.");
e.printStackTrace();
}
}
}

Jika kamu melihat "SQLite JDBC driver loaded successfully!" saat kamu menjalankan ini, maka kamu sudah siap!

Menghubungkan ke Database

Sekarang kita sudah mempunyai bahan-bahan siap, mari kita mulai memasak! ?️ Menghubungkan ke basisdata adalah seperti membuka kulkas - itu adalah langkah pertama untuk menciptakan sesuatu yang menakjubkan.

import java.sql.*;

public class SQLiteConnect {
public static void main(String[] args) {
Connection conn = null;
try {
String url = "jdbc:sqlite:test.db";
conn = DriverManager.getConnection(url);
System.out.println("Connection to SQLite has been established.");
} catch (SQLException e) {
System.out.println(e.getMessage());
} finally {
try {
if (conn != null) {
conn.close();
}
} catch (SQLException ex) {
System.out.println(ex.getMessage());
}
}
}
}

Kode ini membuat koneksi ke basisdata SQLite bernama "test.db". Jika file itu tidak ada, SQLite akan menciptakannya untukmu. Itu sungguh menarik, kan?

Membuat Tabel

Sekarang kita sudah terhubung, mari kita buat sebuah tabel. Pihaknya seperti spreadsheet dalam basisdatamu. Kita akan membuat tabel "students" yang sederhana.

import java.sql.*;

public class CreateTable {
public static void main(String[] args) {
String url = "jdbc:sqlite:test.db";

String sql = "CREATE TABLE IF NOT EXISTS students (" +
"id INTEGER PRIMARY KEY," +
"name TEXT NOT NULL," +
"grade INTEGER" +
");";

try (Connection conn = DriverManager.getConnection(url);
Statement stmt = conn.createStatement()) {
stmt.execute(sql);
System.out.println("Table created successfully!");
} catch (SQLException e) {
System.out.println(e.getMessage());
}
}
}

Kode ini membuat tabel "students" dengan tiga kolom: id, name, dan grade. Bagian "IF NOT EXISTS" adalah seperti knock yang sopan pada pintu - itu memeriksa jika tabel sudah ada sebelum mencoba untuk menciptakannya.

Operasi INSERT

Sekarang mari kita tambahkan beberapa data ke tabel kita. Ini seperti mengisi spreadsheet yang kita buat sebelumnya.

import java.sql.*;

public class InsertData {
public static void main(String[] args) {
String url = "jdbc:sqlite:test.db";
String sql = "INSERT INTO students(name,grade) VALUES(?,?)";

try (Connection conn = DriverManager.getConnection(url);
PreparedStatement pstmt = conn.prepareStatement(sql)) {

pstmt.setString(1, "Alice");
pstmt.setInt(2, 85);
pstmt.executeUpdate();

pstmt.setString(1, "Bob");
pstmt.setInt(2, 90);
pstmt.executeUpdate();

System.out.println("Data inserted successfully!");
} catch (SQLException e) {
System.out.println(e.getMessage());
}
}
}

Kode ini menambahkan dua murid ke tabel kita. Tanda "?" dalam pernyataan SQL adalah placeholder yang kita isi dengan setString() dan setInt(). Itu seperti mengisi blanko dalam kalimat!

Operasi SELECT

Sekarang kita sudah menambahkan beberapa data, mari kita periksa itu. Ini seperti membaca dari spreadsheet kita.

import java.sql.*;

public class SelectData {
public static void main(String[] args) {
String url = "jdbc:sqlite:test.db";
String sql = "SELECT id, name, grade FROM students";

try (Connection conn = DriverManager.getConnection(url);
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql)) {

while (rs.next()) {
System.out.println(rs.getInt("id") + "\t" +
rs.getString("name") + "\t" +
rs.getInt("grade"));
}
} catch (SQLException e) {
System.out.println(e.getMessage());
}
}
}

Kode ini mengambil semua data dari tabel murid kita dan mencetaknya. Loop while adalah seperti melalui setiap baris di spreadsheet kita satu per satu.

Operasi UPDATE

kadang-kadang kita perlu mengubah data yang sudah ada dalam tabel kita. Mari kita perbarui nilai grade Alice.

import java.sql.*;

public class UpdateData {
public static void main(String[] args) {
String url = "jdbc:sqlite:test.db";
String sql = "UPDATE students SET grade = ? WHERE name = ?";

try (Connection conn = DriverManager.getConnection(url);
PreparedStatement pstmt = conn.prepareStatement(sql)) {

pstmt.setInt(1, 95);
pstmt.setString(2, "Alice");
pstmt.executeUpdate();
System.out.println("Data updated successfully!");
} catch (SQLException e) {
System.out.println(e.getMessage());
}
}
}

Kode ini memperbarui nilai grade Alice menjadi 95. Itu seperti menghapus sel di spreadsheet kita dan menulis nilai baru.

Operasi DELETE

Akhirnya, mari kita belajar bagaimana menghapus data dari tabel kita. Mungkin Bob memutuskan untuk transfer ke sekolah lain.

import java.sql.*;

public class DeleteData {
public static void main(String[] args) {
String url = "jdbc:sqlite:test.db";
String sql = "DELETE FROM students WHERE name = ?";

try (Connection conn = DriverManager.getConnection(url);
PreparedStatement pstmt = conn.prepareStatement(sql)) {

pstmt.setString(1, "Bob");
pstmt.executeUpdate();
System.out.println("Data deleted successfully!");
} catch (SQLException e) {
System.out.println(e.getMessage());
}
}
}

Kode ini menghapus Bob dari tabel murid kita. Itu seperti menghapus keseluruhan baris dari spreadsheet kita.

Dan itu saja! Kamu telah belajar dasar-dasar kerja dengan SQLite di Java. Ingat, latihan membuat sempurna, jadi jangan takut untuk mencoba contoh-contoh ini. Sebelum kamu tahu, kamu akan menciptakan aplikasi basisdata yang kompleks!

Berikut adalah tabel rujukan cepat metode utama yang kita gunakan:

Method Description
DriverManager.getConnection(url) Membuat koneksi ke basisdata
Connection.createStatement() Membuat objek Statement untuk menjalankan SQL
Connection.prepareStatement(sql) Membuat PreparedStatement untuk menjalankan SQL yang di parameterkan
Statement.execute(sql) Menjalankan pernyataan SQL yang tidak mengembalikan hasil
Statement.executeQuery(sql) Menjalankan query SQL dan mengembalikan ResultSet
PreparedStatement.setString(index, value) Mengatur parameter String dalam PreparedStatement
PreparedStatement.setInt(index, value) Mengatur parameter int dalam PreparedStatement
PreparedStatement.executeUpdate() Menjalankan pernyataan INSERT, UPDATE, atau DELETE
ResultSet.next() Memindahkan ke baris berikutnya dalam ResultSet
ResultSet.getInt(columnName) Mendapatkan nilai int dari baris saat ini
ResultSet.getString(columnName) Mendapatkan nilai String dari baris saat ini

Terus mengoding, terus belajar, dan terutama, bersenang-senang! ??

Credits: Image by storyset