Preciso criar uma tabela num banco MySQL existente. Estou usando Vraptor e criei a seguinte lógica no meu Controller:
@Path("/criar")
public void criar(String acao){
if (acao.equals("Criar tabela no banco de dados")){
dao.criartabela();
}
}
que chama o método DAO:
public void criartabela(){
Configuration config = new Configuration();
config.addAnnotatedClass(Fornecedor.class);
config.configure();
new SchemaExport(config).create(true, true);
System.out.println("Tabela fornecedor criada no BD!");
}
Preciso saber agora como chamar o método criar() a partir de um button HTML.
Tentei usar no meu index.jsp o seguinte:
<form action="criar">
<input type="submit" value="Criar tabela no banco de dados" name="acao"/>
</form>
Mas recebo a seguinte mensagem:
O que está errado?
Abçs
Ois,
Eu pergunto, eu respondo. Acabei de resolver o problema.
Bastou
[list]1 - colocar um método criar() no Controller que …[/list]
public class FornecedorController{
public void criar(){
dao.criartabela();
}
}
[list]2 - … chama criartabela() do DAO e depois …[/list]
[code] public void criartabela(){
Configuration config = new Configuration();
config.addAnnotatedClass(Fornecedor.class);
config.configure();
SessionFactory factory = config.buildSessionFactory();
Session session = factory.openSession();
Transaction tx = session.beginTransaction();
new SchemaExport(config).create(true, true);
tx.commit();
System.out.println("Tabela fornecedor criada no BD Engenharia_Software!");
}
[/code]
[list]3 - … usar um button em um form, cuja action deve chamar o método desejado do respectivo Controller, usando a convenção do VRaptor:[/list]
[code]
Criar BD
[/code]
Depois que a gente aprende, aí parece óbvio…
Citando David Schwartz, autor do livro “Use o poder da sua mente”: [quote]“Não existe nada difícil para quem sabe fazer”.[/quote]