domingo, 27 de abril de 2008

AGBD - Trabalho

CIDADE

· codCidade:
INTEGER NOT NULL
· nomeCidade:
VARCHAR2(60) NOT NULL
uf:
CHAR(2) NOT NULL
taxa:
NUMBER(10,2) NOT NULL

CLIENTE

· codCliente:
INTEGER NOT NULL
nomeCliente:
VARCHAR2(80)
endereco:
VARCHAR2(80)
· cidade:
VARCHAR2(60) (FK)
telefone:
VARCHAR2(15)

FRETE

CodFrete:
INTEGER NOT NULL
dataEntrega:
TIMESTAMP NOT NULL
descricao:
VARCHAR2(100) NOT NULL
· CodCliente:
INTEGER NOT NULL (FK)
· CodCidade:
INTEGER NOT NULL(FK)
· CodFuncionario:
INTEGER NOT NULL(FK)
peso:
NUMBER(10,2) NOT NULL
valor_frete:
NUMBER(10,2) NOT NULL

FUNCIONARIO

· CodFuncionario:
INTEGER NOT NULL
CPF:
VARCHAR2(11)
NOME:
VARCHAR2(60) NOT NULL
SALARIO:
NUMBER(10,2)
CNH:
VARCHAR2(11)


Criar uma aplicação Java com aceso ao Banco de Dados Oracle, seguindo as especificações do esquema anterior para a criação das tabelas.

Trata-se de um controle de fretes simplificado. A aplicação deve permitir o cadastro de todas as tabelas através de formulários elaborados em JAVA(NETBEANS), Após os cadastros crie um formulário que permite consultar os fretes por cidade, cliente ou funcionário, listando-os em uma JTable, conforme o modelo:
Exibir no final o valor total de frete para aquela Consulta

CONSULTA FRETES
Código para Consulta

·Cliente ·Cidade ·Funcionario
CONSULTAR
CODFRETE
Descricao
DATAENTREGA
...
VALOR















Valor Total do Frete


Data de Entrega
No dia da prova final de AGBD

FORMATO: CD contendo a pasta do projeto, que deverá ter o seguinte nome:

-JavaOracleFrete_NOME_RA
-Scripts para criação do BD

O trabalho valerá até 1 ponto na Média Final

.: Media = TI * 4 + P * 6
____________
10

Media Final = Media + NotaTrabalho

TRATAR ERRO NOT NULL DOS CAMPOS(FK), não permitir que apareça a msg de erro do SGBD para o usuário.

sábado, 19 de abril de 2008

A.G.B.D. - Part II

Incluir na classe JavaOracleBD (antes GravarBD) o seguinte método.


public void ExcluirBD(String sql)
{
try
{
int confirma = JOptionPane.showConfirmDialog(null, "Deseja realmente excluir este registro?", "CONFIRMAÇÃO", JOptionPane.YES_NO_OPTION);
if (confirma == JOptionPane.NO_OPTION) return;
stmt.executeUpdate(sql);
JOptionPane.showMessageDialog(null, "Registro exluído com sucesso!"), "EXCLUSÃO", JOptionPane.INFORMATION_MESSAGE);
}
catch (SQLException e)
{
JOptionPane.showMessageDialog(null, "Erro ao tentar excluir! Erro: " + e, "Exclusão", JOptionPane.ERROR_MESSAGE);
}
}

· Reconfigure a tela de Cadastro

CadastroJavaOracle


Matrícula:



Nome



CONSULTAR
INSERIR
ALTERAR
EXCLUIR
Limpar campos





Implementação da classe JavaOracleBD no
JFrame Cadastro

public class Cadastro extends javax.swing.JFrame
{
JavaOracleBD meu BD;
/*Creates new form Cadastro*/
public Cadastro()
{
initComponents();
this.setVisible(true);
meuBD = new JavaOracleBD();
meuBD = AbrirBD();
}

Código do btIncluir.

private void btIncluirActionPerformed(java.awt.event.ActionEvent evt)
{
String sql = "INSERT INTO TABFICHA(MATRICULA, NOME) VALUES(' " + tMatricula.getText() + " ', ' " + tNome.getText() + " ')";
meuBD.GravarBD(Sql, 1);
limpaCampos();
}


Código do btAlterar.

private void btAlterarActionPerformed(java.awt.event.ActionEvent evt)
{
String sql = "UPDATE TABFICHA SET NOME=' " + tNome.getText() + " ' WHERE MATRICULA =' " + tMatricula.getText() + " ' ";
meuBD.GravarBD(Sql, 2);
limpaCampos();
btIncluir.setEnable(true);
}


Código do btConsultar.

private void btConsultarActionPerformed(java.awt.event.ActionEvent evt)
{
String sql = "SELECT * FROM TABFICHA WHERE MATRICULA =' " + tMatricula.getText() + " ' ";
meuBD.Consultar(Sql);
tMatricula.setText(meuBD.getMatricula());
tNome.setText(meuBD.getNome());
btIncluir.setEnabled(false);
}

Código do btExcluir.

private void btExcluirActionPerformed(java.awt.event.ActionEvent evt)
{
String sql = "DELETE FROM TABFICHA WHERE MATRICULA =' " + tMatricula.getText() + " ' ";
meuBD.ExcluirBD(Sql);
limpaCampos();
btIncluir.setEnabled(true);
}

Código do btLimpar.

private void btLimparCampos ActionPerformed(java.awt.event.ActionEvent evt)
{
limpaCampos();
btIncluir.setEnabled(true);
btExcluir.setEnabled(true);
}

public void limpaCampos()
{
tMatricula.setText("");
tNome.setText("");
}


quarta-feira, 9 de abril de 2008

Conexão Java x Oracle

Para conectar-se a Banco de Dados o Java utiliza o JDBC (Java Database Conectivity), que permite informar o endereço de conexão e o driver do banco de dados a ser utilizado.



As partes do código em Java que especificam o endereço de conexão e o driver são:

@125.115.0.3:8080

String url=”jdbc:oracle:thin:@localhost”;

Class.forName(“oracle.jdbc.OracleDriver”);

Connection con;

con = DriverManager.getConnection(url, “login_name”, “senha”);

Além disso, dentro do Netbeans ou Eclipse(p.ex.), é preciso inserir o driver jdbc fornecido pelo BD dentro da pasta Libraries. (driver .jar ou .zip)

No caso do Oracle é provável encontrá-lo na pasta:



:oracleexeapporacleproduct10.2.0serverjdbclib



os arquivos são



ojdbc14.jar” e “ojdbc14_g.jar”.



Após a conexão, dois objetos principais são necessários para a manipulação dos dados:



· Statement -> possibilita a execução de um comando SQL



Ex.:

Statement MeuState = MinhaConexao.createStatement();



· ResultSet -> utilizado para armazenar o resultado de uma consulta.



Ex.:

ResultSet rs = MeuState.executeQuery(“SELECT * FROM Cliente”);



Crie no Oracle uma tabela chamada TabFicha, com apenas 3 atributos:





Matricula varchar(5);

Nome varchar(100);

Salario numeric(10,2);



No Netbeans crie um projeto novo:


import java.sql.*;


public class TesteConexao{

public static void main(String[] args)

{

String url = “jdbc:oracle:thin@125.115.0.3”;

try

{

Class.forName(“oracle.jdbc.OracleDriver”);

Connection MinhaConexao = DriverManager.getConnection(url, “seulogin”, “suasenha”);

Statement MeuState = Minhaconexao.createStatement();

ResultSet rs = MeuState.executeQuery(“SELECT * FROM TabFicha”);

System.out.println(“Matricula Nome”);

System.out.println(“------------ --------“);

While(rs.next())

{

String Matricula = rs.getString(“Matricula”);

String Nome = rs.getString(“Nome”);

System.out.println(Matricula + “ “ + Nome);

}

MinhaConexao.close();

}

catch (ClassNotFoundException ex)

{

System.out.println(“Driver JDBC:ODBC não encontrado!”);

}

catch (SQLException ex)

{

System.out.println(“Problemas na conexão com a fonte de dados”);

}

}

}


* Não esquecer de acrescentar o driver oracle jdbc na pasta Libraries.


XClientjdbclibojdbc_14.jar

terça-feira, 8 de abril de 2008

A.S.I.

Seminário - Valor: 3,5 ptos

O Seminário deverá ter:

Tempo de Apresentação
T. Mínimo: 30 min de apresentação
T. Máximo: 40 min de apresentação

· Todos os componentes do grupo deverão participar, caso contrário, poderá haver variações de NOTAS. (Participação).

· Preparar a apresentação do Seminário através de Slides (p/ uso no DataShow), vídeo, idéias novas p/ apresentar.

· No dia da apresentação deverá ser entregue 1 "APOSTILINHA" do tema que será apresentado p/ a Profª, e 2 questões sobre a apresentação p/ cada grupo, onde deverá ser respondidas e entregues (exceto o GRUPO que apresentou!)

Portanto, no DIA da APRESENTAÇÃO será AVALIADO:

1 - O TEMPO de apresentação;
2 - A PARTICIPAÇÃO dos componentes do Grupo;
3 - METODOLOGIA e IDÉIAS NOVAS durante apresentação;
4 - Questionário no INÍCIO ou TÉRMINO da apresentação.