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();
}
});
}
}


