본문 바로가기
Dart/Dart Server

[중급] Dart 서버 데이터베이스 연동/ Dart와 관계형 데이터베이스 연결 (PostgreSQL, MySQL 등)

by Maccrey Coding 2024. 9. 11.
반응형

 

 

Dart는 주로 프론트엔드 개발에서 많이 사용되지만, 서버 사이드 개발에서도 강력한 도구가 될 수 있습니다.

이번 블로그에서는 Dart를 사용하여 관계형 데이터베이스(PostgreSQL, MySQL 등)에 연결하고 데이터를 처리하는 방법을 초보자도 쉽게 이해할 수 있도록 설명하겠습니다.

1. Dart에서 데이터베이스와 연결하기

Dart에서는 다양한 패키지를 사용하여 데이터베이스와 연결할 수 있습니다.

PostgreSQL과 MySQL은 가장 많이 사용되는 관계형 데이터베이스 중 하나로, Dart에서 이들 데이터베이스와 연결하는 방법을 살펴보겠습니다.

2. PostgreSQL과 연결하기

PostgreSQL은 강력한 오픈소스 관계형 데이터베이스입니다. Dart에서는 postgres 패키지를 사용하여 PostgreSQL 데이터베이스와 연결할 수 있습니다.

2.1 PostgreSQL 패키지 설치

먼저 pubspec.yaml 파일에 postgres 패키지를 추가합니다.

dependencies:
  postgres: ^2.5.0

터미널에서 pub get 명령어를 실행하여 패키지를 설치합니다.

2.2 PostgreSQL 연결 및 데이터 처리

다음은 PostgreSQL에 연결하고 데이터를 삽입하고 조회하는 간단한 예제입니다.

import 'package:postgres/postgres.dart';

Future<void> main() async {
  // PostgreSQL 데이터베이스 연결
  final connection = PostgreSQLConnection(
    'localhost', // 데이터베이스 서버 주소
    5432,        // 포트 번호
    'my_database', // 데이터베이스 이름
    username: 'my_user',  // 사용자 이름
    password: 'my_password' // 비밀번호
  );

  // 연결
  await connection.open();

  // 테이블 생성
  await connection.query('''
    CREATE TABLE IF NOT EXISTS users (
      id SERIAL PRIMARY KEY,
      name TEXT,
      email TEXT
    )
  ''');

  // 데이터 삽입
  await connection.query(
    'INSERT INTO users (name, email) VALUES (@name, @email)',
    substitutionValues: {
      'name': 'John Doe',
      'email': 'john.doe@example.com'
    }
  );

  // 데이터 조회
  List<List<dynamic>> results = await connection.query('SELECT * FROM users');
  for (final row in results) {
    print('User: ${row[0]}, ${row[1]}, ${row[2]}');
  }

  // 연결 종료
  await connection.close();
}
  • PostgreSQLConnection
    PostgreSQL 데이터베이스와 연결하는 클래스입니다. 서버 주소, 포트 번호, 데이터베이스 이름, 사용자 이름, 비밀번호를 입력합니다.
  • connection.open()
    데이터베이스에 연결합니다.
  • connection.query()
    SQL 쿼리를 실행합니다. 데이터베이스에 테이블을 생성하고 데이터를 삽입하며, 데이터를 조회합니다.
  • connection.close()
    데이터베이스 연결을 종료합니다.

3. MySQL과 연결하기

MySQL은 또 다른 인기 있는 관계형 데이터베이스입니다.

Dart에서는 mysql1 패키지를 사용하여 MySQL 데이터베이스와 연결할 수 있습니다.

3.1 MySQL 패키지 설치

먼저 pubspec.yaml 파일에 mysql1 패키지를 추가합니다.

dependencies:
  mysql1: ^0.18.1

터미널에서 pub get 명령어를 실행하여 패키지를 설치합니다.

3.2 MySQL 연결 및 데이터 처리

다음은 MySQL에 연결하고 데이터를 삽입하고 조회하는 간단한 예제입니다.

import 'package:mysql1/mysql1.dart';

Future<void> main() async {
  // MySQL 데이터베이스 연결
  final settings = ConnectionSettings(
    host: 'localhost', // 데이터베이스 서버 주소
    port: 3306,        // 포트 번호
    user: 'my_user',   // 사용자 이름
    password: 'my_password', // 비밀번호
    db: 'my_database', // 데이터베이스 이름
  );

  final connection = await MySqlConnection.connect(settings);

  // 테이블 생성
  await connection.query('''
    CREATE TABLE IF NOT EXISTS users (
      id INT AUTO_INCREMENT PRIMARY KEY,
      name VARCHAR(255),
      email VARCHAR(255)
    )
  ''');

  // 데이터 삽입
  await connection.query(
    'INSERT INTO users (name, email) VALUES (?, ?)',
    ['Jane Doe', 'jane.doe@example.com']
  );

  // 데이터 조회
  var results = await connection.query('SELECT * FROM users');
  for (var row in results) {
    print('User: ${row[0]}, ${row[1]}, ${row[2]}');
  }

  // 연결 종료
  await connection.close();
}
  • ConnectionSettings: MySQL 데이터베이스와 연결하기 위한 설정을 정의합니다.
  • MySqlConnection.connect(settings): 데이터베이스에 연결합니다.
  • connection.query(): SQL 쿼리를 실행합니다. 데이터베이스에 테이블을 생성하고 데이터를 삽입하며, 데이터를 조회합니다.
  • connection.close(): 데이터베이스 연결을 종료합니다.

Dart에서 관계형 데이터베이스(PostgreSQL, MySQL)와 연결하여 데이터를 처리하는 방법에 대해 알아보았습니다.

PostgreSQL과 MySQL 모두 postgres와 mysql1 패키지를 통해 쉽게 연결할 수 있으며, SQL 쿼리를 사용하여 데이터베이스 작업을 수행할 수 있습니다.

이 방법을 통해 Dart로 강력한 서버 사이드 애플리케이션을 개발할 수 있습니다.

 

이 블로그가 Dart에서 데이터베이스를 연결하고 사용하는 데 도움이 되었기를 바랍니다. 추가적인 질문이나 도움이 필요하시면 언제든지 말씀해 주세요!

 

구독!! 공감과 댓글은 저에게 큰 힘이 됩니다.

Starting Google Play App Distribution! "Tester Share" for Recruiting 20 Testers for a Closed Test.

 

Tester Share [테스터쉐어] - Google Play 앱

Tester Share로 Google Play 앱 등록을 단순화하세요.

play.google.com

 

 

반응형