Android Uygulamalarında Uzak Veritabanına Bağlanma
Android uygulamaları, verileri depolamak ve yönetmek için genellikle yerel veritabanlarını kullanır. Ancak, bazı durumlarda uzak bir veritabanına bağlanmak gerekebilir. Bu, verilerin birden fazla cihaz veya kullanıcı tarafından erişilmesi gerektiğinde veya verilerin güvenli bir şekilde saklanması gerektiğinde yararlı olabilir.
Uzak bir veritabanına bağlanmak için, öncelikle bir veritabanı sunucusuna ihtiyacınız vardır. Bu, veritabanını barındıran ve uygulamanıza erişim sağlayan bir bilgisayardır. Veritabanı sunucusu, MySQL, PostgreSQL veya Oracle gibi çeşitli veritabanı yönetim sistemleri (DBMS) tarafından çalıştırılabilir.
Veritabanı sunucusunu kurduktan sonra, uygulamanızın veritabanına bağlanması gerekir. Bu, java.sql
paketini kullanarak yapılabilir. java.sql
paketi, JDBC (Java Veritabanı Bağlantısı) API’sini içerir. JDBC, Java uygulamalarının veritabanlarına bağlanmasını sağlayan bir standarttır.
JDBC kullanarak veritabanına bağlanmak için, öncelikle bir bağlantı nesnesi oluşturmanız gerekir. Bağlantı nesnesi, veritabanı sunucusunun adresini, bağlantı portunu, veritabanı adını, kullanıcı adını ve şifreyi içerir. Bağlantı nesnesi oluşturulduktan sonra, veritabanına sorgular göndermek ve verileri almak için kullanılabilir.
Aşağıdaki kod örneği, MySQL veritabanına nasıl bağlanılacağını göstermektedir:
“`java
import java.sql.*;
public class DatabaseConnection {
public static void main(String[] args) {
// Veritabanı sunucusunun adresi
String host = "localhost";
// Veritabanı bağlantı portu
int port = 3306;
// Veritabanı adı
String dbName = "test";
// Kullanıcı adı
String user = "root";
// Şifre
String password = "";
// Bağlantı nesnesi
Connection connection = null;
try {
// JDBC sürücüsünü yükleyin
Class.forName("com.mysql.jdbc.Driver");
// Bağlantı nesnesi oluşturun
connection = DriverManager.getConnection("jdbc:mysql://" + host + ":" + port + "/" + dbName, user, password);
// Bağlantı başarılıysa mesaj yazdırın
System.out.println("Veritabanına bağlantı başarılı!");
} catch (ClassNotFoundException e) {
// JDBC sürücüsü bulunamadıysa hata mesajı yazdırın
System.out.println("JDBC sürücüsü bulunamadı!");
} catch (SQLException e) {
// Veritabanına bağlantı kurulamadıysa hata mesajı yazdırın
System.out.println("Veritabanına bağlantı kurulamadı!");
} finally {
// Bağlantı nesnesini kapatın
if (connection != null) {
connection.close();
}
}
}
}
“`
Bu kod örneğinde, Class.forName()
metodu JDBC sürücüsünü yükler. DriverManager.getConnection()
metodu ise bağlantı nesnesini oluşturur. Bağlantı nesnesi oluşturulduktan sonra, System.out.println()
metodu kullanılarak bağlantının başarılı olduğu mesajı yazdırılır.
Uzak bir veritabanına bağlandıktan sonra, veritabanına sorgular göndermek ve verileri almak için Statement
ve ResultSet
nesneleri kullanılabilir. Statement
nesnesi, veritabanına sorgular göndermek için kullanılır. ResultSet
nesnesi ise, sorgunun sonucunda dönen verileri içerir.
Aşağıdaki kod örneği, MySQL veritabanına bir sorgu göndererek verileri nasıl alınacağını göstermektedir:
“`java
import java.sql.*;
public class DatabaseQuery {
public static void main(String[] args) {
// Veritabanı sunucusunun adresi
String host = "localhost";
// Veritabanı bağlantı portu
int port = 3306;
// Veritabanı adı
String dbName = "test";
// Kullanıcı adı
String user = "root";
// Şifre
String password = "";
// Bağlantı nesnesi
Connection connection = null;
// Sorgu nesnesi
Statement statement = null;
// Sonuç kümesi nesnesi
ResultSet resultSet = null;
try {
// JDBC sürücüsünü yükleyin
Class.forName("com.mysql.jdbc.Driver");
// Bağlantı nesnesi oluşturun
connection = DriverManager.getConnection("jdbc:mysql://" + host + ":" + port + "/" + dbName, user, password);
// Sorgu nesnesi oluşturun
statement = connection.createStatement();
// Sorguyu çalıştırın
resultSet = statement.executeQuery("SELECT * FROM users");
// Sonuç kümesindeki verileri yazdırın
while (resultSet.next()) {
System.out.println(resultSet.getString("name"));
}
} catch (ClassNotFoundException e) {
// JDBC sürücüsü bulunamadıysa hata mesajı yazdırın
System.out.println("JDBC sürücüsü bulunamadı!");
} catch (SQLException e) {
// Veritabanına bağlantı kurulamadıysa hata mesajı yazdırın
System.out.println("Veritabanına bağlantı kurulamadı!");
} finally {
// Bağlantı nesnesini kapatın
if (connection != null) {
connection.close();
}
// Sorgu nesnesini kapatın
if (statement != null) {
statement.close();
}
// Sonuç kümesi nesnesini kapatın
if (resultSet != null) {
resultSet.close();
}
}
}
}
“`
Bu kod örneğinde, Class.forName()
metodu JDBC sürücüsünü yükler. DriverManager.getConnection()
metodu bağlantı nesnesini oluşturur. createStatement()
metodu sorgu nesnesini oluşturur. executeQuery()
metodu ise sorguyu çalıştırır ve sonuç kümesi nesnesini döndürür. Sonuç kümesi nesnesi, next()
metodu kullanılarak gezilebilir ve veriler getString()
metodu kullanılarak alınabilir.