2025년 4월 18일 금요일

5-3-3강: SQLite 사용하기

 SQLite 를 사용하는 간단한 예제

/* SQLite 의존성 추가
[dependencies]
sqlite = "0.30" */
use sqlite;
use sqlite::State;

fn main() {
    // 메모리에 sqlite db 생성
    let connection = sqlite::open(":memory:").unwrap();

    // users 테이블 만들고, 2개 데이터 삽입
    let query = "
        CREATE TABLE users (name TEXT, age INTEGER);
        INSERT INTO users VALUES ('루나', 3);
        INSERT INTO users VALUES ('러스트', 13);
    ";
    // 테이블 생성 쿼리를 실행
    connection.execute(query).unwrap();

    // ?는 나중에 이 자리에 값을 넣을꺼야 표시
    // SQL 인젝션을 막기 위해 사용
    let query = "SELECT * FROM users WHERE age > ?";
   
    // 쿼리를 실행
    let mut statement = connection.prepare(query).unwrap();

    // (1, 5) → 1은 첫 번째 파라미터 위치 (?)를 의미
    // 5는 ?에 들어갈 값
    statement.bind((1, 5)).unwrap(); // age > 5
   
    // 테이블의 데이터를 조회
    while let Ok(State::Row) = statement.next() {
        println!("name = {}", statement.read::<String, _>("name").unwrap());
        println!("age = {}", statement.read::<i64, _>("age").unwrap());
    }
}

/*실행결과
name = 러스트
age = 13 */

댓글 없음:

댓글 쓰기