Esta apresentação integra o conjunto de materiais didáticos do curso a distância Desenvolvimento de Aplicativos Desktop em Java Aplicando Padrões de Projeto.
2. Apresentação Esta apresentação integra os materiais didáticos do curso a distância Desenvolvimento de aplicativos desktop em Java aplicando padrões . Nesta apresentação é visto como executar instruções SELECT, INSERT, UPDATE e DELETE a partir de aplicativos Java usando JDBC. Para saber mais sobre este curso, acesse http://ead.antoniopassos.net . Atenciosamente, Prof. Antonio Passos
3. Estabelecendo conexão com o banco de dados usando DriverManager 1)Carrega-se o driver do banco de dados String driver = "org.h2.Driver"; Class.forName("driver"); 2)Abre-se a conexão com o banco String url = "jdbc:h2:tcp://localhost//db/dukeclube/dukeclube"; String usuario = "admin"; String senha = "adminadmin"; Connection con = DriverManager.getConnection(url, usuario, senha);
4. Extraindo dados do banco de dados a)Obter um objeto PreparedStatement String sql = "SELECT * FROM socio WHERE codigo = ?"; PreparedStatement stmt = com.prepareStatement(sql); b)Atribuir valores aos parâmetros da instrução SQL long codigo = socio.getCodigo(); stmt.setLong(1, codigo); c)Executar o comando ResultSet rs = stmt.executeQuery(); d)Percorrer e tratar o resultado while(rs.next()){ String nome = rs.getString(2); System.out.println("Sócio: " + nome); }
5. Alterando dados do banco de dados a)Obter um objeto PreparedStatement String sql = "INSERT INTO socio (nome, sobrenome) VALUES (?, ?)"; PreparedStatement stmt = com.prepareStatement(sql); b)Atribuir valores aos parâmetros da instrução SQL String nome = socio.getNome(); String sobrenome = socio.getSobrenome(); stmt.setString(1, nome); stmt.setString(2, sobrenome); c)Executar o comando stmt.executeUpdate();
6. Exemplos No console do H2, forneça as informações da figura e clique em Conectar para criar o banco de dados sampledb . Crie a tabela socio com o comando SQL abaixo. CREATE TABLE socio (codigo identity, nome varchar, idade int)
9. Referência bibliográfica PLEW, Ronald R. & STEPHENS, Ryan K. Aprenda em 24 SQL . Rio de Janeiro: Campus, 2000. DEITEL, H. M. Java: como programar . São Paulo: Pearson Education do Brasil, 2005. HORSTMANN, Cay. Big Java . Porto Alegre: Bookman, 2004.
Notas do Editor
Esta apresentação faz parte dos materiais didáticos do curso a distância Desenvolvimento de Aplicativos Desktop Utilizando Padrões . Nela veremos como obtém-se conexão com banco de dados relacionais usando JDBC para que seja possível realizar consultas e manipular seus dados.
O curso a distância Desenvolvimento de Aplicativos Desktop Utilizando Padrões é oferecido gratuitamente e tem por objetivos capacitar estudantes e profissionais de TI a... Projetar aplicativos desktop estruturados em camadas; Aplicar padrões de projeto na solução de aplicativos desktop; Construir aplicativos desktop usando a linguagem Java, a IDE NetBeans e o banco de dados H2.
Pode-se obter uma conexão com um banco de dados de duas formas. A primeira é usando o DriverManager. Para tanto, deve-se carregar o driver do banco de dados e, em seguida, abrir-se a conexão propriamente dita. Para que seja possível carregar o driver do banco de dados, ou seja, criar uma instância do driver e a registrar junto ao DriverManager, adiciona-se o driver ao diretório libext do JRE ou no caminho de classe do aplicativo ao executar o aplicativo ou ainda às bibliotecas do aplicativo. A conexão com o banco de dados é obtida pela chamada ao método static getConnection de DriverManager passando-se para ele o endereço do banco de dados e o par usuário/senha de acesso.
Objetos PreparedStatement são capazes de submeter instruções SQL para o banco de dados. Para obtê-los, chama-se o método prepareStatement de Connection passando como argumento a instrução SQL que se quer executar. Quase sempre, a instrução SQL passada para o método prepareStatement contém parâmetros. Para atribuir valores a eles, usamos os métodos setters de PreparedStatement. A cada tipo primitivo corresponde um método setXXX. Por exemplo, setBoolean, setInt, setDouble. Há também métodos set para tipos Blob, Date, Timestamp, etc. Após configurarmos os parâmetros da instrução SQL, podemos executá-la. Para tanto, no caso da instrução SQL ser uma instrução SELECT, chama-se o método executeQuery do objeto PreparedStatement. O método executeQuery retorna um objeto ResulSet com o resultado da consulta SQL. Para percorrer e processar os registros retornados, usa-se, em geral, uma instrução while. O método next posiciona o cursor do ResultSet na primeira linha do ResulSet. Se houver linhas, obtém-se os valores das coluna do ResultSet invocando métodos getXXXs, onde XXX corresponde a tipos Java específicos. Por exemplo, getLong, getString, getDate etc
Por alterar, aqui, entende-se incluir, atualizar ou excluir registros. Ou seja, executar uma das instruções DML: INSERT, UPDATE ou DELETE. No exemplo, vê-se como executar uma instrução INSERT. Primeiro, obtém-se um objeto PreparedStatement. Note que a instrução SQL passada como argumento contém dois parâmetros. Em seguida, atribui-se valores aos parâmetros da instrução SQL. No exemplo, o nome e o sobrenome do sócio que se quer gravar no banco de dados. O primeiro argumento de um método setXXX é a posição do parâmetro na instrução SQL. O segundo, o valor atribuído ao parâmetro. Por fim, executa-se a instrução SQL chamando-se o método executeUpdate de PreparedStatement. O método executeUpdate é o método a ser invocado sempre que a instrução SQL for uma instrução DML. Se a instrução SQL for SELECT, chama-se o método executeQuery.
Seguem exemplos que demonstram a manipulação do banco de dados acima por aplicativos Java simples.