DB2 Express-C é um banco de dados relacional que pode ser usado para armazenar, usar e modificar dados. O Java Database Connectivity (JDBC) padrão é usado por aplicativos Java para acesso e manipulação de dados em bancos de dados relacionais.
JDBC é um protocolo de acesso de banco de dados que permite que você se conecte a um banco de dados e execute instruções SQL e consultas no banco de dados. As bibliotecas de classe do núcleo de Java fornecem as APIs JDBC, java.sql e javax.sql. No entanto, JDBC é projetado para permitir que os vendedores forneçam drivers que oferecem a especialização necessária para um banco de dados específico.
String de Conexão
Em computação, uma string de conexão, é uma cadeia de caracteres que especifica informações sobre uma fonte de dados e os meios de conexão com ela. É passado o código para um controlador (driver) ou provedor subjacente com o objetivo de se iniciar a conexão. Apesar de comumente ser usado para conexão de banco de dados, a fonte de dados também pode ser uma planilha eletrônica ou um arquivo de texto.
DB2: //localhost:50000/sample (//servidor:porta/banco de dados)
Configurando Driver JDBC DB2
Para usar o driver JDBC para DB2 você pode adiciona-lo em seu projeto, clicando com o botão direito do mouse em cima do nome do projeto e escolhendo a opção propriedades, adicione o arquivo de driver na biblioteca do seu projeto usando a opção Add External JAR, a figura abaixo ilustra como efetuar este procedimento na IDE Eclipse:
Diretório: C:\Program Files\IBM\SQLLIB\java
Driver:
- db2jcc.jar
- db2jcc_license_cu.jar
The Derby network
O cliente da rede do Derby fornece conectividade de rede para o Derby Network Server. O IBM DB2 utiliza um driver universal que pertence a Apache Derby.
Exemplo:
Neste exemplo usamos o driver JDBC DB2 para efetuar uma conexão no banco de dados, para criar o banco de dados você pode usar nosso walkthrough de como instalar as o banco de dados IBM DB2 Express-C e a ferramenta IBM Data Studio.
Java
import java.awt.BorderLayout; import java.awt.Container; import java.awt.Dimension; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.sql.*; 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.JPasswordField; import javax.swing.JTextField; public class ConexaoDb2 implements ActionListener { // Declara componentes private JLabel ltitulo; private JLabel lusuario; private JLabel lsenha; private JTextField tusuario; private JPasswordField tsenha; private JButton botao; private JFrame menssagem; // Declara objetos de conexão private Connection conn; private Statement query; public Container criaPainel() { // Cria painel principal JPanel painel = new JPanel(); painel.setLayout(new BorderLayout()); painel.setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20)); // Cria componente titulo ltitulo = new JLabel("DB2 Express-C: net://localhost:50000/deva"); painel.add(ltitulo, BorderLayout.PAGE_START); // Cria painel de usuario JPanel painelDados = new JPanel(new GridLayout(0, 2, 10, 10)); // Cria componentes de usuario lusuario = new JLabel("Digite seu Usuario: "); lsenha = new JLabel("Digite sua Senha: "); tusuario = new JTextField(); tsenha = new JPasswordField(); // Define tamanho dos campos tusuario.setPreferredSize( new Dimension(120, 20)); tsenha.setPreferredSize( new Dimension(120, 20)); // Adiciona componentes no grid do painel painelDados.add(Box.createVerticalStrut(10)); painelDados.add(Box.createVerticalStrut(10)); painelDados.add(lusuario); painelDados.add(tusuario); painelDados.add(lsenha); painelDados.add(tsenha); painelDados.add(Box.createVerticalStrut(10)); painelDados.add(Box.createVerticalStrut(10)); // Cria botão botao = new JButton("Conectar"); botao.addActionListener(this); // Adiciona componentes no painel principal painel.add(painelDados); painel.add(botao, BorderLayout.PAGE_END); return painel; } public static void criaGUI() { // Cria formulario JFrame formulario = new JFrame("DB2 Express-C"); formulario.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // cria classe da conexão ConexaoDb2 conectar = new ConexaoDb2(); // Define painel formulario.setContentPane(conectar.criaPainel()); formulario.pack(); // Mostra aplicação formulario.setVisible(true); } public void conectar(String login, String senha) { try { // Define Driver de conexão JDBC thin Class.forName("com.ibm.db2.jcc.DB2Driver"); conn = DriverManager.getConnection("jdbc:derby:net://localhost:50000/deva", login, senha); //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(); } } public void actionPerformed(ActionEvent arg0) { // Verfica tamanho da senha char[] tamanho = tsenha.getPassword(); if (tamanho.length == 0) { JOptionPane.showMessageDialog(menssagem, "Digite uma senha!"); } else { // recupera senha do Java Password Field String psenha = new String(tsenha.getPassword()); //Cria conexão ConexaoDb2 conecta= new ConexaoDb2(); conecta.conectar(tusuario.getText() , psenha); } } public static void main(String[] args) { javax.swing.SwingUtilities.invokeLater(new Runnable() { public void run() { // Cria e exibe GUI criaGUI(); } }); } }