Skip to content

VitoriaCamposRosa/animais-csv

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🦁 Catálogo de Animais - Importador CSV + SQLite

Projeto Java para importação de dados de animais reais via arquivo CSV, com persistência em banco de dados SQLite.

Dados baseados na Lista Vermelha da IUCN (União Internacional para a Conservação da Natureza).


🐾 Campos do CSV

Campo Tipo Descrição
id inteiro Identificador único
nome texto Nome popular do animal
especie texto Nome científico (nomenclatura binomial)
habitat texto Bioma ou ambiente principal
peso_kg decimal Peso médio em quilogramas
status_conservacao texto Classificação IUCN (Ex: Vulnerável, Em Perigo)

⚙️ Pré-requisitos e Configuração

Terminal — Use CMD, não PowerShell

⚠️ Use sempre o Prompt de Comando (cmd), não o PowerShell. O PowerShell interpreta o ; do classpath como separador de comandos, impedindo o carregamento correto dos JARs.

No VS Code: clique na setinha ▾ ao lado do + no painel do terminal e escolha Command Prompt.

Java JDK 17 (Adoptium Temurin)

Instale o Eclipse Temurin JDK 17:

  • Acesse: adoptium.net
  • Baixe o arquivo .msi (Windows x64)
  • Durante a instalação, marque obrigatoriamente:
    • ✅ Modify PATH variable
    • ✅ Set or override JAVA_HOME
  • Após instalar, feche e reabra o terminal
  • Verifique com: java -version e jar --version

Ambos devem mostrar a versão 17.

Driver SQLite JDBC

O driver não vem no Java — precisa ser baixado separadamente. Execute no terminal (cmd):

curl -L -o lib\sqlite-jdbc.jar https://repo1.maven.org/maven2/org/xerial/sqlite-jdbc/3.45.3.0/sqlite-jdbc-3.45.3.0.jar

Bibliotecas SLF4J (exigidas pelo driver SQLite)

O sqlite-jdbc 3.45+ depende do SLF4J para logging interno. Sem essas bibliotecas ocorre o erro: NoClassDefFoundError: org/slf4j/LoggerFactory

curl -L -o lib\slf4j-api.jar https://repo1.maven.org/maven2/org/slf4j/slf4j-api/2.0.9/slf4j-api-2.0.9.jar

curl -L -o lib\slf4j-simple.jar https://repo1.maven.org/maven2/org/slf4j/slf4j-simple/2.0.9/slf4j-simple-2.0.9.jar

Após os downloads sua pasta lib/ deve conter: lib/ ├── sqlite-jdbc.jar ├── slf4j-api.jar └── slf4j-simple.jar

Encoding — Emojis no terminal Windows

O terminal Windows usa encoding antigo por padrão, exibindo emojis e acentos como ? ou caracteres corrompidos. Antes de executar, rode sempre:

chcp 65001

Isso ativa o UTF-8 no terminal atual.

Compilar (Windows — cmd)

javac -encoding UTF-8 -cp lib\sqlite-jdbc.jar -d out src\model\Animal.java src\file\AnimalCSVReader.java src\dao\AnimalDAO.java src\main\Main.java

Se não aparecer nenhuma mensagem de erro, a compilação foi um sucesso.

Executar (Windows — cmd)

java -cp out;lib\sqlite-jdbc.jar;lib\slf4j-api.jar;lib\slf4j-simple.jar main.Main

O banco animais.db é criado automaticamente na pasta do projetona primeira execução.


🚀 Atalho — Arquivo rodar.bat

Para facilitar o desenvolvimento, o projeto inclui o arquivo rodar.bat que limpa, compila e executa tudo com um único comando.

O que ele faz automaticamente:

  1. Ativa o encoding UTF-8 no terminal
  2. Apaga a pasta out/ com os .class antigos
  3. Apaga o banco animais.db anterior
  4. Recria a pasta out/
  5. Compila todos os arquivos .java
  6. Executa o programa

Como usar:

Abra o cmd (não PowerShell) na pasta do projeto e digite:

rodar

Quando usar o rodar.bat:

  • Sempre que alterar qualquer arquivo .java
  • Quando quiser resetar o banco e reimportar os dados
  • Para testar o sistema do zero

📋 Visualizar o banco de dados (animais.db)

O arquivo animais.db é binário — o VS Code não consegue abrir diretamente. Para visualizar os dados em formato de tabela:

Instale a extensão SQLite Viewer no VS Code:

  1. Pressione Ctrl+Shift+X
  2. Pesquise: SQLite Viewer
  3. Instale a opção de Florian Klampfer
  4. Clique no arquivo animais.db no Explorer
  5. Os dados aparecem em uma tabela visual interativa

📋 Funcionalidades do Menu

Opção Descrição
1 Importar animais do arquivo CSV (com relatório completo)
2 Listar por Nome (A → Z)
3 Listar por Habitat
4 Listar por Peso (maior → menor)
5 Listar por Status de Conservação (mais crítico primeiro)
6 Limpar banco de dados
0 Sair

✅ Requisitos Atendidos

[x] Java com JDBC

[x] try-with-resources em todas as operações de I/O e banco

[x] Entidade Animal com 6 construtores parciais encadeados

[x] Separação em camadas: model, dao, file, main

[x] Mensagens de sucesso e erro no console (System.out / System.err)

[x] Menu interativo em Main.java

[x] Relatório de importação: total de registros + distribuição de atributos

[x] 4 tipos de ordenação

[x] 32 registros no CSV (encoding UTF-8)

[x] Tratamento de linhas malformadas por try/catch individual

[x] Batch insert com transação e rollback

[x] Integer.parseInt e com tratamento de exceção


🌍 Status de Conservação (IUCN)

Símbolo Status Qtd no CSV
🔴 Em Perigo Crítico 4
🟠 Em Perigo 6
🟡 Vulnerável 13
🟢 Quase Ameaçado 4
🔵 Pouco Preocupante 5

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors