Drift
์ง์ sql ์ฌ์ฉํ์ง ์๊ณ ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ด๋ฆฌํ ์ ์๋ค.
ORM(Object Relational Mapping, ORM) ์ ์ฉ๋์ด์๋ ํ๋ฌ๊ทธ์ธ
ํ ์ด๋ธ์ ํด๋์ค๋ก ํํํ๊ณ ์ฟผ๋ฆฌ๋ฅผ ๋คํธ ์ธ์ด๋ก ํํํ๋ฉด ๋๋ฆฌํํธ๊ฐ ์๋์ผ๋ก ํ ์ด๋ธ๊ณผ ์ฟผ๋ฆฌ๋ฅผ ์์ฑํด์ค.
1. ํ ์ด๋ธ ์์ฑ
SQL
create table student(
id INTEGER PRIMARY KEY AUTOINCREMENT,
name VARCHAR NOT NULL,
age INT DEFAULT 14,
score INT NOT NULL
)
Drift
class Student extends Table{
IntColumn get id => integer.autoIncrement()();
TextColumn get name => text()();
IntColumn get age => integer.withDefault(const Constant(14))();
IntColumn get score => integer().nullable()();
}
2. Insert
SQL
INSERT INTO student (name, age, score)
values ('leenoki', 15, 500);
Drift
Futrue<int> addStudent(){
return into(student).insert(
Student(
name: Value('leenoki'),
age: Value(15),
score: Value(500),
),
);
}
3. select
SQL
SELECT * FROM student where id = 1;
Drift
Future<Student> getStudent(){
return (select(student)..where((t)=> t.id.equals(1))).getSingle();
}
4. update
SQL
update student set score = 455 where id = 1;
Drift
Future<int> updateStudent(){
return(
update(student)..where( (t) => t.id.equals(1),))
.write(StudentCompanion(score: Value(455),),
);
}
5. Delete
SQL
delete from student where id = 1;
Drift
Future<int> deleteStudent(){
return( delete(student)..where( (t)=> t.id.equals(1))).go();
}
๋๊ธ