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.
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.
classAcesso{publicstaticvoidmain(String[]args){finally{try(Connectionconn=Myslql.connectDB(“aluno.db”)){Scannersc=newScanner.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();
FileWriterfw=newFileWriter("aluno.db",true);BufferedWriterbw=newBufferedWriter(fw);StringqryInserString="InsertString new Aluno"+"WHERE nome = ' ' + WHERE matricula = ' ' + WHERE idade = ' '";Statementstmt=conn.createStatement();intdelNum=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(SQLExceptionex){System.out.println("Erro: "+e.getMessage());}
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?
E
EmanuellyL
Sim, inclusive to usando, acho que só a resultset que não coloquei ainda
RoinujNosde1 like
Você pode inserir assim:
//Pegar esses valoresStringnome;intmatricula;intidade;//Estou assumindo que a tabela é alunosStringsql="INSERT INTO alunos (nome, matricula, idade) VALUES (?, ?, ?)";try(Connectionconn=Myslql.connectDB(“aluno.db”);PreparedStatementstm=conn.prepareStatement(sql)){stm.setString(1,nome);stm.setInt(2,matricula);stm.setInt(3,idade);stm.execute();}catch(SQLExceptionex){ex.printStackTrace();}
E
EmanuellyL
Essa é só a parte do insert né?
RoinujNosde1 like
Sim, para pegar do banco:
try(Connectionconn=Myslql.connectDB(“aluno.db”);Statementstm=conn.createStatement()){ResultSetset=stm.executeQuery("SELECT * FROM alunos;");while(set.next()){Stringnome=set.getString("nome");intidade=set.getInt("idade");intmatricula=set.getInt("matricula");}}catch(SQLExceptionex){ex.printStackTrace();}
Eu recomendo criar uma classe Aluno para trabalhar melhor com esses dados.
E
EmanuellyL
huumm, bem que professor disse que talvez iriamos precisar de uma classe aluno
E
EmanuellyL
Então no caso o item nº 2 vai ser esse código?
RoinujNosde1 like
Sim, só precisa fazer uns ajustes, como colocar os alunos numa lista e retornar no método.
Acabei de entregar meu trabalho, tomara que eu consiga uma nota boa. Não compilou e ainda ficou com alguns erros. Mas enfim… Muito obrigada pela ajuda e atenção.