Skip to content

Pequenos exemplos em Java para acessar banco de dados SQLite e MySQL / MariaDB

License

Notifications You must be signed in to change notification settings

bcd29008/java-sqlite-mysql-gradle

Repository files navigation

GitHub license

Exemplos em Java com SQLite e MySQL / MariaDB

Esse projeto é composto de pequenos exemplos em Java para acessar banco de dados SQLite e MySQL / MariaDB usando JDBC 4.

Execute a classe bcd.Principal e a partir dessa será possível invocar os exemplos apresentados abaixo.

Exemplo 01 - SQLite

Código simples para apresentar os conceitos básicos para consulta, inserção, alteração e remoção de linhas em um banco de dados SQLite.

É feito uso do recurso try-with-resources do Java para fechar a conexão após o uso.

Exemplo 02 - SQLite

Código que apresenta uma organização que segue padrões de projeto de software (Design Patterns) para acessar banco de dados. Nesse caso, foi criada uma classe abstrata ConnectionFactory.java que é uma fábrica de conexões com o banco.

É feito uso do recurso try-with-resources do Java para fechar a conexão após o uso.

Exemplo 03 - SQLite

Apresenta o uso da classe PreparedStatement, preferível em relação ao Statement principalmente por evitar problemas com SQL Injection.

SQL Injection

https://xkcd.com/327/

Exemplo 04 - SQLite

Apresenta o uso do padrão de projeto Data Access Object (DAO).

Exemplo 05 - MySQL

Apresenta um pequeno exemplo de como conectar em um banco de dados MySQL.

Para conectar em um banco MySQL é necessário informar:

  • username - nome do usuário
  • password - senha do usuário
  • hostname - endereço IP ou hostname do servidor MySQL
  • port - porta onde o processo do MySQL está ouvindo (por padrão é 3306)
  • dbname - nome do esquema

Essas informações devem ser informadas no arquivo ConnectionFactory.java.

Se você tiver uma instalação própria do MySQL, então use o arquivo lab01-mysql-dml-ddl.sql para criar as tabelas, bem como inserir os registros, necessários para esse exemplo 05. Os comandos abaixo devem ser executados, porém, no cliente mysql no terminal:

CREATE DATABASE lab01;

CREATE USER IF NOT EXISTS 'aluno'@'%' IDENTIFIED WITH mysql_native_password by '1234';
GRANT ALL ON lab01.* TO 'aluno'@'%';

USE lab01;
SOURCE lab01-mysql-dml-ddl.sql

Os comandos acima criaram um esquema chamado lab01, um usuário aluno com a senha 1234 e com total permissão sobre o esquema lab01. Por fim, executou o script lab01-mysql-dml-ddl.sql.

Como usar o IntelliJ Ultimate para acessar o banco de dados

O IntelliJ tem um cliente para bancos de dados o qual permite fazer consultas, inserir, alterar e remover registros. Para configurar isso, veja:

Como criar um Jar executável com o gradle

Foi feito uso do Gradle Shadow plugin para empacotar toda a aplicação Java, junto com suas dependências (i.e. bibliotecas do SQLite e do MySQL), dentro de um único arquivo .jar. Para tal foi necessário indicar qual o nome da classe principal, aquela com o método public static void main(String[] args), pois é essa que será executada.

Nesse projeto, tal classe é bcd.Principal. Sendo assim, foi necessário incluir as seguintes linhas no arquivo build.gradle.

plugins {
    id 'application'
    id 'java'
    // Gradle Shadow plugin
    id 'com.github.johnrengelman.shadow' version '8.1.1'
}

jar {
    manifest {
        attributes 'Main-Class': 'bcd.Principal'
    }
}

tasks.shadowJar {
    mergeServiceFiles()
}

Por fim, execute a tarefa ./gradlew shadowJar para gerar empacotar a aplicação e todas as dependências em um JAR que ficará disponível em build/libs/bcd-1.0-all.jar.

Para executar a aplicação empacotada no JAR, execute o camando abaixo:

java -jar build/libs/bcd-1.0-all.jar

Para atualizar a versão do gradle

Veja documentação oficial que está disponível em https://docs.gradle.org/current/userguide/upgrading_version_7.html

gradle wrapper --gradle-version 8.1.1

About

Pequenos exemplos em Java para acessar banco de dados SQLite e MySQL / MariaDB

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages