Buscar pacotes, repositórios e categorias de apps

Detalhes do pacotev0.22.0

mysql1

Uma biblioteca para conectar e consultar bancos de dados MySQL e MariaDB.

AndroidiOSmacOSWindowsLinux
Downloads em 30 dias
11,5 mil
Curtidas
493
Pontos Pub
160

Instalar pacote

flutter pub add mysql1

Visão geral do pacote

Orientação gerada a partir de informações públicas. Apenas para referência.

O pacote mysql1 é uma biblioteca Dart que permite que aplicativos Flutter se conectem a bancos de dados MySQL e MariaDB e realizem consultas. Ele fornece uma API simples para executar instruções SQL, gerenciar transações e lidar com conexões de banco de dados de forma eficiente. Projetado para uso em múltiplas plataformas, suporta Android, iOS, macOS, Windows e Linux, tornando-o ideal para integração com backends em aplicativos móveis e desktop. A biblioteca é ativamente mantida e construída sobre o protocolo MySQL nativo, garantindo desempenho confiável e compatibilidade com recursos modernos de banco de dados.

Casos de uso

  • Conectando aplicativos Flutter a bancos de dados MySQL/MariaDB
  • Executando consultas SQL dinâmicas em tempo real
  • Gerenciando transações de banco de dados
  • Construindo serviços de back-end para aplicativos móveis
  • Integração com sistemas existentes baseados em MySQL

Principais recursos

  • Suporte multiplataforma (Android, iOS, macOS, Windows, Linux)
  • Suporte para MySQL e MariaDB
  • Pool de conexões eficiente
  • Gerenciamento de transações
  • API compatível com async/await

Indicado para

  • Aplicativos móveis e de desktop que precisam de acesso ao banco de dados
  • Serviços de backend usando MySQL/MariaDB
  • Desenvolvedores construindo aplicativos completos em Flutter
  • Equipes integradas à infraestrutura MySQL existente

Considerações

  • Requer acesso de rede ao servidor de banco de dados
  • Necessita de tratamento adequado de erros para problemas de conexão
  • Pode exigir configuração adicional para SSL/TLS
  • Não adequado para bancos de dados baseados em arquivos locais

README original

Snapshot do README original do repositório-fonte vinculado. Consulte o repositório para o conteúdo mais recente.

mysql1

A MySQL driver for the Dart programming language. Works on Flutter and on the server.

This library aims to provide an easy to use interface to MySQL. mysql1 originated as a fork of the SQLJocky driver.

Usage

Connect to the database

var settings = new ConnectionSettings(
  host: 'localhost', 
  port: 3306,
  user: 'bob',
  password: 'wibble',
  db: 'mydb'
);
var conn = await MySqlConnection.connect(settings);

Execute a query with parameters:

var userId = 1;
var results = await conn.query('select name, email from users where id = ?', [userId]);

Use the results:

for (var row in results) {
  print('Name: ${row[0]}, email: ${row[1]}');
});

Insert some data

var result = await conn.query('insert into users (name, email, age) values (?, ?, ?)', ['Bob', 'bob@bob.com', 25]);

An insert query's results will be empty, but will have an id if there was an auto-increment column in the table:

print("New user's id: ${result.insertId}");

Execute a query with multiple sets of parameters:

var results = await query.queryMulti(
    'insert into users (name, email, age) values (?, ?, ?)',
    [['Bob', 'bob@bob.com', 25],
    ['Bill', 'bill@bill.com', 26],
    ['Joe', 'joe@joe.com', 37]]);

Update some data:

await conn.query(
    'update users set age=? where name=?',
    [26, 'Bob']);

Parameters

Parameters are bound client side. The values are escaped, written into the statement as literals, and the result is sent as a single query - there is no server side prepare/execute/close. This is what mysqlclient does, and so how most MySQL deployments already send their statements.

The reason to do it this way is query planning. A bound value is opaque to the optimizer, so if the leading column of an index is a parameter it takes ref access on that column and never builds a range, and a keyset page can degrade into a scan.

? placeholders inside string literals and inside ` quoted identifiers are left alone. null, int, double, bool, String and DateTime (UTC only, second precision) can be bound, as can Blob and List<int> - both are written as hex literals, so bytes which are not valid in the connection charset survive. Anything else is bound as its toString().

Escaping assumes the connection charset is utf8 or utf8mb4, and that the server is not in NO_BACKSLASH_ESCAPES mode. Both hold for a connection opened by this driver with default settings.

Flutter Web

This package opens a socket to the database. The web platform does not support sockets and so this package does not work on flutter web.

Categorias

Dependências

Lista de dependências 4 itens

Repositório-fonte

Projetos que usam este pacote