SQLite-net 알고 계신가요?

SQLite-net 이라는 오픈소스를 라이브러리를 알게 되었습니다.

SQLite-net은 오픈소스로 사용할 수 있는 최소 라이브러리입니다.데이터를 저장하는 NET, .NET Core 및 Mono 응용 프로그램SQLite 3 데이터베이스그것은 처음에 Xamarin과 함께 작동하도록 설계되었다.iOS,이후 모든 플랫폼(Xamarin.*, .NET, UWP, Azure 등)에서 작업할 수 있게 되었습니다.

  • ORM 제공
  • SQL 작성 제공

설치방법


:exclamation:아래 내용은 맨 위 링크에 있는 링크에서 가져온 예제코드입니다.

테이블 생성

public class TodoItemDatabase
{
    SQLiteAsyncConnection Database;

    public TodoItemDatabase()
    {
    }

    async Task Init()
    {
        if (Database is not null)
            return;

        Database = new SQLiteAsyncConnection(Constants.DatabasePath, Constants.Flags);
        var result = await Database.CreateTableAsync<TodoItem>();
    }
    ...
}

CRUD

public class TodoItemDatabase
{
    ...
    public async Task<List<TodoItem>> GetItemsAsync()
    {
        await Init();
        return await Database.Table<TodoItem>().ToListAsync();
    }

    public async Task<List<TodoItem>> GetItemsNotDoneAsync()
    {
        await Init();
        return await Database.Table<TodoItem>().Where(t => t.Done).ToListAsync();

        // SQL queries are also possible
        //return await Database.QueryAsync<TodoItem>("SELECT * FROM [TodoItem] WHERE [Done] = 0");
    }

    public async Task<TodoItem> GetItemAsync(int id)
    {
        await Init();
        return await Database.Table<TodoItem>().Where(i => i.ID == id).FirstOrDefaultAsync();
    }

    public async Task<int> SaveItemAsync(TodoItem item)
    {
        await Init();
        if (item.ID != 0)
            return await Database.UpdateAsync(item);
        else
            return await Database.InsertAsync(item);
    }

    public async Task<int> DeleteItemAsync(TodoItem item)
    {
        await Init();
        return await Database.DeleteAsync(item);
    }
}

그 외 자세한 내용은 github의 Readme를 통해 확인해보시면 될 것 같습니다.

6개의 좋아요

@이광석 오홋 좋은 내용 감사합니다!!! 몰랐어유!

2개의 좋아요

디비 성능의 중요도 높지 않는 프로그램에선 유용할 것 같아요 :slight_smile:

1개의 좋아요

SQLite가 로컬DB 중에선 성능 좋고 가벼운 걸로 알고 있는데 혹시 추천할만한 게 있을까요?

2개의 좋아요

제가 현재 지식 수준에서는 sqlite 외에도
ms access가 하나 있던걸로 기억 합니다.

어쩌다 그냥 유지보수 하는 수준으로 살짝건들기만해서 성능이고 장단점이고는 파악하지 못했던 거 같습니다

2개의 좋아요

“최소 라이브러리” 라는게 이제야 눈에 들어오는군요;;;

1개의 좋아요

LiteDB :: A .NET embedded NoSQL database

테스트만 해봤는데 내가 로컬디비 써야할 일이 있으면 이거 써야겠다라고 생각만 했어요

2개의 좋아요