Veritabanları

SQL

Sponge, bir JDBC URL’sinden verimli bir havuzlanmış bağlantı kurmanın karmaşıklıklarını işleyen JDBC veritabanı bağlantılarını oluşturmak için uygun bir soyutlama sağlar.

SQL hizmeti herhangi bir JDBC bağlayıcısını desteklerken, Sponge Forge uygulaması yalnızca en yaygın olanıyla birlikte gelir:

  • MySQL
  • Sqlite
  • H2

Uyarı

Sqlite’in birçok kısıtlaması olduğundan, eski uyumluluğun gerekli olduğu durumlar haricinde kullanımı kesinlikle önerilmemektedir. H2, önerilen dosya destekli veritabanı uygulamasıdır.

Kullanım

Veri tabanına eklentinin servis yöneticisi ile erişilebilir:

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 hizmeti, havuzlanmış bir bağlantı sağlar; bu nedenle, döndürülen DataSource’dan bağlantı almak yüksek değildir. Bu nedenle, yukarıdaki örnekte gösterildiği gibi bağlantıları yakınında tutmamak ve kullanımdan hemen sonra kapatmak önerilir. (Doğru kaynak yönetimi, bağlantıları kapatmanız gerektiği anlamına gelir *).

NoSQL

Sponge şu anda NoSQL veritabanları üzerinde herhangi bir özel soyutlama sağlamamaktadır (MongoDB vb.). NoSQL veritabanlarını kullanmak isteyen eklentiler kendi bağlayıcılarını sağlamalıdır.