| Author |
Message |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/10/2008 13:12:06
|
saoj
Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline
|
Atenção: VERSÃO ANTIGA => Utilizar aplicação de referência => http://forum.mentaframework.org/posts/list/2405.page
Para agilizar as coisas para quem está começando com o Mentawai, preparamos um projeto completo com as principais funcionalidades do framework. Trata-se de uma aplicação web onde você pode realizar um cadastro, se logar, editar esse cadastro e dar logout.
Essa aplicação pode e deve ser utilizada como ponto de partida para outras aplicações web.
Os seguintes conceitos são utilizados:
Validação
Autenticação
Redirect after Login
IoC
Auto-Wiring
Pool de Conexões
Tratamento de Exceções
ORM (Mapeamento de Beans no BD)
Diversas tags do Mentawai (mtw:requiresAuthentication, mtw:bean, etc.)
Baixe o projeto aqui: http://www.mentaframework.org/files/MentaBlank.zip
Abaixa descreveremos um passo a passo de como colocar esse projeto para rodar dentro do Eclipse, assumindo que você possui o Tomcat e o Sysdeo instalado no seu ambiente de desenvolvimento.
Selecione a opção do menu File -> Import. Escolha a opção "Existing Projects into Workspace". Clique em "Next".
Selecione a opção "Select archive file", clique em "Browse" e selecione o arquivo MentaBlank.zip que você baixou. Você deverá visualizar o projeto MentaBlank selecionado na caixa de texto logo abaixo.
Clique em "Finish" e um novo projeto "MentaBlank" será criado no seu eclipse. Antes de colocarmos ele para rodar no Tomcat precisamos criar um database para ele. O MentaBlank utiliza o MySQL, mas é bastante fácil alterá-lo para qualquer BD de sua preferência.
Vá no diretório WEB-INF/db e lá você encontrará dois arquivos:
MentaBlank.sql com o script SQL para gerar a base de dados da aplicação
grant.txt com o sql para criar o usuário "MentaBlank" no MySQL
Crie um database "MentaBlank", rode os arquivos acima e o seu banco-de-dados estará pronto para receber a nossa aplicação.
Repare que no AppManager.java, a configuração do Pool de Conexões é feita nas seguintes linhas:
Code:
String driver = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://localhost/MentaBlank?autoReconnect=true";
String user = "MentaBlank";
String pass = "MentaBlank";
this.connHandler = new C3P0ConnectionHandler(driver, url, user, pass);
Agora para testar sua aplicação clique em Project -> Properties. Selecione a opção "Tomcat" e faça as seguintes alterações abaixo:
Clique em "Ok", inicie o seu Tomcat e acesse a URL http://localhost:8080/MentaBlank/ para testar a aplicação.
Obs: Versão para Eclipse WTP pode ser baixada em: http://www.mentaframework.org/files/MentaBlankWTP.zip (por Hélio Frota)
|
Sergio Oliveira
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/10/2008 18:22:35
|
pancary
![[Avatar]](/images/avatar/08b255a5d42b89b0585260b6f2360bdd.jpg)
Joined: 25/10/2008 23:06:52
Messages: 8
Offline
|
Olá,
Como fica a configuração de conexão para o HSQLDB ?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/11/2008 03:49:50
|
saoj
Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline
|
pancary wrote:
Olá,
Como fica a configuração de conexão para o HSQLDB ?
Primeiro vc tem que ver se o arquivo MentaBean.sql pode ser aplicado em um banco HSQLDB. Esse arquivo foi gerado pelo mysql.
Depois vc tem que trocar o MySQLBeanSession pelo HSQLBeanSession no application manager.
Qualquer dúvida me manda um email...
|
Sergio Oliveira
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/11/2008 19:20:45
|
pancary
![[Avatar]](/images/avatar/08b255a5d42b89b0585260b6f2360bdd.jpg)
Joined: 25/10/2008 23:06:52
Messages: 8
Offline
|
Sergio, consegui conectar no banco hsql, mas o script sql tem diferenças no auto_increment, não consegui fazer funcionar usando o sequence..
Preciso usar um banco embarcado, pois a aplicação terá um universo de dados limitado, com poucos objs para persistir, alem de que o scr tem que ser portátil, uso muito export > import.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/11/2008 04:24:15
|
Lobo
![[Avatar]](/images/avatar/093f65e080a295f8076b1c5722a46aa2.jpg)
Joined: 23/01/2006 02:17:14
Messages: 834
Location: Fortaleza-CE
Offline
|
tem o H2 http://www.h2database.com/html/main.html inclusive o mentawai tem uma implementação de MentaBeans pra ele.
|
Atenciosamente,
Hélio Frota
Helio Frota
10+ Java Programmer
Blog
http://www.kawaiwiki.org/
http://www.mentaframework.org/
Mentawai Developer |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/11/2008 08:24:57
|
Marcelino F. S. Neto
Joined: 04/11/2008 08:10:42
Messages: 3
Offline
|
Estou precisando de um SqlServerBeanSession, se puderem implementar ficarei grato. Mas pra ir adiantando meu projeto vou baixar um MySQL.
Obrigado,
Marcelino F. S. Neto
web developer and web designer
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/11/2008 09:14:26
|
saoj
Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline
|
pancary wrote:
Sergio, consegui conectar no banco hsql, mas o script sql tem diferenças no auto_increment, não consegui fazer funcionar usando o sequence..
Preciso usar um banco embarcado, pois a aplicação terá um universo de dados limitado, com poucos objs para persistir, alem de que o scr tem que ser portátil, uso muito export > import.
Cria na mão a tabela, pois o script no mysql não vai funcionar no hsql mesmo não.
Depois peço que por favor nos envie esse arquivo!
E mais importante: Vc provavelmente vai querer criar uma classe HSQLBeanSession, para tratar algumas particularidades do HSQL, como order by com limit, retorno da sequencia, etc.
Se fizer isso, manda pra gente tb que os créditos vão para vc.
Olhe como foram feitas as classes:
OracleBeanSession
MySQLBeanSession
H2BeanSession
|
Sergio Oliveira
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/11/2008 09:18:35
|
saoj
Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline
|
Marcelino F. S. Neto wrote:
Estou precisando de um SqlServerBeanSession, se puderem implementar ficarei grato. Mas pra ir adiantando meu projeto vou baixar um MySQL.
Obrigado,
Marcelino F. S. Neto
web developer and web designer
Acho que o SQLServer vc pega o auto_increment com @@identity, não é isso?
Preciso saber então como é o sysdate / now() dele e como ele trata order by com limit.
Veja a minha resposta acima e pesquisa sobre isso por favor. Seria melhor ainda se vc conseguisse fazer essa classe SqlServerBeanSession.
Nessa semana estou demasiadamente enrolado...
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/11/2008 12:00:54
|
Marcelino F. S. Neto
Joined: 04/11/2008 08:10:42
Messages: 3
Offline
|
Isso, pra pegar o auto_increment é com @@identity e pra pegar a data/hora do sistema é com getdate().
Apenas a data: select CONVERT(VARCHAR( 8 ) , GETDATE(), 103)
Apenas a hora: select CONVERT(VARCHAR( 8 ) , GETDATE(), 108 )
Order by com limit no sqlserver é: select top 2 * from tabela order by desc.
Pra limitar o número de linhas use o top depois do select.
A criação da tabela é assim:
CREATE TABLE users (
id INTEGER NOT NULL IDENTITY(1,1),
username VARCHAR(100) NOT NULL,
email VARCHAR(100) NOT NULL,
CONSTRAINT pk_user PRIMARY KEY (id),
);
Olhei na API como vcs fizeram o MySQLBeanSession; vou tentar fazer a classe pro sqlserver, mesmo que eu não consiga testar, vou enviar pra vc. É provável que eu precise de ajuda pra criá-la.
Abraço
|
Marcelino F. S. Neto |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/11/2008 13:02:53
|
saoj
Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline
|
Manda brasa!
Mas ficou faltando responder uma pergunta.
O SQLServer ordena e depois limita ou limita e depois ordena?
Se limita e depois ordena então tem que fazer algo assim:
select top 10 * from (select name from users order by name)
e não
select top 10 name from users order by name
São essas pentelhações que pentelham a coisa e requerem atenção/conhecimento.
Depois me fala porque eu realmente não sei como funciona para o SQL Server.
|
Sergio Oliveira
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/11/2008 07:39:57
|
Marcelino F. S. Neto
Joined: 04/11/2008 08:10:42
Messages: 3
Offline
|
uahauhahuahuha pentelhações q pentelham, tu é muito engraçado, Sergio.
Não sei sinceramente o que ele faz primeiro (se limita primeiro ou ordena) só
sei que a forma correta é select top 10 name from users order by name. Se tentar fazer uma subquery daquele jeito dá erro. Pode fazer depois do where.
Também não sei nada de sql do MySQL, só do SqlServer mesmo.
Me tira umas dúvidas da classe SqlServerBeanSession q to tentando fazer.
Tentei imaginar como foi feito o método handleLimit pra sobrescrever mas não consegui. Tem como me enviar o font do JdbcBeanSession ou me passar uma orientação sobre a classe toda?
|
Marcelino F. S. Neto |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/11/2008 08:39:44
|
pancary
![[Avatar]](/images/avatar/08b255a5d42b89b0585260b6f2360bdd.jpg)
Joined: 25/10/2008 23:06:52
Messages: 8
Offline
|
Consegui conectar no H2 para uso embarcado na seguinte forma, sendo o nome do banco = samr:
Code:
// Retorna a url da classe ( qualquer classe do projeto serve )
URL url = ApplicationManager.class.getResource("ApplicationManager.class");
// Retorna o path acima de WEB-INF
String caminho = url.getFile().substring(1, url.getFile().indexOf("WEB-INF"));
this.connHandler = new C3P0ConnectionHandler("org.h2.Driver", "jdbc:h2:file:" + caminho + "/banco/samr", "sa", "");
O sql do MentaBlank rodou sem problemas no H2.
Já está validando e autenticando o usuário, estou usando uns formularios que coloquei no site que fiz para a facu http://www.projetofinal.site90.com
mas eu quero usar o FormSkin igual ao MentaBooks On line, como eu seto um template para forms ?
Ps: Recomendo o H2 para quem está iniciando, pois é muito facil usar, basta especificar o driver e o tipo de banco ( file neste caso ), setar o path do jar e só.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/11/2008 09:34:42
|
saoj
Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline
|
mas eu quero usar o FormSkin igual ao MentaBooks On line, como eu seto um template para forms ?
Isso eu não sei pois não uso e não gosto de templates, nem de formSkin.
Não gosto de misturar design com programação, mas isso é a minha opinião pessoal.
Ps: Recomendo o H2 para quem está iniciando, pois é muito facil usar, basta especificar o driver e o tipo de banco ( file neste caso ), setar o path do jar e só.
Seria de grande ajuda se vc pudesse passar um MentaBlank.zip prontinho para o cara importar no eclipse e utilizar com o H2. Pelo que entendi ele nem precisaria rodar qualquer SQL inicial para usar o H2, certo? O próprio ApplicationManager poderia fazer isso no banco embarcado.
Veja aí se vc consegue fazer um MentaBlank.zip prontinho para o H2.
|
Sergio Oliveira
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/11/2008 09:40:40
|
saoj
Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline
|
Tentei imaginar como foi feito o método handleLimit pra sobrescrever mas não consegui. Tem como me enviar o font do JdbcBeanSession ou me passar uma orientação sobre a classe toda?
Eu acho que o SQLServer ordena e depois limita, então vc está safe. O Oracle não é assim...
o handleLimit vc teria que fazer como o MySQL, mas mete o top no início ao invés do limit no final.
Veja o exemplo do MySQL que é bem parecido:
Code:
/**
* MySQL is not like Oracle. It will SORT everything first and then apply LIMIT.
*/
@Override
protected StringBuilder handleLimit(StringBuilder sb, String orderBy, int limit) {
if (limit == -1) return sb;
StringBuilder sbLimit = new StringBuilder(sb.length() + 32);
sbLimit.append(sb.toString()).append(" LIMIT ").append(limit);
return sbLimit;
}
|
Sergio Oliveira
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/11/2008 06:13:59
|
Lobo
![[Avatar]](/images/avatar/093f65e080a295f8076b1c5722a46aa2.jpg)
Joined: 23/01/2006 02:17:14
Messages: 834
Location: Fortaleza-CE
Offline
|
Está pronto MentaBlankWTP (para usar com eclipse WTP) e MentaBlankH2db com o H2 embarcado em breve será disponibilizado bem como o MentaBlankMaven.
|
Atenciosamente,
Hélio Frota
Helio Frota
10+ Java Programmer
Blog
http://www.kawaiwiki.org/
http://www.mentaframework.org/
Mentawai Developer |
|
|
 |
|
|