Esse projeto é composto de pequenos exemplos em Java para acessar banco de dados SQLite e MySQL / MariaDB usando JDBC 4.
- Para os exemplos com SQLite é feito uso do SQLite JDBC Driver
- Veja exemplos de uso aqui
- Para os exemplos com o MySQL é feito uso do MySQL Connector Java
Execute a classe bcd.Principal e a partir dessa será possível invocar os exemplos apresentados abaixo.
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.
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.
Apresenta o uso da classe PreparedStatement, preferível em relação ao Statement principalmente por evitar problemas com SQL Injection.
Apresenta o uso do padrão de projeto Data Access Object (DAO).
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
.
O IntelliJ tem um cliente para bancos de dados o qual permite fazer consultas, inserir, alterar e remover registros. Para configurar isso, veja:
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
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