Basis data

SQL

Spons menyediakan perangkat abstraksi untuk membangun koneksi database JDBC yang menangani kompleksitas mendirikan efisien dikumpulkan koneksi dari JDBC URL.

Sementara layanan SQL mendukung JDBC connector, Menempa pelaksanaan Spons hanya kapal dengan yang paling umum:

  • Sql Saya
  • Sqlite
  • H2

Peringatan

Karena Sqlite memiliki banyak keterbatasan, penggunaannya sangat tidak dianjurkan kecuali dalam kasus di mana warisan kompatibilitas diperlukan. H2 adalah kita dianjurkan file yang didukung implementasi database.

Pemakaan

Sumber data yang dapat diakses melalui layanan plugin manager:

import org.spongepowered.api.Sponge;
import org.spongepowered.api.service.sql.SqlService;

import java.sql.Connection;
import java.sql.SQLException;

private SqlService sql;
public javax.sql.DataSource getDataSource(String jdbcUrl) throws SQLException {
    if (sql == null) {
        sql = Sponge.getServiceManager().provide(SqlService.class).get();
    }
    return sql.getDataSource(jdbcUrl);
}

// Later on
public void myMethodThatQueries() throws SQLException {
    Connection conn = getDataSource("jdbc:h2:imalittledatabaseshortandstout.db").getConnection();
    try {
        conn.prepareStatement("SELECT * FROM test_tbl").execute();
    } finally {
        conn.close();
    }

}

SQL menyediakan layanan koneksi yang terkumpul, sehingga mendapatkan koneksi dari kembali DataSource tidak mahal. Oleh karena itu, kami merekomendasikan untuk tidak menjaga koneksi sekitar, dan penutupan mereka segera setelah digunakan sebagai gantinya, seperti yang ditunjukkan dalam contoh di atas. (Pengelolaan sumberdaya yang tepat berarti anda lakukan harus menutup koneksi).

NoSQL

Spons saat ini tidak memberikan khusus abstraksi dari database NoSQL (MongoDB dll). Plugin yang ingin menggunakan database NoSQL harus memberikan mereka sendiri konektor.