sistemas de gerenciamento de banco de dados (SGBD), sendo que o que mais se destaca é o MySQL, devido a sua facilidade e natureza aberta. Assim, neste artigo veremos como utilizar o MySQL em uma aplicação C.
O MySQL é um sistema de gerenciamento de banco de dados (SGBD) relacional, open source e gratuito. Atualmente pertencente a Oracle, este banco de dados é amplamente utilizado em pequenas aplicações, além de ser a escolha de grandes empresas, como: NASA, HP, Sony, Nokia, Google, entre outras.
Este sucesso vem da sua facilidade de uso e sua natureza multiplataforma, podendo ser utilizado em qualquer sistema operacional. Por isso foi o banco escolhido para ser demonstrado aqui.
O processo de instalação do banco irá depender do seu sistema operacional. Não importando a plataforma, o instalador dele pode ser baixado em: https://dev.mysql.com/downloads/mysql/. Entretanto recomendo o uso do instalador apenas no Windows.
Caso esteja no MacOS, baixe o banco via Homebrew com o comando abaixo:
brew install mysql
No Linux, em distribuições baseadas no Ubuntu, utilize o comando abaixo:
sudo apt install mysql-server
Já em distribuições baseadas no Red Hat, CentOS, etc, utilize o comando abaixo:
sudo yum install mysql-community-server
No Windows, faça uso do MySQL Installer e selecione a opção Server Only:
Desta forma será instalado apenas o banco de dados.
No MySQL Installer, após a instalação do banco será exibida a tela de configuração dele, nela é importante que a senha do usuário root seja informada:
Salve esta senha porque ela será utilizada posteriormente.
Nas demais plataformas, o usuário é criado sem senha.
Para que a linguagem C consiga se conectar ao banco de dados, ela necessita utilizar as bibliotecas de conexão do banco. No caso do MySQL, existem bibliotecas diferentes para cada sistema operacional.
No caso do Windows, estas bibliotecas são adicionadas junto do servidor, assim, não é necessário que elas sejam baixadas posteriormente. Mas caso queira fazer uso apenas delas, não é necessário instalar o banco de dados completo. No MySQL Installer, você pode optar pela opção Client only:
Que será utilizado o conector do C++, que pode ser utilizado em aplicações C.
No caso do MacOS, a biblioteca de conexão pode ser instalada com o comando abaixo:
brew install mysql-client
No Linux, via apt, utilize o comando:
sudo apt-get install libmysqlclient
E via Yum, utilize o comando:
yum install mysql-community-libs
Com o banco e as bibliotecas de conexão instaladas, podemos configurar a nossa aplicação C.
Dependendo da IDE, a configuração do MySQL pode variar, aqui vou fazer uso do Code::Blocks no Windows. Entretanto, a configuração desta IDE é a mesma nos demais sistemas operacionais.
No Code::Blocks, crie um novo projeto do tipo Console Application:
Com o projeto criado, clique com o botão direito do mouse sobre ele e selecione a opção Build options…:
Na tela apresentada, na aba Search directories, em Compiler, informe o caminho da pasta include do conector ou do servidor (no Windows):
Na imagem acima a pasta não se encontra no caminho padrão, este caminho pode variar de acordo com o sistema, geralmente é:
Na aba Linker informe o caminho da pasta lib:
Agora na aba Linker settings, no Windows, informe arquivos .lib presentes na pasta lib:
Caso esteja no MacOS, informe os arquivos .dylib e no Linux (qualquer distribuição), informe os arquivos .so.
Não se esqueça de repetir o mesmo procedimento para o Release.
Com o MySQL instalado e configurado ao projeto, podemos nos conectar ao banco pelo código. Para exemplificar isso, vamos criar um banco de dados:
#include <stdio.h>
#include <mysql.h>
int main(int argc, char **argv)
{
MYSQL *conn = mysql_init(NULL);
if (mysql_real_connect(conn, "localhost", "root", "1234",
NULL, 0, NULL, 0) == NULL)
{
fprintf(stderr, "%s\n", mysql_error(conn));
mysql_close(conn);
exit(1);
}
if (mysql_query(conn, "CREATE DATABASE TWDATA"))
{
fprintf(stderr, "%s\n", mysql_error(conn));
mysql_close(conn);
exit(1);
}
mysql_close(conn);
exit(0);
}
Inicialmente é adicionado o include do MySQL
#include <mysql.h>
Ele que nos fornece todas as funções necessárias para se conectar ao banco e executar os códigos.
Assim, inicialmente o conector do MySQL é iniciado:
MYSQL *conn = mysql_init(NULL);
E nos conectamos ao banco:
if (mysql_real_connect(conn, "localhost", "root", "1234",
NULL, 0, NULL, 0) == NULL)
{
fprintf(stderr, "%s\n", mysql_error(conn));
mysql_close(conn);
exit(1);
}
A função mysql_real_connect, recebe por parâmetro, respectivamente: um objeto MySQL, host, usuário, password, database, porta, socket e flag. Caso ocorra algum problema com a conexão, ela irá retornar NULL
, e neste caso, exibimos a mensagem no console:
fprintf(stderr, "%s\n", mysql_error(conn));
E finalizamos a aplicação
exit(1);
Se não ocorrer nenhum erro, criamos o banco de dados:
if (mysql_query(conn, "CREATE DATABASE TWDATA"))
{
fprintf(stderr, "%s\n", mysql_error(conn));
mysql_close(conn);
exit(1);
}
Note que é utilizada a função mysql_query
, que recebe por parâmetro um objeto MySQL e a query que deve ser executada no banco.
Ao executar o código, se não ocorrer nenhum erro, nenhuma mensagem será exibida:
Podemos verificar a criação do banco no MySQL.
Com a função mysql_query
é possível executar qualquer tipo de query, mas veremos isso no nosso próximo artigo. Até lá.
Instrutor, nerd, cinéfilo e desenvolvedor nas horas vagas. Graduado em Ciências da Computação pela Universidade Metodista de São Paulo.
Todos os artigosExiste uma gama de ferramentas que permitem a criação de um instalador do Windows. Neste artigo veja...
Veja um exemplo de como se conectar ao MySQL no Entity Framework Core.
Aprenda na prática como fazer uso do micro framework ORM ServiceStack.OrmLite em uma aplicação ASP.N...
Conheça a biblioteca AutoMapper e aprenda como implementá-la em uma aplicação C#.
Nesse artigo vamos criar um ambiente de desenvolvimento PHP completo, com MySQL e Nginx dentro do WS...
O NHibernate é uma biblioteca madura e muito utilizada que agora fornece suporte para o .NET Core. V...
Prosseguindo com a série sobre os princípios SOLID, vamos abordar o Single Responsability Principle,...
Neste artigo veremos como podemos realizar o deploy de uma aplicação Spring Boot na nuvem com o Hero...
Aprenda a utilizar o Micro ORM PetaPoco em uma aplicação ASP.NET Core.
Neste artigo iremos conhecer o Spring Data JPA, entender o seu funcionamento e como o mesmo pode nos...
Veja neste artigo como dar os primeiros passos utilizando o MySQL.
Todos os passos da criação de uma API REST com o framework Spring Boot do Java, no Visual Studio Cod...