Sequelize Kullanarak Node.js ile MySQL Veritabanı İşlemleri Yapın

Sequelize Kullanarak Node.js ile MySQL Veritabanı İşlemleri Yapın

Nodejs ve MySQL birleşimi, web uygulama geliştirme dünyasında sıkça kullanılan bir teknolojidir Sequelize, bir ORM kütüphanesi olarak Nodejs uygulamalarının SQL veritabanlarına hem hızlı hem de güvenli bir şekilde erişmesine olanak sağlar Bu kütüphane, geleneksel SQL sorgularını yazmak yerine, JavaScript kodu kullanarak veri tabanı işlemlerini gerçekleştirir Sequelize ile Nodejs ile SQL veri tabanlarına kolayca erişebilirsiniz, veri tabanı işlemlerinizi düzenleyebilirsiniz ve kod bakımınızı kolaylaştırabilirsiniz Sequelize kullanarak veritabanı kayıtlarını yönetebilmek için modeller oluşturmak ve onları senkronize etmek gerekmektedir

Sequelize Kullanarak Node.js ile MySQL Veritabanı İşlemleri Yapın

Node.js ve MySQL birleşimi, web uygulama geliştirme dünyasında sıkça kullanılan bir teknolojidir. Bu makalede, Node.js'te MySQL veritabanına erişmek için Sequelize kütüphanesi kullanılarak yapılacak adımlar açıklanmaktadır.

Sequelize, bir ORM kütüphanesi olarak Node.js uygulamalarının SQL veritabanlarına hem hızlı hem de güvenli bir şekilde erişmesine olanak sağlar. Sequelize, SQL sorgularını otomatik olarak oluşturarak basit ve karmaşık CRUD işlemlerini kolaylıkla yapabilmenizi sağlar. Veritabanı yönetiminde bu kütüphane genellikle tercih edilen bir seçenek haline gelir.


Sequelize Nedir?

=

Sequelize, Node.js uygulamalarının SQL veritabanlarına erişmesine izin veren bir ORM (Object-Relational Mapping) kütüphanesidir. Bu kütüphane, basit ve karmaşık CRUD işlemlerini gerçekleştirmek için SQL sorgularını otomatik olarak oluşturur. Sequelize, geleneksel SQL sorgularını yazmak yerine, JavaScript kodu kullanarak veri tabanı işlemlerini gerçekleştirir. Bu, kod yazmayı ve bakımını daha kolay hale getirir ve hataları azaltır. Ayrıca, ORM kullanmanın bir diğer önemli avantajı, veri tabanına yapılan değişiklikleri izlemenize ve geri almanıza izin vermesidir.

Sequelize, birçok farklı veri tabanı sistemiyle uyumlu çalışabilir. Bunlar arasında MySQL, PostgreSQL, SQLite, ve MSSQL bulunur. Ayrıca, sequelize kütüphanesinin birden fazla sorgu denetleyicisi vardır ve kullanıcıların ihtiyaçlarına göre seçebilecekleri farklı sorgu dil seçenekleri sunar. Böylece, veri tabanı işlemlerini optimize edebilir ve performansı artırabilirsiniz. Sonuç olarak, Sequelize kullanarak Node.js ile SQL veri tabanlarına kolayca erişebilirsiniz, veri tabanı işlemlerinizi düzenleyebilirsiniz ve kod bakımınızı kolaylaştırabilirsiniz.


Node.js ve MySQL İle Veritabanı Bağlantısı

Node.js, web uygulama geliştirirken oldukça yaygın bir uygulama alanıdır ve veritabanına erişmek de sıkça kullanılır. Veritabanına erişebilmek için öncelikle MySQL veritabanı sunucusuna bağlanmanız gerekiyor. Bunun için MySQL NPM paketini kullanmanız gerekiyor.

Bağlantı işlemi oldukça basittir. İlk olarak, MySQL paketini yükleyin ve sürümünü kurun. Daha sonra, MySQL paketini require() yöntemi ile projenize dahil edin ve `createConnection()` yöntemini kullanarak veritabanına bağlantı sağlayın. Yönteme veritabanı adı, kullanıcı adı, şifre ve diğer gerekli bilgileri parametre olarak vermeniz gerekiyor.

Örneğin;

const mysql = require('mysql');const connection = mysql.createConnection({  host     : 'localhost',  user     : 'kullanici',  password : 'sifre',  database : 'veritabani_adi'});connection.connect((err) => {  if (err) {    console.error('Hata:' + err.stack);    return;  }  console.log('MySQL veritabanına bağlanıldı.')});

Bu örnekte, localhost sunucusunda veritabanına bağlanıyoruz ve `kullanici` adı altında giriş yapıyoruz. Ayrıca, veritabanına erişmek için `sifre` kullanıyoruz. Bunun yanı sıra, veritabanı adını ise `veritabani_adi` olarak belirtiyoruz.

Bağlantı işlemi başarılı olursa, konsolda `MySQL veritabanına bağlanıldı.` mesajını görürsünüz. Bu adımları takip ederek, Node.js uygulamanızda MySQL veritabanına erişebilirsiniz.


Sequelize Modelleri Oluşturma

Sequelize, veritabanı kayıtlarını yönetebilmek için tabloları modellere dönüştürür. Bu modele, veritabanındaki her öğenin bir karşılığı vardır. Bu nedenle, modelleri doğru oluşturmak, veritabanındaki bilgileri doğru bir şekilde yönetmenizi sağlar.

Model oluşturmak için, Sequelize'de `sequelize.define()` fonksiyonunu kullanmanız gerekiyor. Bu fonksiyon, tablonun adı ve özelliklerini kabul eder. Özellikler, gerekli sütun adları ve veri tiplerini belirtir.

Ayrıca, modelleri senkronize ederek, Sequelize ve veritabanındaki modelin aynı olmasını sağlamanız gerekiyor. Model senkronizasyonunu gerçekleştirmek için, `sequelize.sync()` fonksiyonunu kullanarak mevcut tabloları veritabanına ekleyebilirsiniz.

Syntax Açıklama
sequelize.define('modelName', { attributes }, { options }) Veritabanındaki tablolar için bir model oluşturur
sequelize.sync() Model senkronizasyonunu gerçekleştirir

Modeller Sequelize'de oldukça önemlidir ve veritabanındaki bilgilerin düzgün bir şekilde kontrol edilmesini sağlar. Yeni bir tablo oluşturmak veya eski bir tabloyu yönetmek için, Sequelize modelleri oluşturmak oldukça kolaydır.


Modelleri Tanımlama

=

Veritabanına erişmek için oluşturduğunuz bağlantı ile birlikte modele veritabanında bir tabloya karşılık gelmesi için izin vermelisiniz. Bu işlem veritabanındaki tablo yapısının modele aktarılmasını sağlar. Bu işlemi yapmak için Sequelize kütüphanesi `sequelize.define()` fonksiyonunu kullanır. Bu fonksiyon, üç adet parametre alır. İlk olarak, tablonun adı, ikinci olarak, sütun adları ve üçüncü olarak, sütunların veri tipleri tanımlanmalıdır. Bu işlemi yaparken kullanılan SQL kodları otomatik olarak oluşturulur. Bu sayede, SQL sorgularını el ile yazma ihtiyacı ortadan kalkar. Bu yöntemle, modelleri tanımlamak çoğunlukla diğer veritabanı bağlantı kütüphanelerine göre daha kolaydır.


Modelleri Senkronize Etme

Veritabanı tablolarının senkronizasyonu, Sequelize ile çalışan projelerde oldukça önemlidir. Bu işlem, mevcut tabloların veritabanına eklenmesini sağlar ve modelde yapılan herhangi bir değişikliği yansıtır. Bu nedenle, tabloların senkronize edilmesi, model tanımlarının yapıldıktan hemen sonra gerçekleştirilmelidir.

`sequelize.sync()` fonksiyonu, veritabanının güncellenmesine neden olacak herhangi bir değişikliği algılar ve tabloları bu değişiklikleri yansıtacak şekilde günceller. Ayrıca, tablo yoksa oluşturur ve varsa değişiklikleri uygular.

Birçok uygulama, bu senkronizasyon işlemini otomatik olarak gerçekleştirmektedir. Ancak bazı durumlarda manuel olarak yapmak gerekebilir. Tablo senkronizasyonu manuel olarak yapmak istiyorsanız, `sequelize.sync()` fonksiyonunu kullanarak tabloları senkronize edebilirsiniz.

Bu işlemi gerçekleştirirken, `force` parametresini kullanarak tabloların yeniden oluşturulması ve verilerin silinmesi gibi işlemleri yapabilirsiniz. Ancak bu parametrenin kullanımı daha dikkatli yapılmalıdır, çünkü mevcut verilerin silinmesine neden olabilir.


Sequelize İle CRUD İşlemleri Gerçekleştirme

Sequelize ile CRUD işlemleri yapmak oldukça basittir. Bu işlemleri gerçekleştirmek için Sequelize'de bulunan `create()`, `update()` ve `destroy()` yöntemlerini kullanabilirsiniz.

Veritabanına yeni bir kayıt eklemek için ilk olarak ilgili modelin `create()` yöntemini kullanmanız gerekiyor. Bu yöntem, oluşturulacak kaydın verilerini kabul eder. Örneğin:

Kod Açıklama
const User = sequelize.define('user', {
  firstName: {
    type: Sequelize.STRING
  },
  lastName: {
    type: Sequelize.STRING
  },
  email: {
    type: Sequelize.STRING
  },
  age: {
    type: Sequelize.INTEGER
  }
});
Bir User modeli tanımlanması
User.create({
  firstName: 'John',
  lastName: 'Doe',
  email: 'johndoe@email.com',
  age: 25
})
Bir User kaydı oluşturulması

Var olan bir kaydı güncellemek için, `update()` yöntemini kullanmanız gerekiyor. Bu yöntem, güncellenen verileri kabul eder. Örneğin:

Kod Açıklama
User.update({
  age: 26
}, {
  where: {
    firstName: 'John'
  }
})
John isimli kullanıcının yaşının 26 olarak güncellenmesi

Bir kaydı silmek için, `destroy()` yöntemini kullanmanız gerekiyor. Bu yöntem, silinecek kaydın birincil anahtarını belirtir. Örneğin:

Kod Açıklama
User.destroy({
  where: {
    firstName: 'John'
  }
})
John isimli kullanıcının veritabanından silinmesi

Sequelize ile CRUD işlemleri yapmak oldukça basittir ve bu işlemlerin otomatik olarak SQL sorgularına dönüştürülmesi sayesinde veritabanına erişmek daha da kolaylaşır.


Kayıt Oluşturma

Veritabanına kayıt eklemek için öncelikle oluşturduğunuz modeli kullanmanız gerekiyor. Modelin `create()` yöntemi sayesinde belirlediğiniz tabloya yeni bir kayıt ekleyebilirsiniz.

`create()` yöntemi, yeni bir kaydın veritabanına eklenmesi için gerekli olan tüm verileri kabul eder. Bu veriler, bir nesne olarak sağlanmalıdır. Nesne, modele tanımladığınız sütun adlarına karşılık verilmesi gereken verileri içermelidir.

Örneğin, bir `users` tablosunda yeni bir kayıt eklemek isterseniz, modeliniz şu şekilde tanımlanabilir:

const sequelize = require('sequelize');const connection = new sequelize('database_name', 'username', 'password', {    host: 'localhost',    dialect: 'mysql'});const User = connection.define('users', {    firstName: sequelize.STRING,    lastName: sequelize.STRING,    email: {        type: sequelize.STRING,        unique: true    }});User.create({    firstName: 'John',    lastName: 'Doe',    email: 'johndoe@example.com'}).then((user) => {    console.log(user);}).catch((error) => {    console.log(error);});

Yukarıdaki örnekte, `User` modeline yeni bir kayıt eklemek için `create()` yöntemi kullanılmıştır. Bu yöntem, firstName, lastName ve email sütunlarındaki değerlere `John`, `Doe` ve `johndoe@example.com` değerlerini atar.

`create()` yöntemi modelin geri döndürdüğü Promise nesnesi ile sonuçlanır. Promise nesnesi, eklenen kaydın bir kopyasıdır ve burada kaydı gerekli işlem için kullanabilirsiniz.


Kayıt Güncelleme

=

Var olan bir kaydı güncellemek çoğu zaman gereklidir. Sequelize kütüphanesi ile bir kaydı güncellemek oldukça kolaydır. `update()` yöntemiyle güncellenecek olan kaydın verileri belirtilir ve kaydın birincil anahtarında belirtilen öğe alınır. Bu yöntem sayesinde, verilerinizi güncellemeniz yalnızca birkaç kod satırı kadar basittir.

Bu yöntemi kullanarak, güncellemek istediğiniz kaydın modeline erişebilirsiniz. Daha sonra, `update()` yöntemini çağırarak güncellenmek istediğiniz verileri belirtin. Bu yöntem ayrıca, güncellenen verileri kabul eder. İşlem tamamlandığında, güncellenen veriler otomatik olarak veritabanına kaydedilir.

Birincil anahtarı belirleyerek verileri güncellemeniz, veritabanında tutarlılığı korumak ve istenmeyen sonuçları önlemek için önemlidir. Sequelize, modeldeki birincil anahtar öğesine göre güncelleme işlemini otomatik olarak yapar. Bu nedenle, `update()` yöntemini kullanmadan önce modelinizde birincil anahtar öğesinin doğru şekilde tanımlandığından emin olunuz.


Kayıt Silme

Bir kaydı veritabanından kalıcı olarak silmek için `destroy()` yöntemini kullanabilirsiniz. Bu yöntem, silinecek kaydın birincil anahtarını belirtmeniz gerektirir. Örneğin, bir kullanıcı tablosundan bir kullanıcının kaydını silmek isterseniz, o kullanıcının birincil anahtarını `destroy()` yöntemi ile belirtmeniz gerekir.

Ayrıca, `destroy()` yöntemi silinen kaydın sayısını döndürür. Eğer belirtilen birincil anahtara sahip kayıt yoksa, gösterilen etkilenen satır sayısı sıfır olacaktır.

Aşağıdaki örnek, kullanıcı adı "John" olan bir kullanıcının kaydını `users` tablosundan siler:

const { User } = require('./models');User.destroy({  where: {    username: 'John'  }}).then(() => {  console.log('Kullanıcı kaydı silindi.');});

Bu örnekte, `User` modelinde bir kayıt silmek için `destroy()` yöntemi kullanılıyor. `where` parametresi, hangi kaydın silineceğini belirtmek için kullanılır. Bu örnekte, `username` sütununun "John" değerine sahip olan kaydı silmek istiyoruz. `then()` yöntemi, sorgunun tamamlanmasını beklemek için kullanılır. Eğer işlem başarılı olursa, konsolda "Kullanıcı kaydı silindi." mesajı görüntülenir.