Conferência JavaOne não vai acabar

Postador por Francisco Coelho


Conferência JavaOne não deve acabar após a aquisição da Sun pela Oracle e já tem data marcada para acontecer.

Segundo a companhia, o evento para desenvolvedores acontecerá na mesma data do Oracle Open World, entre os dias 19 e 23 de setembro em San Francisco, nos EUA.
O único problema é que a JavaOne estava marcada para acontecer em junho de 2010, o que vai obrigar os interessados a reorganizar a data de suas visitas.

De acordo com Charles Phillips, presidente da Oracle, além do encontro em setembro, a empresa deve promover edições especiais em países como o Brasil, Índia, China e Rússia.
A conferência, que nasceu em 1996, é considerada com o maior evento mundial sobre Java e já chegou a reunir 20 mil desenvolvedores de uma vez. Já o Oracle Open World tem uma média de 40 mil visitantes.



Por: James Della Valle

Falso aviso de atualização do Outlook Express pode infectar PC

Postador por Francisco Coelho


Bem elaborada, mensagem busca convencer usuário a baixar e executar anexo; empresas de software não costumam enviar patches por e-mail.

Uma campanha maliciosa de spam flagrada pela empresa de segurança Panda Labs usa um falso aviso de atualização de software para levar as vítimas a instalar um Trojan (cavalo-de-Tróia). Bem engendrado, o ataque oferece presentes arriscados. O e-mail, que a Panda registrou em uma captura de tela, tenta se passar por uma mensagem do serviço de suporte da Microsoft.

Com uma linha de assunto convincente e um conteúdo que reforça o conselho (correto, aliás) de manter seu computador sempre atualizado, a mensagem é um exemplo de ataque com base em engenharia social.
Mas, apesar da ausência de qualquer tipo de erro gramatical, o e-mail comete alguns deslizes que o denuncia. O primeiro é que nem a Microsoft, nem outra empresa enviam atualizações como anexos de e-mail. O segundo é o próprio arquivo anexo. Quaquer arquivo que venha com um e-mail deveria atrair suspeitas. Mesmo que seu aplicativo de antivírus permita a chegada do anexo, é uma boa ideia carregar o arquivo no site Virustotal.com para uma varredura adicional. A menos que o anexo seja parte de um ataque em pequena escala, são grandes as chances de que pelo menos algumas das ferramentas do site identifiquem a ameaça. A Panda diz que quem abrir o anexo e executar o arquivo .exe incluído nele vai causar a instalação do cavalo-de-Tróia Bredolab.Y. Como bônus, ele também vai baixar um programa antivírus falso chamado SecurityTool.

Por: Erik Larkin

TI e profissionais precisam de equilíbrio

Postador por Francisco Coelho



O mercado de TI está disposto a receber profissionais que procuram desafios e não apenas o retorno financeiro.

É o que afirma o Ary Gatto, sócio-diretor da Essence, empresa de consultoria e outsourcing.
Para o executivo, existem basicamente dois tipos de profissionais: os que buscam recompensas rápidas e ascensão profissional e os que buscam crescer apoiados nos valores das empresas e desafios impostos pela profissão. “Na área de TI, ganha o segundo grupo. As empresas procuram quem compartilhe os mesmo valores e cultura e que estão não apenas interessados nos benefícios financeiros. Uma versão humana da empresa é o sonho de qualquer diretor de recursos humanos”, afirma. Gatto explica que os diferenciais já não são mais os mesmos. Por exemplo, o profissional deve conhecer mais línguas além do inglês, que já é considerado algo básico nos currículos. Um candidato com fluência em espanhol ou alemão tem muito mais chances de ser bem sucedido. Outro ponto importante levantado é a necessidade de integração do funcionário com a companhia, que deve escolher cuidadosamente os nomes que vão ocupar os cargos, tanto para cargos mais altos, quanto para apostas em novos talentos. “Quando o projeto requer um consultor sênior, a empresa de TI terá que recorrer a um profissional experiente com grande bagagem”, diz o executivo. “Se a intenção é desenvolver novos talentos, a melhor opção é investir em profissionais recém graduados, que aceitam qualquer desafio para se destacar dentro da empresa”, completa. Os candidatos devem ter certeza de que estão preparados para fazer parte da organização. Já as empresas devem aplicar todos os testes técnicos necessários para garantir a contratação dos melhores talentos. “Em resumo, a seleção e contratação de profissionais exigem grande esforço, atenção e, principalmente, garantias. Talvez o descompasso de interesse seja um dos motivos de existirem vagas abertas com profissionais desempregados”, afirma Gatto.


Por: James Della Valle, INFO Online

Internet é apontada ao Prêmio Nobel da Paz

Postador por Francisco Coelho




Manifesto pretende incluir a Internet na lista de indicados ao Prêmio Nobel da Paz. A ideia é do Grupo Internet For Peace, que quer reunir pessoas que apóiem o projeto por meio de seu site.


Segundo descrição, a internet “é mais do que uma rede de computadores: é uma web sem fim de pessoas”. Por meio dela, habitantes de todo o mundo se conectam, permitindo o florescimento da democracia. Assim, ela se torna “uma ferramenta para a paz”.

“É por isso que o próximo prêmio Nobel da Paz deveria ir para a internet. Um Nobel para cada um de nós”, diz o manifesto.

A internet deve ter seu nome enviado ao comitê Nobel por uma das embaixadoras da campanha, Shirin Ebadi, ganhadora do prêmio em 2003. Sua participação é fundamental pois, segundo as regras da premiação, somente pessoas qualificadas podem enviar sugestões de nomes – e Ebadi, como ganhadora, se encaixa em uma das categoriais qualificáveis.


Por: Paula Rothman, de INFO Online

Mito ou Verdade ?

Postador por Francisco Coelho




A primeira carga na bateria do celular precisa levar de 8 a 12 horas ?



Quando você compra um celular novo, fica doido pra chegar logo em casa e brincar com ele, certo?! Virar de cabeça pra baixo cada função, adicionar toques personalizados, fotos, enfim, deixar o aparelho recém-adquirido com a sua cara. É também nessas horas que vem a famosa pergunta: é preciso mesmo deixar o celular carregando por mais de 8 horas na primeira carga da bateria? Antes de dar início às explicações e às respostas para a pergunta, é bom que o usuário tenha conhecimento a respeito de dois assuntos: os tipos de bateria presentes no mercado e quando uma bateria pode ser considerada viciada. Então, vamos às explicações.


Tipos de bateria - São três os tipos de baterias mais conhecidos atualmente:

Níquel e Cádmio (NiCd) – o uso dessas baterias é mais raro nos tempos de hoje, uma vez que elas são prejudicial à saúde e tem o chamado efeito memória, ou seja, viciam com facilidade;

Níquel Metal Hidreto (NiMH) – podem ser consideradas uma melhoria nas baterias NiCd. São menos suscetíveis ao efeito memória, além de não serem tão prejudiciais. Ainda é possível encontrar alguns notebooks, câmeras digitais e celulares mais antigos com esse tipo de bateria;

Íons de Lítio (Li-ion) – são as mais comuns hoje em dia, isso porque não possuem problemas com o efeito memória. Além disso, não são tóxicas.
Bateria “viciada”



A principal causa do chamado efeito memória é, sem dúvida, recarregar a bateria sem que ela tenha gasto toda sua carga ou então retirá-la da carga sem que esta esteja terminada por completo. O principal “efeito” do vício de bateria é a durabilidade reduzida da carga. Ou seja, se antes o seu celular podia ficar sem carregar por cinco dias e agora você precisa dar uma carga todo dia, pode ter certeza que a bateria do aparelho está viciada. Para maiores detalhes a respeito de baterias leia o artigo: “Baterias: tudo o que você precisa saber sobre elas”. Nos celulares da Nokia, por exemplo, é indicado que as três primeiras cargas na bateriam sejam de 8 horas. Já para os aparelhos da LG e Motorola, basta que a mensagem “Carga completa” apareça na tela.



Veja abaixo o tempo de carga para as marcas de celulares mais comuns no mercado:

• Nokia: 3x de 8 horas;
• Samsung: 1x de 4 horas;
• Gradiente: 3x de 4 horas;
• LG e Motorola: Até a mensagem "Carga completa" ser mostrada;

• Sony Ericsson: 1x 3 horas;

• Benq Siemens: 1x de 10 horas.


Vale lembrar que o celular deve estar desligado enquanto carrega, pelo menos na primeira carga da bateria. Também não é indicado retirar o aparelho da tomada, interrompendo assim o carregamento. A melhor coisa a se fazer em situações assim é ler o manual do aparelho. Algumas empresas disponibilizam versões mais atualizadas dos livretos explicativos em suas páginas na internet e você pode acessar tudo gratuitamente.


Por: Elaine Martins da Silva

IE8 continua em alta

Postador por Francisco Coelho



Essa semana a Net Applications publicou seu relatório de Janeiro sobre o market share dos navegadores.

O relatório mostra que o Internet Explorer 8 não é apenas o navegador mais utilizado na plataforma Windows, com 27,9%, mas é também o navegador mais utilizado em todos os sistemas operacionais, com 25,6% de uso no mundo.
O Internet Explorer 8 foi lançado há menos de um ano e o produto foi adotado rapidamente pelos usuários, tornando-o o navegador mais popular do mundo.



Por Fernando Souza Filho

Google paga recompensa por bugs no Chrome e Chromium

Postador por Francisco Coelho



Aberta a temporada de caça aos bugs


Google anunciou aberta a temporada de caça aos bugs do Chromium, o projeto opensource que serve como base para seu navegador, o Chrome — e podemos inferir que o Chromium tem também imensa importancia também em seu sistema operacional, o Chrome OS. E a empresa não está procurando bem-feitores sem segundas intenções, ela pretende pagar: US$ 500 (cerca de R$ 950) por bug denunciado, ou até US$ 1.337 ( cerca de R$ 2.500). (Curiosidade geek: o valor escolhido é em referência à palavra “leet”.)

O anúncio foi feito através deu um post no blog oficial do Chromium, onde Chris Evan, da equipe de segurança do Google Chrome, escreveu: “Quanto mais pessoas envolvidas em inspecionar o código e comportamento do Chromium, mais seguros nossos milhões de usuários ficarão.” Evans também parabeniza a Mozilla por manter há bastante tempo um programa similar de grande sucesso. Interessados devem consultar o post citado para maiores detalhes.


Fonte: Juarez Lencioni Maccarini

Nokia faz testes com modem 4G

Postador por Francisco Coelho



A Nokia anunciou que está realizando seus testes com o modems 4G. O aparelho, chamado de Internet Modem RD-3, é baseado na tecnologia LTE (Long Term Evolution), próxima geração de redes de banda larga no celular que deve chegar ao consumidor final em 2010.



A fabricante finlandesa faz parte do consórcio que desenvolve as tecnologias para o LTE. O teste do modem será feito com a infraestrutura já existente de diversos outros fabricantes usados pelas operadoras, para garantir que tudo funcione direito. Segundo a Nokia, o RD-3 é compatível com redes já existentes, como GSM/EDGE (2G) e WCDMA/HSPA (3G) e funciona nas diferentes frequências usadas pelas redes LTE. As definições do padrão LTE prometem velocidades de download de pelo menos 100 Mb/s e upload de 50 Mb/s no celular.


Fonte: Zumo Notícias

Tecla Windows: veja do que ela é capaz

Postador por Francisco Coelho

Pouco utilizada pela maioria, tecla Windows pode facilitar a sua navegação.


IPV6: O novo sistema de numeração do seu IP

Postador por Francisco Coelho

Sistema comporta inúmeros computadores, servidores e endereços virtuais

www.nomedosite.com.br. Você já está acostumado com essa nomenclatura na rede. Mas o que você talvez não saiba é que para cada nome de site, existe um número correspondente. Todo endereço, em letras, tem um irmão numérico. E cada computador, inclusive o da sua casa, tem um número único a partir do momento em que ele se conecta à internet. É o tal do IP. O sistema que gerencia tudo isso é chamado IPV4. São nove dígitos que, combinados, conseguem suportar cerca de 4 bilhões de endereços.

Pablo Hinojosa,manager da Icann na América Latina, explica "Os endereços de internet tem uma função que se chama “unicidade” e que é uma única direção para não se chegar a um lugar errado. Cada computador tem um número assimilável na rede e esse número tem que ser único. Esse sistema de direção assimila o número na forma de blocos, primeiro regionalmente, depois a grandes operadoras e depois aos usuários.

Mas com o crescimento exponencial da internet, esses números IPV4 estão chegando ao fim. A expectativa é de que já não exista mais disponibilidade a partir de julho de 2011. Então para que a internet continue crescendo e se desenvolvendo, foi necessário criar um outro sistema de numeração. Daí surgiu o IPV6, que comporta muito mais computadores, servidores e endereços web. Ao invés dos 4 bilhões de números, ele agora comporta uma quantidade que nem nós sabemos falar: são 3,4x10 elevado à 38ª. Potencia, ou seja: 34 seguido de 37 zeros!

O tamanho atual das direções de IPV4, imagine que cabe em um IPod ou em um telefone celular. Já a comparação do tamanho das direções do IPV6, seria como do tamanho do planeta Terra. Então, são com essas diferenças de tamanhos que estamos lidando e o IPV6 nós dará a direção por muitos anos mais.

Pense que, em breve, até mesmo a sua geladeira e o seu microondas estarão conectados à rede e cada um deles também terá o seu número IP. Nesta nova realidade, a ampla disponibilidade de endereços se torna imprescindível. Todos os novos sistemas operacionais já comportam este padrão. Apesar de ser algo invisível aos olhos dos leigos, é bom você saber que, existem uma série de processos complexos por trás de uma interface amigável.


Fonte: Olhar Digital

Acessando Banco de Dados em Java (PARTE 3)

Postador por Alisson Cruz

A interface Connection Como o exemplo anterior (Acessando Bancos de Dados em Java - PARTE 2) demonstrou, as interfaces fundamentais para obter acesso a um repositório de dados em Java são:
1. Connection
2. Statement e suas variantes: PreparedStatement e CallableStatement
3. ResultSet


A Interface Connection é responsável por manter a conexão estabelecida com o repositório de dados através da chamada a DriverManager.getConnection(). A interface Connection tem 3 responsabilidades essenciais: criar ou preparar statements (sentenças SQL), executar o controle de transações com o repositório e criar objetos DatabaseMetaData, que permitem pesquisar dinamicamente que capacidades estão presentes no repositório de dados. Recapitulando, vimos que a API JDBC usa o padrão de chamada FactoryMethod, para possibilitar que a criação dos diversos objetos de controle de uma transação com um repositório de dados seja adiada para o momento da execução, após o JDBC Driver que possibilita o acesso ser registrado em DriverManager. Desta forma, cada objeto na cadeia de execução de JDBC cria o seu sucessor na cadeia. Ou seja:
DriverManager -> Connection -> Statement (ou variantes) -> ResultSet

Connection pode criar Statement, PreparedStatement e CallableStatement através de um conjunto de chamadas:

createStatement() -> cria uma instância de Statement para execução de SQL no repositório

createStatement(tipo de cursor, concorrência) -> idem ao anterior, especificando o tipo de cursor a criar e o nivel de concorrência da conexão.

Antes da versão 2.0, só se podia conectar um banco de dados JDBC com cursores unidirecionais. Isto é, uma aplicação que lia a linha 1 e em seguida a linha 2 da tabela não podia retornar à linha 1 sem estabelecer um novo result set. A partir da versão 2, se o repositório de dados suportar esta característica, podemos estabelecer cursores bidirecionais de dois tipos: sensiveis, em que as alterações havidas previamente na linha são refletidas na releitura, ou insensíveis, em que as alterações havidas na linha não se refletem na releitura. O tipo de cursor que o repositório suporta é uma informação retornada por DatabaseMetadata.

O controle de transações compreende basicamente 3 grupos de funções:

getAutoCommit() e setAutoCommit(boolean toSet) -> permitem examinar ou definir que cada solicitação ao banco tenha commit imediato.

getTransactionIsolation() e setTransactionIsolation(int transIso) -> permitem examinar ou definir com que tipo de isolamento de transações aquela conexão deve operar.

commit() e rollback() -> se o banco não está em modo autocommit, commit confirma a transação no banco enquanto que rollback cancela as alterações da transação.

Um grupo de funções pouco explorado da interface Connection é o grupo que trata de ResultSets read-only, composto das funções isReadOnly() e setReadOnly(boolean setRead). Estas funções permitem estabelecer trancas de apenas leitura no banco de dados, evitando que o banco seja saturado por trancas de escrita (trancas de bloqueio), o que permite uma maior concorrência no acesso ao banco.

Acessando Banco de Dados em Java (PARTE 2)

Postador por Alisson Cruz

No artigo passado, mostramos o primeiro exemplo de acesso a um banco de dados com JDBC. Neste artigo começaremos a explicar alguns motivos implementados no padrão utilizando o exemplo do artigo passado. O que nos chama a atenção logo de cara é que o código JDBC não se assemelha ao que o programador iniciante em Java está acostumado. Por exemplo, fazemos:

Connection con = DriverManager.getConnection(parametros da conexão);  ao invés de 
Connection con = new Connection();  


JDBC é um padrão onde está definida uma estrutura geral de acesso ao driver de banco de dados através de interfaces e o fornecedor se encarrega de implementar as classes que concretamente vão realizar o serviço. Ora, cada fornecedor tem o seu driver específico, construído como uma classe JDBC. A chamada à função forName(classe) registra a classe nomeada na JVM corrente:


Quote:
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").getInstance(); o Sun JDBC-ODBC bridge 



Quote:
Class.forName("COM.ibm.db2.jdbc.net.DB2Driver").newInstance(); para o IBM DB2 


podemos ainda utilizar o método registerDriver da classe DriverManager para isso:

Quote:
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver()); para o Oracle 8i 



O comportamento do driver JDBC é uma incógnita. Depende sobretudo da arquitetura de acesso oferecida pelo banco de dados. Por exemplo, alguns bancos de dados vão exigir uma conexão com um cliente local. Outros utilizam arquivos de configuração. Para tratar com as diferenças entre os diversos produtos, DriverManager utiliza o padrão Factory Method para instanciar Connection.

Este padrão é utilizado por todas as interfaces de JDBC. 
Por exemplo:

Connection con = DriverManager.getConnection("jdbc:odbc:meusCdsDb","conta","senha");  
  
Statement stm = con.createStatement();  
  
ResultSet rs = stm.executeQuery(alguma query SQL);  


O problema é simplesmente este: não sabemos, em tempo de compilação, qual a estrutura de classe terá a classe do driver que DriverManager irá carregar. Isto é feito dinamicamente, no momento em que o driver é registrado com DriverManager. Usando o padrão FactoryMethod a necessidade de verificar a estrutura do driver estaticamente é transformada numa chamada padrão de função que pode ser realizada em tempo de execução. As classes que implementam concretamente essas interfaces no DB2, por exemplo, são DB2Connection, DB2Statement e DB2ResultSet e estão presentes no pacote db2java.zip. 

Para os programadores migrados de outros padrões, este padrão é equivalente, no mundo dos objetos, às funções callback, tão comuns nos SDKs do Windows. A diferença é que um callback registra uma função a ser chamada. O FactoryMethod cria um objeto.

Se você deseja saber mais sobre o padrão FactoryMethod, recomendo "Design Patterns: Principles
of Reusable Object Oriented Software" de Erich Gamma e outros.

Java Morrendo ??

Uma pergunta lançada numa lista de discussão nos ultimos dias me deixou realmente intrigado. Alguém afirmou que a Microsoft estava parando o desenvolvimento em Java (provavelmente devido à recente decisão judicial no caso Sun X Microsoft) e perguntou se por causa disso Java não estaria morrendo. A resposta (que continua sendo postada) foi um sonoro NÃO. Os argumentos variaram desde os motivos religiosos, tipo "M$ Jamais", até decisões bem pensadas tipo "...adivinhe quantas companhias estão desenvolvendo uma JVM para a plataforma Wintel neste momento ?". Eu tenho minha humilde opinião a respeito.

A aceitação e compromisso do mercado em relação a Java deve-se a diversos fatores:

1. Claramente há uma profunda mudança de visão sobre como construir sistemas em andamento no mercado. O modelo cliente-servidor apoiado na plataforma Wintel é dispendioso, difícil de manter e não se ajusta às necessidades do mundo Internet. Irá desaparecer ? Não, certamente que não, mas irá sendo posicionado num nicho ao invés de ser utilizado como uma solução universal. O modelo Internet veio para ficar e mandar.

2. Java permite economia em escala quando seu modelo de portabilidade é bem utilizado. Mesmo em ambientes com padrões públicos e conhecidos, como C++, portar código é um desafio. Em outros ambientes ainda mais populares e mais conhecidos, portar código varia entre o impossível e o pesadelo. Empresas como a PointBase, de bancos de dados pervasivos, estão, nas palavras de seu CEO: "...empregando mais engenheiros de portabilidade de código que a Oracle, sem gastar um tostão na folha de pagamentos com isso. Onde estão eles ? Na Sun, Na IBM, Na HP..." (JDJ dez/2002). 

3. Players pesados estão jogando neste mercado. Nomes como IBM, Oracle, HP, Inprise, (que, ao que parece, agora vai com tudo para o mercado Linux), o Apache.org e a própria Sun, para citar alguns, deixam o desenvolvedor e o empresário bastante tranqüilos quanto a seu futuro. Linux ainda é incipiente em relação a Java, mas a oferta de JVMs da IBM parece estar surtindo efeito também nesta plataforma.

4. XML vem com um modelo de representação de informação que, pela primeira vez, oferece um meio a baixo custo de expressar estruturas de dados complexas com a certeza de que serão lidas onde quer que sejam necessárias. A portabilidade dos dados demanda portabilidade do código para sua interpretação, pois, como dito no item dois, manter portabilidade custa caro. Java tem uma proposta bastante interessante neste campo.

Portanto, Java já ultrapassou a fronteira de sustentação que separa produtos de plataformas. O máximo que pode acontecer agora, IMHO, é a linguagem se estabelecer num nicho e aí ficar para sempre. Lembram do velho e bom FORTRAN ? Passa muito bem, obrigado.

Acessando banco de dados em Java (Parte 1)

Postador por Alisson Cruz

Acessando banco de dados em Java (Parte 1)

Uma funcionalidade essencial em qualquer sistema é a habilidade para comunicar-se com um repositório de dados. Podemos definir repositório de dados de várias maneiras, por exemplo, como um pool de objetos de negócio num ORB ou um banco de dados. Bancos de dados constituem o tipo mais comum de repositório. Java dispõe de uma API para acessar repositórios de dados: a Java DataBase Connectivity API ou JDBC API. A JDBC implementa em Java a funcionalidade definida pelo padrão SQL Call Level Interface ou SQLCLI. Um outro exemplo de API que implementa o SQL Call Level Interface é o popularíssimo ODBC das plataformas Wintel. A maioria dos fornecedores de bancos de dados oferece uma implementação particular de SQLCLI. A vantagem de JDBC é a portabilidade da aplicação cliente, inerente da linguagem Java. A especificação corrente da JDBC API é a 2.1. 


 
A JDBC compreende uma especificação para ambos: os desenvolvedores de drivers JDBC e os desenvolvedores de aplicações clientes que precisem acessar bancos de dados em Java. Estaremos dando uma olhada no desenvolvimento de aplicações em Java, então, é uma boa idéia começar com o suporte de dados. 

Existem 4 tipos de diferentes de drivers JDBC (para uma lista de fornecedores por especificação e tipo, vide http://www.javasoft.com/products/jdbc/drivers.html ):

- Uma vez que ODBC é uma especificação padrão do mundo Wintel, o tipo 1 é um driver de ponte entre Java e ODBC. O driver de ponte mais conhecido é o fornecido pela Sun o JDBC-ODBC bridge. Este tipo de driver não é portável, pois depende de chamadas a funções de ODBC implementadas em linguagem C e compiladas para Wintel, ou outra plataforma ODBC compatível, as chamadas funções nativas.

- O driver tipo 2 é implementado parcialmente em Java e parcialmente através de funções nativas que implementam alguma API específica do fornecedor de banco de dados. Este tipo faz o que se chama de wrap-out, ou seja, provê uma interface Java para uma API nativa não-Java.

- O tipo 3 é um driver totalmente Java que se comunica com algum tipo de middleware que então se comunica com o banco de dados

- O tipo 4 é um driver totalmente Java que vai diretamente ao banco de dados.

Numa próxima parte veremos ainda um driver gratuito que permite acessar bancos de dados que ofereçam suporte apenas ao Bridge (tipo 1) via rede. Veremos a seguir como acessar um banco de dados através de JDBC. Nosso cenário básico é uma pequena aplicação de controle dos meus CDs (clássica !) implementada em algum xBase compatível. Em próximos exemplos iremos utilizar outros bancos de dados.
Para utilizarmos a JDBC num programa em Java, precisamos declarar o pacote que contém a JDBC API:


Acessando bancos de dados em JDBC

import java.sql.*;  


A primeira coisa a fazer é estabelecer uma conexão com o banco de dados. Fazemos isso em dois passos: primeiro carregamos o driver para o banco de dados na JVM da aplicação (1). Uma vez carregado, o driver se registra para o DriverManager e está disponível para a aplicação. Utilizamos então a classe DriverManager para abrir uma conexão com o banco de dados (2). A interface Connection designa um objeto, no caso con, para receber a conexão estabelecida:



try //A captura de exceções SQLException em Java é obrigatória para usarmos JDBC.  
{  
  // Este é um dos meios para registrar um driver  
  Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").getInstance();  
   
  // Registrado o driver, vamos estabelecer uma conexão  
  Connection con = DriverManager.getConnection("jdbc:odbc:meusCdsDb","conta","senha");  
}  
catch(SQLException e)  
{  
  // se houve algum erro, uma exceção é gerada para informar o erro  
  e.printStackTrace(); //vejamos que erro foi gerado e quem o gerou  
}  




Estabelecida a conexão, podemos executar comandos SQL para o banco de dados. Vejamos como realizar uma consulta sobre o título, numero de faixas e o artista de cada CD no banco de dados. Podemos usar 3 interfaces para executar comandos SQL no banco de dados. A primeira delas é a interface Statement, que permite a execução dos comandos fundamentais de SQL (SELECT, INSERT, UPDATE ou DELETE). A interface PreparedStatement nos permite usufruir de SQL armazenado ou pré-compilado no banco, quando o banco de dados suportar este recurso. A terceira interface é CallableStatement, e permite executar procedimentos e funções armazenados no banco quando o banco suportar este recurso. Vejamos como utilizar a interface Statement. Nos próximos artigos sobre JDBC iremos investigar as outras. 


// Após estabelecermos a conexão com o banco de dados  
// Utilizamos o método createStatement de con para criar o Statement  
Statement stm = con.createStatement();  
  
// Vamos executar o seguinte comando SQL :  
String SQL = "Select titulo, autor, total_faixas from MeusCDs";  



A interface ResultSet permite colher os resultados da execução de nossa query no banco de dados. Esta interface apresenta uma série de métodos para prover o acesso aos dados: 


// Definido o Statement, executamos a query no banco de dados  
ResultSet rs = stm.executeQuery(SQL);  
  
// O método next() informa se houve resultados e posiciona o cursor do banco  
// na próxima linha disponível para recuperação  
// Como esperamos várias linhas utilizamos um laço para recuperar os dados  
while(rs.next())  
{  
  // Os métodos getXXX recuperam os dados de acordo com o tipo SQL do dado:  
  String tit = rs.getString("titulo");  
  String aut = rs.getString("autor");  
  int totalFaixas = rs.getInt("total_faixas");  
  
  // As variáveis tit, aut e totalFaixas contém os valores retornados  
  // pela query. Vamos imprimí-los  
  
  System.out.println("Titulo: "+tit+" Autor: "+aut+" Tot. Faixas: "+totalFaixas);  
}  




E nosso acesso está terminado. O importante agora é liberar os recursos alocados pelo banco de dados para a execução deste código. Podemos fazer isso fechando o Statement, que libera os recursos associados à execução desta consulta mas deixa a conexão aberta para a execução de uma próxima consulta, ou fechando diretamente a conexão, que encerra a comunicação com o banco de dados. Para termos certeza de que vamos encerrar esta conexão mesmo que uma exceção ocorra, reservamos o fechamento para a cláusula finally() do tratamento de exceções. 



finally  
{  
  try  
  {  
  con.close();  
  }  
  catch(SQLException onConClose)  
  {  
  System.out.println("Houve erro no fechamento da conexão");  
  onConClose.printStackTrace();  
  }  
}  





Uma classe para listar uma tabela

Vamos colocar tudo isso em conjunto para termos uma visão em perspectiva:

package wlss.jdbcTutorial;  
   
  import java.sql.*;  
  
  class Exemplo1  
  {  
   
  public static void main(String args[])  
  {  
  
   
  // A captura de exceções SQLException em Java é obrigatória para usarmos JDBC.  
  // Para termos acesso ao objeto con, ele deve ter um escopo mais amplo que o bloco try  
   
  Connection con = null;  
  
  try  
  {  
  // Este é um dos meios para registrar um driver  
  Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").getInstance();  
   
  // Registrado o driver, vamos estabelecer uma conexão  
  con = DriverManager.getConnection("jdbc:odbc:meusCdsDb","conta","senha");  
  
  // Após estabelecermos a conexão com o banco de dados  
  // Utilizamos o método createStatement de con para criar o Statement  
  Statement stm = con.createStatement();  
   
  // Vamos executar o seguinte comando SQL :  
  String SQL = "Select titulo, autor, total_faixas from MeusCDs";  
  
  // Definido o Statement, executamos a query no banco de dados  
  ResultSet rs = stm.executeQuery(SQL);  
   
  // O método next() informa se houve resultados e posiciona o cursor do banco  
  // na próxima linha disponível para recuperação  
  // Como esperamos várias linhas utilizamos um laço para recuperar os dados  
  while(rs.next())  
  {  
  
  // Os métodos getXXX recuperam os dados de acordo com o tipo SQL do dado:  
  String tit = rs.getString("titulo");  
  String aut = rs.getString("autor");  
  int totalFaixas = rs.getInt("total_faixas");  
  
  // As variáveis tit, aut e totalFaixas contém os valores retornados  
  // pela query. Vamos imprimí-los  
  
  System.out.println(48:"Titulo: "+tit+" Autor: "+aut+"49: Tot. Faixas: "+totalFaixas);  
  }  
  
  }  
  catch(SQLException e)  
  {  
  // se houve algum erro, uma exceção é gerada para informar o erro  
  e.printStackTrace(); //vejamos que erro foi gerado e quem o gerou  
  }  
  finally  
  {  
  try  
  {  
  con.close();  
  }  
  catch(SQLException onConClose)  
  {  
  System.out.println("Houve erro no fechamento da conexão");  
  onConClose.printStackTrace();  
  }  
  } // fim do bloco try-catch-finally  
  } // fim da main  
   
  } // fim de nosso primeiro exemplo !  




Computação nas Nuvens: O futuro.

Postador por Alisson Cruz

Nos próximos anos deveremos ouvir muito os termos “computação nas Nuvens “, “cloud computing ” e SaaS – Software-as-a-Service “. O conceito é claro, cada vez mais as informações estarão disponíveis e mais pessoas terão acesso a essas informações, graças à disponibilização de muitos serviços on-line, muitos gratuitamente, e que devem baratear o preço dos computadores, inclusive, aumentando a presença on-line de pequenas empresase fornecedores de serviços.

O conceito não é novo para quem trabalha com internet, mas ganha cada vez mais destaque com declarações da Google estar trabalhando na sua “computações nas Nuvens”. O termo refere-se à possibilidade de utilizarmos computadores menos potentes que podem se conectar à Web e utilizar todas as ferramentas on-line, seguindo o exemplo que o Google propõe com o Google Docs, Gmail e tantas outras aplicações. Assim, o computador seria simplesmente uma plataforma de acesso às aplicações, que estariam em uma grande nuvem – a Internet.
Vale lembrar, que como o termo não é nada novo, já existem vários sites que são praticamente sistemas operacionais on-line, além de muitos serviços que disponibilizam ferramentas fantásticas on-line. Exemplo recente da Adobe, que disponibilizou uma versão on-line do Photoshop.

O preço dos computadores cairá?

Computadores terão o preço reduzido, cada vez mais o preço das máquinas cairá devido ao fato de que um computador para acessar a internet não necessita de muitos recursos, basta ter um processador simples, um pouco de memória que você estará satisfeito com o resultado, com isto, você terá mais mobilidade, pois os celulares da nova geração (3G) tem acesso à internet, e você poderá acessar os seus arquivos e documentos de qualquer lugar através da conexão a internet oferecida por seu celular.

Os sistemas operacionais

Com esta nova tendência quem ganhará força será o sistema operacional LINUX, pois com a pouca necessidade de recursos, a maior sendo um browser, fará com que grandes empresas como Microsoft comecem a ter preocupações quanto a seu futuro. Há grande necessidade de se estar conectado fará com que softwares como sistemas operacionais e outros tendam a migrar para a internet, tornando o “desktop” de sua máquina online, e assim os sistemas que estarão rodando nas máquinas sejam apenas para suportar seu browser.

Mobilidade

Eis a palavra do futuro da computação. Você terá tudo ao seu alcance.

Brasil recebe conferência sobre padronização na web

Postador por Francisco Coelho

O W3C (Consórcio World Wide Web), entidade com escritório brasileiro baseado na sede do Comitê Gestor da Internet no Brasil (CGI.br), realizará em 23 e 24 de novembro deste ano, em São Paulo, a 1ª Conferência Web W3C Brasil.



O evento, que deve receber 400 profissionais da área e ainda trazer convidados brasileiros e internacionais, promoverá debates e discussões sobre a evolução da web, a padronização de suas tecnologias e seu impacto na sociedade e cultura.

Diversos temas relacionados a tendências da web estarão presentes no evento. A programação incluirá abordagens sobre o benefício imediato e futuro do uso de padrões; acessibilidade e usabilidade; web semântica; mecanismos de busca; mobilidade; governo eletrônico; segurança e privacidade; modelos de negócios; redes sociais e computação em nuvem - cloud computing.
"Queremos reunir a comunidade atuante em tecnologias web para discutir como torná-la universal conforme o princípio do W3C: web para todos, em qualquer dispositivo, lugar, língua e cultura. Será ainda uma oportunidade para mostrar às organizações os benefícios do uso de padrões e apresentar os mais recentes como o HTML 5 e CSS 3", disse Vagner Diniz, gerente do W3C Brasil.
Pesquisadores, desenvolvedores, usuários, empresas, agências digitais e mídias farão parte do público participante da conferência e podem submeter ao W3C temas e trabalhos para serem inclusos na programação do evento.
O evento ocorre no Hotel Blue Tree Towers Morumbi, em São Paulo. Mais informações podem ser obtidas no site www.w3c.br.



Fonte: Terra