#postgresql #parsql #için #sql #küfedir #sağlayan #entegrasyonunu

parsql-postgres

Parsql için postgresql entegrasyonunu sağlayan küfedir

3 unstable releases

new 0.2.0 Jan 18, 2025
0.1.1 Dec 23, 2024
0.1.0 Dec 12, 2024

#1004 in Database interfaces

Download history 135/week @ 2024-12-11 117/week @ 2024-12-18 20/week @ 2024-12-25 8/week @ 2025-01-08

147 downloads per month
Used in parsql

MIT/Apache

13KB
167 lines

parsql-postgres

parsql için postgres entegrasyon küfesidir.

Genel Kullanım Örnekleri

Generic 'insert' Kullanımı

Generic insert işlemini kullanabilmek için struct tanımınıza aşağıdaki gibi derive makrolarını eklemelisiniz.

#[derive(Insertable)]
#[table_name("users")]
pub struct InsertUser {
    pub name: String,
    pub email: String,
    pub state: i16,
}

yukarıdaki gibi bir struct tanımlaması yaptıktan sonra eklemeniz gereken toplam 5 adet bağımlılık söz konusu;

use parsql::{
    core::Insertable,
    macros::{Insertable, SqlParams},
    postgres::SqlParams,
};
use postgres::types::ToSql;

bunlar mevcut küfede bulunan makro, trait ve generic fonksiyonlardan faydalanmanızı sağlayacak.

Sonrasında aşağıdaki gibi bir kullanım ile insert işleminizi gerçekleştirebilirsiniz;

    let insert_usert = InsertUser {
        name: "Ali".to_string(),
        email: "ali@parsql.com".to_string(),
        state: 1,
    };

    let insert_result = insert(&mut conn, insert_usert);

Generic 'get' Kullanımı

Generic 'get' işlemini kullanabilmek için struct tanımınıza aşağıdaki gibi derive makrolarını eklemelisiniz.

#[derive(Queryable, FromRow, SqlParams, Debug)]
#[table_name("users")]
#[where_clause("id = $")]
pub struct GetUser {
    pub id: i64,
    pub name: String,
    pub email: String,
    pub state: i16,
}

impl GetUser {
    pub fn new(id: i64) -> Self {
        Self {
            id,
            name: Default::default(),
            email: Default::default(),
            state: Default::default(),
        }
    }
}

yukarıdaki gibi bir struct tanımlaması yaptıktan sonra eklemeniz gereken toplam 8 adet bağımlılık söz konusu;

use parsql::{
    core::Queryable,
    macros::{FromRow, Queryable, SqlParams},
    postgres::{FromRow, SqlParams},
};
use postgres::{types::ToSql, Row};

bunlar mevcut küfede bulunan makro, trait ve generic fonksiyonlardan faydalanmanızı sağlayacak.

Sonrasında aşağıdaki gibi bir kullanım ile 'get' işleminizi gerçekleştirebilirsiniz;

    let get_user = GetUser::new(24025);
    let get_result = get(&mut client, get_user).await;

Generic 'update' Kullanımı

Generic 'update' işlemini kullanabilmek için struct tanımınıza aşağıdaki gibi derive makrolarını eklemelisiniz.

#[derive(Updateable, UpdateParams)]
#[table_name("users")]
#[update_clause("name, email")]
#[where_clause("id = $")]
pub struct UpdateUser {
    pub id: i64,
    pub name: String,
    pub email: String,
    pub state: i16,
}

yukarıdaki gibi bir struct tanımlaması yaptıktan sonra eklemeniz gereken toplam 5 adet bağımlılık söz konusu;

use parsql::{
    core::Updateable,
    macros::{UpdateParams, Updateable},
    postgres::UpdateParams,
};
use postgres::types::ToSql;

bunlar mevcut küfede bulunan makro, trait ve generic fonksiyonlardan faydalanmanızı sağlayacak.

Sonrasında aşağıdaki gibi bir kullanım ile 'update' işleminizi gerçekleştirebilirsiniz;

    let update_user = UpdateUser {
        id: 24025,
        name: String::from("Ali"),
        email: String::from("ali@gmail.com"),
        state: 2,
    };

    let result = update(&mut db, update_user);

hepsi bu kadar.

Dependencies

~9–20MB
~280K SLoC