Unity ile kolayca veritabanına nasıl entegre olunacağını öğrenin! Bu yazıda CRUD işlemlerini de öğrenecek, Unity projelerinizi güçlendirecek bilgiye sahip olacaksınız Hemen okuyun!

Bu makalede, Unity kullanarak veritabanı işlemleri yapmak için ihtiyacınız olan tüm bilgileri bulabilirsiniz. Veritabanı oluşturma, kayıt ekleme, güncelleme ve silme işlemlerini yapabileceksiniz. İşlemleri gerçekleştirmek için hazır olan Asset Database kullanabileceğiniz gibi, SQLite gibi farklı bir veritabanı da kullanabilirsiniz.
CRUD işlemleri, veritabanı işlemlerinde sıklıkla kullanılan temel işlemlerdir. Bu nedenle, bu makalede size bu işlemlerin nasıl gerçekleştirileceğini öğreteceğiz. Kayıt ekleme işlemi için bir örnek kod paylaşacağız ve işlem sonucunu nasıl belirleyebileceğiniz hakkında da bilgi vereceğiz. Kayıt güncelleme ve silme işlemleri için de örnek kodlar paylaşacağız. Ayrıca, hataları yakalamak için try-catch bloklarını kullanmanız gerektiği konusunda da bilgilendireceğiz.
Veritabanı Oluşturma
Unity, veritabanı ile çalışmak için oldukça kullanışlı bir araçtır. Bir veritabanı oluşturmak için ise Unity’de SQLite gibi bir veritabanı oluşturmak için kullanacağınız paketi seçmeniz ve uygulamanıza entegre etmeniz gerekir. Bu işlem oldukça kolay bir şekilde gerçekleştirilebilir.
Unity, projenin Asset Store’unu kullanarak, kolayca entegre edilebilecek hazır paketler sunar. Veritabanı işlemleri için de SQLite Asset Paketi gibi birçok seçenek bulunur. Projenize entegre etmek için bu paketleri kullanmanız yeterlidir. Unity’nin kod yazma ve veritabanı işlemlerini basitleştirme gibi özellikleri sayesinde, veritabanı oluşturma işlemi oldukça hızlı ve kolay hale getirilebilir.
Bir sonraki adım, veritabanına kayıt eklemek için CREATE işlemidir.
CREATE İşlemi
CREATE işlemi, veritabanınıza yeni bir kayıt eklemenin en basit yoludur. Unity kullanarak hazırlanan Asset Database, veritabanınıza yeni bir kayıt eklemek için kullanabileceğiniz birçok seçenek sunar. Bu işlem için, öncelikle Asset Database prefab'ınızdaki Add button'a tıklayarak yeni bir özellik eklemeniz gerekir. Eklenecek özellikler arasında, özelleştirilmiş bir isim ve veri türü seçimi yer alır.
Verileri saklamak için Unity'nin nasıl yapılandırıldığına ve verilerin nasıl depolandığına karar vermeniz gerekiyor. Verileri birkaç farklı şekilde saklayabilirsiniz. Örneğin, tek bir tablo oluşturabilir ve her satırda bir öğe saklayabilirsiniz. Bu, verilerinizi düzenli tutmak istiyorsanız en iyi seçenek olabilir.
Verilerinizi saklamak için Asset Bundle kullanıyorsanız, kayıtlarınızı SQLite veritabanı olarak depolamanızı öneririz. Bu, veri depolamanızı yönetmenize ve verilerinizi daha iyi kontrol etmenize yardımcı olacaktır. Ayrıca, SQLite veritabanı üzerinde yaptığınız değişiklikler, Unity projesindeki Asset Database projesinde değişiklikler yaparak anında etkileşime girecektir.
Kayıt Ekleme
Veritabanı işlemlerinin temelinde kayıt ekleme işlemi yer alır. Kayıt ekleme işlemi, veritabanına yeni bir öğe ekleyerek verileri güncellemenize olanak tanır. Unity ile SQLite veritabanına yeni bir kayıt eklemek oldukça kolaydır.
Öncelikle, veritabanına ekleme yapmak için hazırlanmış Unity Asset Store'dan SQLite paketini indirmelisiniz. Ardından, kaydedilecek özel bir atıftan oluşan bir Connection string ve SQLiteConnection nesnesi yaratmanız gerekiyor. SQLiteDataAdapter kullanarak öğeyi ekleyebilirsiniz.
İşlem başarısız olduğunda hataları yakalamak için try-catch bloklarının kullanılması önemlidir. Ayrıca, ekleme işleminin başarılı olup olmadığını derleme zamanında belirlemenizin yanı sıra, çalışma zamanında başarı durumunu da döndürmeniz gerekmektedir.
Aşağıda, SQLite veritabanına veri ekleme işlemini gerçekleştirmek için kullanabileceğiniz örnek bir kod yer almaktadır:
Kod | Açıklama |
---|---|
string connectionStr = "URI=file:" + Application.dataPath + "/myDatabase.db"; | Veritabanı bağlantı dizesi yaratılır |
using(SQLiteConnection connection = new SQLiteConnection(connectionStr)) | Veritabanına bağlantı yapılır |
{ connection.Open(); string query = "INSERT INTO myTable (column1,column2,column3) VALUES (@value1,@value2,@value3)"; SQLiteCommand command = new SQLiteCommand(query, connection); command.Parameters.AddWithValue("@value1", value1); command.Parameters.AddWithValue("@value2", value2); command.Parameters.AddWithValue("@value3", value3); command.ExecuteNonQuery(); connection.Close(); } | Veri ekleme işlemi gerçekleştirilir |
Bu örnek kodu kullanarak, SQLite veritabanına yeni bir öğe ekleyebilirsiniz.
Başarı Durumu Döndürme
CREATE işlemiyle veritabanına yeni bir kayıt ekledikten sonra, işlemin başarı durumunu döndürmeniz gerekiyor. Bunun için C# programlama dilinde boolean tipinde bir değişken kullanabilirsiniz. İşlem başarılı olduğunda değişken true, başarısız olduğunda false değerini alacaktır. Bu şekilde, işlem sonucunu ve yapılan hata düzeltmelerini takip etmek daha kolay olacaktır.
Bununla birlikte, sadece derleme zamanında değil, çalışma zamanında da başarı durumunu döndürmelisiniz. Bunu yapmanın bir yolu, her CRUD işleminden sonra DDL sorgusu çalıştırmaktır. Bu sorgu, son yürütülen işlemdeki değişiklik sayısını döndürecektir. Eğer değişiklik yapılmadıysa, işlem başarısız olarak kabul edilebilir.
Yapılan İşlem | Değişiklik Sayısı |
INSERT | Eklenen kayıt sayısı |
UPDATE | Güncellenen kayıt sayısı |
DELETE | Silinen kayıt sayısı |
Böylece, kullanıcılara işlemin başarılı olup olmadığı hakkında doğru bir geri bildirim verilir. Ayrıca, hataların takibi daha kolay olur ve gerekli düzeltmeler hızlı bir şekilde yapılabilir.
Hata Yakalama
Kod yazarken hataların kaçınılmaz olduğunu biliyoruz. Ancak, bu hataları yakalamak, uygulamanızın güvenilirliğini sağlamak için son derece önemlidir. Try-catch blokları, hata yakalamak için kullanılan en yaygın yöntemdir. Kodunuzda bir hata olduğunda, try bloğu içindeki kodu denersiniz ve bir hata fırlatılırsa, catch bloğu bu hatayı yakalar.
Birçok dilde olduğu gibi, Unity de C#'a dayalı bir dil olduğundan, kodunuzu yazarken try-catch bloklarına aşina olmanız gerekiyor. Hata yakalamak için basit bir örnek; veritabanına yeni bir kayıt eklerken, ekleme işlemi tamamlanamazsa, hata fırlatılacaktır.
Kod | Açıklama |
---|---|
try { connection = new SQLiteConnection(dbPath, SQLiteOpenFlags.ReadWrite | SQLiteOpenFlags.Create); command = connection.CreateCommand(); command.CommandType = CommandType.Text; command.CommandText = "INSERT INTO Users (Username, Password) VALUES (@Username, @Password)"; command.Parameters.Add(new SQLiteParameter("@Username", "johnsmith")); command.Parameters.Add(new SQLiteParameter("@Password", "password123")); command.ExecuteNonQuery(); } catch (SQLiteException e) { Debug.Log("An error occurred: " + e.Message); } | Bu örnekte, bir hata fırlatılması durumunda, Debug.Log, hatanın yer aldığı Unity konsolunda bir mesaj gönderecektir. |
Bu örnek, hata yakalamada farklı yöntemlerin kullanılabileceğini gösterir, ancak try-catch kullanmak, hatayı yakalamak için kolay ve doğru bir yoldur.
Kayıt Güncelleme
Veritabanında bulunan verilerin güncellenmesi, verilerin doğru ve güncel tutulabilmesi açısından oldukça önemlidir. Bu nedenle, SQLite veritabanında bulunan kayıtları güncellemek için öncelikle Unity’de SQLite asset paketini kullanarak bir veritabanı oluşturmanız gerekmektedir.
Güncelleme işlemi için ilk adım, kaydın güncelleneceği tablonun seçilmesidir. Daha sonra ise, WHERE kullanarak güncellenecek kaydın seçilmesi ve SET ile de güncellenecek alanların belirlenmesi gerekmektedir. Bunun için aşağıdaki örnek kodları kullanabilirsiniz:
Alan Adı | Değer |
---|---|
firstName | “John” |
lastName | “Doe” |
“johndoe@email.com” |
Bu kodlar sayesinde, kaydın firstname, lastname ve email alanları güncellenecektir. Kaydı güncellemek için kullanabileceğiniz örnek kodlar ise şu şekildedir:
UPDATE kayıt_adi SET firstName = “John”, lastName = “Doe”, email = “johndoe@email.com” WHERE id = 1
UPDATE kayıt_adi SET firstName = “Jane”, lastName = “Doe”, email = “janedoe@email.com” WHERE id = 2
Yukarıdaki kodlar, SQLite veritabanında bulunan kayıtların güncellenmesine örnek olarak verilmiştir. Siz de bu kodları kullanarak kendi veritabanınızda bulunan kayıtları güncelleyebilirsiniz.
Kayıt Silme
Unity kullanarak SQLite veritabanından kayıt silme işlemi oldukça basittir. SQLite veritabanından bir kaydı silmek için hazır olan Unity metodunu kullanabilirsiniz. Veri silme işlemi yalnızca tek bir kaydı silebilir, o yüzden bir filtre veya koşul belirtmek gerekir.
Silme işlemi yaparken, silinecek kaydın belirtildiği tabloya ve koşula göre WHERE cümlesi kullanılmalıdır. Ayrıca, SQLiteCommand nesnesinin ExecuteNonQuery() yöntemini kullanarak sorgunun çalıştırılması gerekir.
Aşağıdaki örnek kodlar SQLite veritabanından belirtilen tablodan, belirtilen koşul ile bir kaydı silecektir:
using UnityEngine;using System.Data;using Mono.Data.Sqlite;public class VeritabaniSil : MonoBehaviour{ private string connectionString; private IDbConnection dbConnection; private IDbCommand dbCommand; private IDataReader dbReader; void Start() { connectionString = "URI=file:" + Application.dataPath + "/Database/MyDatabase.db"; dbConnection = new SqliteConnection(connectionString); dbConnection.Open(); dbCommand = dbConnection.CreateCommand(); // Silme işlemi string sqlQuery = "DELETE FROM öğrenci WHERE id = 3"; // Silinecek öğrenci kaydının id'si 3 dbCommand.CommandText = sqlQuery; dbCommand.ExecuteNonQuery(); dbCommand.Dispose(); dbCommand = null; dbConnection.Close(); dbConnection = null; }}
Yukarıdaki örnek kodda, "öğrenci" tablosundan id'si 3 olan öğrenciyi siliyoruz. Bu koşulu değiştirerek farklı kayıtları silebilirsiniz.
Silme işlemi tamamlandığında, bu yalnızca kaydı veritabanından siler. Eğer verinin geri yüklenmesi gerekiyorsa, önceden yedeklenmiş bir dosyadan geri yüklemek gerekir.
READ İşlemi
READ işlemi, veritabanından verileri okuma işlemidir. Unity ile veritabanı entegrasyonunda, SQLite gibi bir veritabanı kullanılabilmektedir. JOIN sorgusu, birleştirme işlemi anlamına gelmektedir. Özellikle birden fazla tablo kullanıldığında, bu tablolar arasındaki verilerin birleştirilmesi için kullanılan bir sorgu türüdür.
Unity’de SQLite ile yapılacak olan bir JOIN sorgusunun kullanımı için örnek bir öğretici hazırlanmıştır. Bu öğreticide, bir öğrenci ve bir öğretmen tablosunun birleştirilmesine yönelik bir JOIN sorgusu açıklanmıştır. Öğrenci ve öğretmen tabloları arasındaki “id” sütunu birleştirilerek, öğrenci ve öğretmen bilgileri tek bir tabloda görüntülenebilir hale getirilmiştir.
Öğrenci Tablosu | Öğretmen Tablosu | Birleştirilmiş Tablo |
---|---|---|
1, Ayşe | 1, Ahmet | 1, Ayşe, Ahmet |
2, Ali | 2, Mehmet | 2, Ali, Mehmet |
Yukarıdaki tabloda, öğrenci tablosu ve öğretmen tablosu verileri bir araya getirilerek birleştirilmiş tablo oluşturulmuştur. Bu tabloda öğrenci ve öğretmen verileri id sütunu aracılığıyla birbirine bağlanmıştır. Bu örnek öğretici, SQLite veritabanları için hazırlanmıştır ancak JOIN sorguları, diğer veritabanları için de geçerlidir.
UPDATE İşlemi
Veritabanında güncelleme yapmak, genellikle bir var olan kaydın yalnızca birkaç bilgisini değiştirmek amacıyla kullanılan bir işlemdir. SQLite’da, bir tabloyu güncellemek için kullanılan temel kodu size sunuyoruz:
UPDATE | tablo_adı | SET | sütun_adı1 = değer1 | WHERE | sütun_adı2 = değer2 |
---|---|---|---|---|---|
UPDATE | ogrenciler | SET | notu = 80 | WHERE | ID = 1 |
Yukarıdaki kod, 'ogrenciler' adlı tablodaki 'ID' sütunu '1' olan öğrencinin notunu '80' olarak günceller.
Bir tablonun birden çok yönünü güncellemeniz gerekiyorsa, 'SET' kelimesinden sonra virgülle ayrılmış bir liste sağlayın:
UPDATE | tablo_adı | SET | sütun_adı1 = değer1, | sütun_adı2 = değer2 | WHERE | sütun_adı3 = değer3 |
---|---|---|---|---|---|---|
UPDATE | ogrenciler | SET | notu = 80, | adı = "Ali" | WHERE | ID = 1 |
Aşağıdaki kod ise 'ogrenciler' adlı tablodaki 'ID' sütunu '1' olan öğrencinin 'notu' sütununu '80' olarak ve 'adı' sütununu 'Ali' olarak günceller.
Gördüğünüz gibi, bir tablodaki verileri güncellemek için SQLite’ı oldukça basit bir biçimde kullanabilirsiniz. Umarız siz de veritabanı işlemlerini yaparken SQLite’ı kullanarak zaman ve çaba tasarrufu sağlarsınız.
DELETE İşlemi
Veritabanından bir kaydı silmek için SQLite’de DELETE işlemi kullanılır. Bu işlem, kaydı silmek istediğiniz tabloya ve hangi kaydı silmek istediğinize bağlı olarak seçici kullanarak gerçekleştirilir.
Öncelikle, silmek istediğiniz tablo seçilmelidir:
Komut | Açıklama |
---|---|
DELETE FROM tablo_adı | Belirtilen tablodan tüm kayıtları siler. |
DELETE FROM tablo_adı WHERE şart | Belirtilen tablodan, belirli bir şarta uyan kayıtları siler. |
Silme işlemi gerçekleştirildiğinde, işlemin başarısı, etkilenen satırların sayısı üzerinden kontrol edilebilir. Bu bilgi, SQLiteCommand sınıfının ExecuteNonQuery metodu tarafından döndürülür.
Aşağıdaki örnek kodlar, SQLite veritabanından bir kaydı nasıl silebileceğinizi gösterir:
string sql = "DELETE FROM oyuncular WHERE ad='John' AND soyad='Doe'";using (SQLiteCommand komut = new SQLiteCommand(sql, baglanti)){ int etkilenenSatirlar = komut.ExecuteNonQuery(); if(etkilenenSatirlar > 0) { Console.WriteLine("Kayıt silindi."); } else { Console.WriteLine("Kayıt bulunamadı."); }}
Bu kod, 'oyuncular' tablosunda adı 'John' ve soyadı 'Doe' olan kaydı siler. Etkilenen satırların sayısı 0'dan büyükse, kayıt başarıyla silinmiştir.
Eğer kodunuzda hata meydana gelirse, try-catch bloklarını kullanmanız önemlidir. Bu bloklar, kodunuzun hatasız bir şekilde çalışmasını sağlar ve hataları işler.
Yukarıdaki örnek kod, kaydı silme işleminin başarısını kontrol eder ve komutta hata oluşursa bunu yakalar. Böylece, olası bir hata durumunda, kodunuz arka planda sorunsuz bir şekilde çalışmaya devam eder.
Unity’de Veritabanı Bağlantısı Nasıl Kullanılır?
Unity kullanarak veritabanı bağlantısı kurmak oldukça kolaydır. İlk adım, Unity Asset Store’dan bir SQLite paketi indirmek olacaktır. Bu paket, projenizde SQLite veritabanı kullanmanıza olanak tanır ve birçok özellik sunar.
SQLite asset paketi, veritabanınıza erişmek için bir API ve birkaç örnek kod içerir. Ayrıca, bu paketin kullanımı oldukça basit ve anlaşılırdır. Öncelikle, projenizin Assets klasörüne SQLite veritabanı dosyanızı ekleyin ve sonrasında dosyanın “Build Type” özelliğini “SQLite Database” olarak belirleyin.
SQLite paketi, Unity’de veritabanı işlemleri için birçok özellik sunar. Bu özelliklerden bazıları şunlardır:
- Veritabanı oluşturma,
- Tablo oluşturma,
- Veri ekleme,
- Veri güncelleme,
- Veri silme,
- Tablo aramaları.
Unity kullanarak veritabanı işlemleri yaparken, SQLite’in özelliklerinin yanı sıra, Unity Asset Store’da bulunan diğer paketleri de kullanabilirsiniz. Bu paketler, Unity için özel olarak tasarlanmış bazı veri tipleri ve arayüzler sunar.
Özetle, Unity kullanarak kolayca veritabanı bağlantısı yapabilir ve SQLite asset paketi kullanarak veritabanınızda CRUD işlemlerini rahatlıkla gerçekleştirebilirsiniz. Bu sayede verilerinizi kolayca yönetebilir ve uygulamanızın performansını artırabilirsiniz.