Na linguagem de programação Java podemos utilizar a classe Statament para criar um objeto usado para executar uma instrução SQL estática e retornar os resultados produzidos.
Exemplo:
No programa abaixo utilizamos uma única query para executar as quatro operações básicas sobre diferentes bancos de dados.
Java
import java.awt.ComponentOrientation; import java.awt.Container; import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import javax.swing.BorderFactory; import javax.swing.Box; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JTextField; import javax.swing.border.Border; import javax.swing.border.EtchedBorder; public class Campos implements ActionListener { // Declara componentes private JLabel ltitulo; private JLabel lid; private JLabel lpnome; private JLabel lsnome; private JLabel lcargo; private JLabel lsalario; private JLabel lpesquisa; private JTextField tid; private JTextField tpnome; private JTextField tsnome; private JTextField tcargo; private JTextField tsalario; private JTextField tpesquisa; private JButton botao; private JButton alterar; private JButton inserir; private JButton deletar; private JButton novo; private Border borda; private JFrame menssagem; // Declara objetos de conexão private static Connection conn; private static Statement query; // Declara variaveis private static String bconexao; // Cria conexão public void conectar(String banco) { // Verifica strings de conexão // ORACLE if (banco == "oracle") { try { // Define Driver de conexão JDBC thin Class.forName("oracle.jdbc.driver.OracleDriver"); conn = DriverManager.getConnection( "jdbc:oracle:thin:@localhost:1521:xe", "daberto", "p@55w05d"); // Executa pedido SQL query = conn.createStatement(); } catch (ClassNotFoundException ex) { ex.printStackTrace(); } catch (SQLException ex) { ex.printStackTrace(); } } // DB2 if (banco == "db2") { try { // Define Driver de conexão JDBC Class.forName("com.ibm.db2.jcc.DB2Driver"); conn = DriverManager.getConnection( "jdbc:derby:net://localhost:50000/deva", "db2admin", "p@55w05d"); // Executa pedido SQL query = conn.createStatement(); // JOptionPane.showMessageDialog(menssagem, // "Conexão Efetuada com sucesso!"); } catch (ClassNotFoundException ex) { ex.printStackTrace(); } catch (SQLException ex) { // JOptionPane.showMessageDialog(menssagem, "Erro na conexão!"); ex.printStackTrace(); } } // MICROSOFT SQL SERVER if (banco == "mssql") { try { // Define Driver de conexão JDBC String URL = "jdbc:sqlserver://localhost\\SQLEXPRESS:1433;databaseName=devaberto" + ";user=devaberto;password=p@55w05d"; Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); conn = DriverManager.getConnection(URL); // Executa pedido SQL query = conn.createStatement(); } catch (ClassNotFoundException ex) { ex.printStackTrace(); } catch (SQLException ex) { ex.printStackTrace(); } } } // Retorna funcionario public ResultSet retornaFuncionarioId(String codigo) throws SQLException { // Cria uma nova conexão Statement query; query = conn.createStatement(); String sql; // Verfica banco de dados e passa script SQL sql = "Select * From FUNCIONARIOS Where ID_FUNCIONARIO = " + codigo; // Executa Script ResultSet dados = query.executeQuery(sql); // Retorna set de dados return dados; } public Container criaPainel() { // cria painel JPanel painel = new JPanel(); painel.setLayout(new FlowLayout()); painel.setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20)); painel.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT); // Cria titulo ltitulo = new JLabel("Database - Fields -Sem conexão"); painel.add(ltitulo); painel.add(Box.createVerticalStrut(60)); // Cria painel de usuario JPanel painelDados = new JPanel(new GridLayout(0, 2, 10, 10)); // Cria componentes lid = new JLabel("Código:"); lpnome = new JLabel("Primeiro Nome:"); lsnome = new JLabel("Sobrenome:"); lcargo = new JLabel("Cargo:"); lsalario = new JLabel("Salário:"); tid = new JTextField(); tpnome = new JTextField(); tsnome = new JTextField(); tcargo = new JTextField(); tsalario = new JTextField(); tid.setPreferredSize(new Dimension(150, 20)); // Adiciona componentes no painel painelDados.add(Box.createVerticalStrut(10)); painelDados.add(Box.createVerticalStrut(10)); painelDados.add(lid); painelDados.add(tid); painelDados.add(lpnome); painelDados.add(tpnome); painelDados.add(lsnome); painelDados.add(tsnome); painelDados.add(lcargo); painelDados.add(tcargo); painelDados.add(lsalario); painelDados.add(tsalario); painelDados.add(Box.createVerticalStrut(10)); painelDados.add(Box.createVerticalStrut(10)); // Cria painel de pesquisa JPanel painelPesquisa = new JPanel(new GridLayout(0, 3, 10, 10)); borda = BorderFactory.createEtchedBorder(EtchedBorder.LOWERED); painelPesquisa.setBorder(borda); // Cria pesquisas lpesquisa = new JLabel("Pesquisa código:"); tpesquisa = new JTextField(); botao = new JButton("Pesquisar"); botao.addActionListener(this); // Define foco do cursor no campo de pesquisa javax.swing.SwingUtilities.invokeLater(new Runnable() { public void run() { tpesquisa.requestFocus(); } }); // Adiciona compoentes ao painel de pesquisa painelPesquisa.add(lpesquisa); painelPesquisa.add(tpesquisa); painelPesquisa.add(botao); // Cria painel de pesquisa JPanel painelAcao = new JPanel(new GridLayout(0, 4, 10, 10)); borda = BorderFactory.createEtchedBorder(EtchedBorder.LOWERED); painelAcao.setBorder(borda); // Cria botões de manipulação de banco novo = new JButton("Novo"); inserir = new JButton("Inserir"); alterar = new JButton("Alterar"); deletar = new JButton("Apagar"); // Cria ouvintes de eventos novo.addActionListener(this); inserir.addActionListener(this); alterar.addActionListener(this); deletar.addActionListener(this); // Insere componentes em um painel painelAcao.add(novo); painelAcao.add(inserir); painelAcao.add(alterar); painelAcao.add(deletar); // Adiciona paineis painel.add(painelPesquisa); painel.add(painelDados); painel.add(painelAcao); return painel; } // Clique do botão de pesquisa public void actionPerformed(ActionEvent arg0) { // Verifica pesquisa if (arg0.getSource() == botao) { // Cria instancia de objeto Campos campos = new Campos(); // retorna result de dados try { ResultSet dados = campos.retornaFuncionarioId(tpesquisa .getText()); ltitulo.setText("Database - Fields - " + bconexao); // Preenche campos da tela while (dados.next()) { tid.setText(dados.getString("ID_FUNCIONARIO")); tpnome.setText(dados.getString("NOME")); tsnome.setText(dados.getString("SOBRENOME")); tcargo.setText(dados.getString("CARGO")); tsalario.setText(dados.getString("SALARIO")); } } catch (SQLException e) { e.printStackTrace(); } } // Botão Novo if (arg0.getSource() == novo) { tid.setText(null); tpnome.setText(null); tsnome.setText(null); tcargo.setText(null); tsalario.setText(null); javax.swing.SwingUtilities.invokeLater(new Runnable() { public void run() { tid.requestFocus(); } }); } // Insere dados if (arg0.getSource() == inserir) { String sql = "Insert into FUNCIONARIOS " + " (ID_FUNCIONARIO, NOME, SOBRENOME, CARGO, SALARIO) " + "values (" + tid.getText() + ", " + "\'" + tpnome.getText() + "\', " + "\'" + tsnome.getText() + "\', " + "\'" + tcargo.getText() + "\', " + tsalario.getText() + ")"; try { query.execute(sql); JOptionPane.showMessageDialog(menssagem, "Dados inserido com sucesso!"); } catch (SQLException e) { JOptionPane.showMessageDialog(menssagem, e.toString()); e.printStackTrace(); } } // Altera dados if (arg0.getSource() == alterar) { String sql = "Update FUNCIONARIOS SET " + "ID_FUNCIONARIO = " + tid.getText() + ", " + "NOME = \'" + tpnome.getText() + "\', " + "SOBRENOME = \'" + tsnome.getText() + "\', " + "CARGO = \'" + tcargo.getText() + "\', " + "SALARIO = " + tsalario.getText() + " " + "Where " + "ID_FUNCIONARIO = " + tpesquisa.getText(); try { query.execute(sql); JOptionPane.showMessageDialog(menssagem, "Dados alterados com sucesso!"); } catch (SQLException e) { JOptionPane.showMessageDialog(menssagem, e.toString()); e.printStackTrace(); } } // Deleta dados if (arg0.getSource() == deletar) { String sql = "Delete from FUNCIONARIOS WHERE ID_FUNCIONARIO = " + tid.getText(); try { query.execute(sql); JOptionPane.showMessageDialog(menssagem, "Dados Apagados com sucesso!"); novo.doClick(); } catch (SQLException e) { JOptionPane.showMessageDialog(menssagem, e.toString()); e.printStackTrace(); } } } public static void criaGUI() { // Cria formulario JFrame formulario = new JFrame("Desenvolvimento Aberto"); formulario.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // cria painel de conteudo Campos acesso = new Campos(); // conecta ao banco de dados defindo // mude a variavel bconexao para escolher o banco de dados // importe os drivers para o projeto // oracle = ORACLE // db2 = IBM DB2 // mssql = MSSQL Server bconexao = "oracle"; acesso.conectar(bconexao); formulario.setContentPane(acesso.criaPainel()); // Exibe o formulario formulario.setSize(400, 450); formulario.setVisible(true); } public static void main(String[] args) { javax.swing.SwingUtilities.invokeLater(new Runnable() { @Override public void run() { // Mostra GUI criaGUI(); } }); } }