Java Magazine 93 |
Café OO
Java & etc.
agosto 06, 2011
Por dentro do Primefaces 2.2
Postado por
Rafael van Boekel
às
12:18
0
comentários
Enviar por e-mailPostar no blog!Compartilhar no TwitterCompartilhar no FacebookCompartilhar com o Pinterest
junho 06, 2011
JQuery com Struts - Parte II
Java Magazine 92 |
Saiu, na Java Magazine 92, a segunda da parte do meu artigo sobre jQuery com Struts.
Para conferir acesse:
http://www.devmedia.com.br/post-21383-jQuery-com-Struts-Parte-2--Exclusivo.html
Postado por
Rafael van Boekel
às
21:11
0
comentários
Enviar por e-mailPostar no blog!Compartilhar no TwitterCompartilhar no FacebookCompartilhar com o Pinterest
Marcadores:
Java,
Java Magazine,
jQuery,
Struts
junho 05, 2011
Como retornar o ID de um objeto que acaba de ser salvo no banco?
Em algumas situações é interessante termos acesso ao ID (autonumerado) gerado pelo banco de dados para um objeto recém persistido.
Por exemplo, se estivermos salvando um agregado, composto por alguns objetos, é importante termos acesso ao ID do objeto raíz, para criarmos os relacionamentos nas tabelas de um banco de dados.
Figura 1. Exemplo de Agregado com raíz em 'Pedido' |
Sendo assim, vou mostrar como podemos fazer isso utilizando o JDBC. Neste exemplo, utilizei o banco de dados SQL Server 2005 para testes.
/** * Método que insere objeto no banco e retorna o ID gerado */ public int inserir(MeuObjeto obj) throws Exception{ int idObjeto = 0; // Algum código para abrir conexão com o banco PreparedStatement statement = conn.prepareStatement("INSERT INTO " + "minha_tabela " + "(meu_objeto_campo1, " + "meu_objeto_campo2, " + "meu_objeto_campo3) " + "VALUES (?, ?, ?)", PreparedStatement.RETURN_GENERATED_KEYS); statement.setString(1, obj.getAtributo1()); statement.setString(2, obj.getAtributo2()); statement.setString(3, obj.getAtributo3()); statement.executeUpdate(); // recupera chave do objeto ResultSet rs = statement.getGeneratedKeys(); while(rs.next()){ idObjeto = rs.getInt(1); } conn.close(); // retorna o id do objeto recém inserido return idObjeto; }
O código acima parece muito com que estamos acostumados a fazer, a diferença está na construção do nosso PreparedStatement. Além da SQL que será executada, passamos também o parâmetro PreparedStatement.RETURN_GENERATED_KEYS. É este parâmetro que faz a "mágica" acontecer.
Ao executarmos o statement, o INSERT é realizado e o id gerado pelo banco é retornado em um ResultSet. Desta forma, temos acesso ao id do objeto, recém cadastrado, em nossa aplicação.
Postado por
Rafael van Boekel
às
15:10
0
comentários
Enviar por e-mailPostar no blog!Compartilhar no TwitterCompartilhar no FacebookCompartilhar com o Pinterest
maio 14, 2011
JQuery com Struts - Parte I
Java Magazine 91 |
Saiu a primeira parte do meu artigo, sobre jQuery com Struts, na Java Magazine 91.
Para conferir basta clicar no link abaixo:
http://www.devmedia.com.br/post-21128-jQuery-com-Struts-Parte-1.html
Postado por
Rafael van Boekel
às
14:33
0
comentários
Enviar por e-mailPostar no blog!Compartilhar no TwitterCompartilhar no FacebookCompartilhar com o Pinterest
Marcadores:
Java,
Java Magazine,
jQuery,
Struts
março 31, 2011
Configurando um pool de conexões no GlassFish
Um pool de conexões é uma espécie de cache de conexões com o banco de dados, que tem por objetivo, torná-las reutilizáveis. Assim, a comunicação com o banco torna-se mais eficiente.
Uma das grandes vantagens, quando se está trabalhando em um ambiente JAVA EE, é o fato de podermos contar com pools de conexões gerenciados pelo próprio container.
Esta característica, permite que aplicações se conectem ao banco de dados, sem que o desenvolvedor precise se preocupar com o ciclo de vida das conexões realizadas. Pois em um ambiente JAVA EE, esta tarefa é responsabilidade do container.
Contudo, para que o desenvolvedor possa contar com essa facilidade, é preciso configurar um pool de conexões. Sendo assim, vou mostrar como isto pode ser feito, utilizando o servidor de aplicações GlassFish e o banco de dados PostgreSQL.
- Copie o driver do PostgreSQL para a pasta [GLASSFISH_HOME]/glassfish/domains/domain1/lib/ (domain default). Para isso, basta baixar o driver jdbc4, correspondente à sua versão do PostgreSQL, em http://jdbc.postgresql.org. Desta forma, não será mais preciso utilizar o driver diretamente no classpath (pasta 'lib') de suas aplicações.
- Reinicie o servidor para que ele passe a utilizar o driver.
- Após a reinicialização, vá ao console de administração (normalmente porta 4848 - ex.: http://localhost:4848/) e selecione a opção Resources/JDBC/Connection Pools, no menu à esquerda.
- Clique no botão 'New...'. Defina o nome que achar melhor para o pool de conexões (ex.: meuBancoPool). Selecione a opção javax.sql.ConnectionPoolDataSource na combo 'Resource Type' e selecione PostgreSQL em 'Database Vendor'. Clique no botão 'Next'.
- Selecione o 'Datasource Classname' org.portgresql.ds.PGConnectionPoolDataSource, na combo. Em seguida, vá ao final da página e informe os seguintes dados: DatabaseName=[nome-do-banco], Password=[senha-do-banco], PortNumber=5432 (porta default), ServerName=[nome-do-servidor ou ip], User=[usuario-do-banco].
- Clique em 'Finish' para salvar o pool.
- Agora que o pool de conexões foi criado, é hora testá-lo. Para isso, selecione o pool recém criado e clique em 'Ping'. A mensagem "Ping Succeeded", indica que tudo está funcionando corretamente.
- Com o pool criado e testado, falta apenas permitir que suas aplicações o utilizem. Sendo assim, é preciso criar um nome JNDI para ele. Vá ao menu Resources/JDBC/JDBC Resources, especifique o nome no formato jdbc/[nome-do-banco], selecione o pool de conexões criado nos passos anteriores e clique em 'OK', para finalizar. Este nome deverá ser utilizado nas aplicações, para permitir a comunicação com o banco de dados através do pool de conexões.
Postado por
Rafael van Boekel
às
00:32
1 comentários
Enviar por e-mailPostar no blog!Compartilhar no TwitterCompartilhar no FacebookCompartilhar com o Pinterest
Marcadores:
container,
GlassFish,
JAVA EE,
JNDI,
Pool de Conexões,
PostgreSQL
Assinar:
Postagens (Atom)