SQLKATA QueryBuilder Open Source 분석

Cherry Min·2022년 5월 3일
0
post-thumbnail

OPEN SOURCE SQL QUERY BUILDER SQLKATA 분석

🙋이 시리즈에 대하여...

안녕하세요! 제 글을 읽으실 여러분들께 인사드립니다.😊
우선, 이 시리즈는 오픈 소스인 sqlkata 라는 쿼리 빌더를 분석한 내용들을 정리하여 끄적이는 시리즈 입니다..!
sql generator 과제를 수행하게 되어 레퍼런스 모델을 분석하는 과정을 기록하기로 한 것이므로 ❗저의 주관적인 생각이 많이 포함될 수 있고,기록성으로 남기는 문서에 가깝다는 것을 인지해 주시기 바랍니다 ❗

과제를 진행하기 앞서 레퍼런트 코드 Sql Kata 를 분석하여 참고하기로 하였습니다.

레퍼런스 모델 SqlKata 이란 ?

SqlKata는 c#으로 작성된 sql query builder 입니다.
중첩 조건, 서브쿼리에서 선택, 서브쿼리 필터링, 조건문 등과 같은 복잡한 쿼리를 지원합니다.
SqlServer, MySql, PostgreSql와 같은 DBMS의 컴파일러를 지원한다고 합니다.

SqlKata Github
SqlKata Official

분석을 시작하기 앞서, 기존에 존재하는 sqlkata pacakage 를
프로젝트에서 설치 후 사용해보기로 하였습니다.
방법은 아래와 같습니다.

SqlKata 사용해보기

step 1. 각 Database Provider에 필요한 Driver를 설치

mysql db을 기준으로 과제 진행중에 있어 mysql 기준으로 작성하겠습니다.
아래와 같이 package 를 설치합니다.

dotnet add package MySql.Data

step 2. QueryFactory 인스턴스 생성

mysql 데이터베이스의 connection string을 작성하고,
mysql 컴파일러와, QueryFactory의 인스턴스를 생성합니다.

var connection = new MySqlConnection(
    "Host=localhost;Port=3306;User=user;Password=secret;Database=Users;SslMode=None"
);

var db = new QueryFactory(connection, new MySqlCompiler());

// From now on, you can use the `db.Query()` method
var users = db.Query().From("Users").Get();

// or more simpler
var users = db.Query("Users").Get();

step 3. SQL CRUD Query 작성

sqlKata의 공식 문서를 참고하여, 편리하게 CRUD 쿼리를 작성할 수 있습니다.
아래는 SELECT 문을 작성하는 예제 입니다.

var db = new QueryFactory(connection, new SqlServerCompiler());

IEnumerable<dynamic> users = db.Query("Users").Get();

이상으로 오늘의 분석 기록을 마치겠습니다!

profile
Hello, I'm Cherry Min (Park Min-ji), a developer who builds MES solutions in the field.

0개의 댓글