Criar um projeto Java que abra uma conexão com um BD SQLite, arquivo aluno.db, e
monte um menu com seguintes opções para o usuário:
- Inserir novo. Solicita que o usuário informe dados de um novo aluno e faz a
inserção no BD, retornando em seguida ao menu principal. Se o usuário tentar
incluir um número de matrícula que já existe, o próprio BD irá gerar uma exceção e
uma mensagem apropriada deve ser exibida.
- Listar todos. Exibe matrícula, nome e idade de todos os alunos existentes,
retornando em seguida ao menu principal.
- Exportar dados para arquivo CSV. Solicita que o usuário informe o nome desejado
para o arquivo e realiza a exportação dos dados para um arquivo no formato CSV,
usando vírgula como separador. Retornando em seguida ao menu principal.
- Sair. Encerra o programa.
COMO FAZ PRA CRIAR APENAS O MENU?
Faça um while(true), imprima as opções usando System.out.println, peça a opção deseja usando a classe Scanner. Se a opção for 4, chame break; para sair do while.
1 curtida
Tente implementar de acordo com esse esquema:
DECLARA opcao
FAÇA
IMPRIMA "=== MENU ==="
IMPRIMA "1 - Ação A"
IMPRIMA "2 - Ação B"
IMPRIMA "3 - Ação C"
IMPRIMA "0 - Sair"
LEIA opcao
ENQUANTO (opcao != 0)
1 curtida
public class Main
{
public static void main(String[] args)
{
System.out.println("\tInserir alunos");
System.out.println("0. Fim");
System.out.println("1. Inserir");
System.out.println("2. Listar todos");
System.out.println("3. CSV");
System.out.println("4. SAIR");
System.out.println("Opcao: ");
}
{
int opcao;
Scanner scn = new Scanner(System.in);
do{
menu();
opcao = scn.nextInt();
switch(opcao){
case 1:
inserir();
break;
case 2:
listarTodos();
break;
case 3:
CSV();
break;
case 4:
sair();
break;
default:
System.out.println("Opção inválida.");
}
} while(opcao != 0);
}
}
Seria algo parecido com isso?
Soh o método menu que não encontrei. Onde vc definiu ele?
1 curtida
kkkkk ai meu Jesus. Rindo de nervoso. Não faço ideia, sei nem o que eu fiz aí. Essa atividade tá complicada pra mim, me desculpem.
1 curtida
Coloca esse trecho num método chamado menu:
private static void menu() {
//Trecho
}
1 curtida
private static void menu() {
System.out.println("\tInserir alunos");
System.out.println(“0. Fim”);
System.out.println(“1. Inserir”);
System.out.println(“2. Listar todos”);
System.out.println(“3. CSV”);
System.out.println(“4. SAIR”);
System.out.println("Opcao: ");
}
Assim?
1 curtida
Isso, agora só implementar a lógica dos outros métodos inserir, listarTodos, etc.
1 curtida
import java.io.BufferedReader;
import java.io.;
import java.util.ArrayList;
import java.util.List;
import java.math.;
import java.lang.Double;
class Acesso
{
public static void main(String[] args)
{
finally
{
try (Connection conn = Myslql.connectDB(“aluno.db”))
{
Scanner sc = new Scanner.in();
System.out.println("Digite o nome do aluno: ");
path = in.nextLine();
System.out.printl("Digite a matrícula: ");
path = in.nextLine();
System.out.printl("Digite a idade: ");
path = in.nextLine();
FileWriter fw = new FileWriter("aluno.db", true);
BufferedWriter bw = new BufferedWriter(fw);
String qryInserString = "InsertString new Aluno" +
"WHERE nome = ' ' + WHERE matricula = ' ' + WHERE idade = ' '";
Statement stmt = conn.createStatement();
int delNum = stmt.executeUpdate(qryInserString);
while (rs.next())
{
System.out.print(rs.getString(1)+":");
System.out.println(rs.setString("nome"));
System.out.print(rs.getString(2)+":");
System.out.println(rs.setString(idade));
System.out.print(rs.getString(3)+":");
System.out.println(rs.setString(matricula));
}
}
} catch (SQLException ex)
{
System.out.println("Erro: " + e.getMessage());
}
}
}
{
String path = “aluno.db”;
List<Acesso> list = new ArrayList<Acesso>();
try(BufferedReader br = new BufferedReader(new FileReader(path)))
{
String line = br.readLine();
line = br.readLine() throw IOException;
while (line != null)
{
String[] vect = line.split(",");
String nome = vect[0];
int idade = Integer.vectInteger[1];
byte matricula = Byte.parseByte(vect[2]);
Acesso acess = new Acesso(nome,idade,matricula);
list.add(acess);
line = br.readLine();
}
System.out.println("Itens: ");
for(Acesso a : list)
{
System.out.println(p);
}
} catch (IOException e)
{
System.out.println("Error: "+e.getMessage());
}
}
}
okay, esse é o resto do programa, tá bem errado eu sei (pode rir, eu deixo). Mas daí, eu num sei nem pra onde vai depois daqui.
Eu fiz ele em outra classe
Certo, vc tá usando SQLite. Então não precisa usar os códigos abaixo:
Use classes JDBC, como Connection, Statement, ResultSet. Você aprendeu sobre isso?
1 curtida
Sim, inclusive to usando, acho que só a resultset que não coloquei ainda
Você pode inserir assim:
//Pegar esses valores
String nome;
int matricula;
int idade;
//Estou assumindo que a tabela é alunos
String sql = "INSERT INTO alunos (nome, matricula, idade) VALUES (?, ?, ?)";
try (Connection conn = Myslql.connectDB(“aluno.db”); PreparedStatement stm = conn.prepareStatement(sql))
{
stm.setString(1, nome);
stm.setInt(2, matricula);
stm.setInt(3, idade);
stm.execute();
} catch (SQLException ex) {
ex.printStackTrace();
}
1 curtida
Essa é só a parte do insert né?
Sim, para pegar do banco:
try (Connection conn = Myslql.connectDB(“aluno.db”); Statement stm = conn.createStatement())
{
ResultSet set = stm.executeQuery("SELECT * FROM alunos;");
while(set.next()) {
String nome = set.getString("nome");
int idade = set.getInt("idade");
int matricula = set.getInt("matricula");
}
} catch (SQLException ex) {
ex.printStackTrace();
}
Eu recomendo criar uma classe Aluno para trabalhar melhor com esses dados.
1 curtida
huumm, bem que professor disse que talvez iriamos precisar de uma classe aluno
Então no caso o item nº 2 vai ser esse código?
Sim, só precisa fazer uns ajustes, como colocar os alunos numa lista e retornar no método.
1 curtida