Pesquisar neste blog

15/11/2019

Banco de Dados em Java 2 / Incluir

Inserir dados no PostreSQL usando Java

package apps;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
/**
 *
 * @author HENRIQUE
 */
public class FabricaConexao {
    private static final String URL = "jdbc:postgresql://localhost:5432/produto";
    private static final String DRIVE = "org.postgresql.Driver";
    private static final String USER = "postgres";
    private static final String PASS = "123";
 
    public static Connection obterConexao(){
        Connection conexao = null;
     
        try{
            Class.forName(DRIVE);
            conexao = DriverManager.getConnection(URL, USER, PASS);
        }catch (ClassNotFoundException cnf){
            System.out.println("Driver não encontrado - "+cnf.getMessage());
        }catch (SQLException sqle){
            System.out.println("Erro ao conectar no banco - "+sqle.getMessage());
        }
        return conexao;
     
    }
 
}
___________________ / / _____________________

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package apps;
import java.sql.Connection;
import java.sql.SQLException;
/**
 *
 * @author HENRIQUE
 */
public class TesteFabricaConexao {
    public static void main(String[] args) {
        Connection conexao;
        try{
            conexao = FabricaConexao.obterConexao();
            System.out.println("Conexao estabelecida");
            conexao.close();
            System.out.println("Conexão encerrada");
        }catch (SQLException sqle){
            System.out.println("Conexão não estabelecida - "+sqle.getMessage());
        }
    }
}
__________________ / / _____________________

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package apps;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import javax.swing.JOptionPane;
/**
 *
 * @author HENRIQUE
 */
public class Incluir2 {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        Connection conexao = FabricaConexao.obterConexao();
        PreparedStatement comando = null;
        String nome = JOptionPane.showInputDialog("Forneça o nome do grupo de produto");
        float promocao = Float.parseFloat(JOptionPane.showInputDialog("Forneça o percentual de promoção do grupo: "));
        float margem = Float.parseFloat(JOptionPane.showInputDialog("Forneça o percentual da margem de lucro do produto: "));
        String sql = "INSERT INTO grupoproduto (nome, promocao, margemlucro ) VALUES";
        sql += "("+nome+", "+promocao+", "+margem+" )";
        
        try {
            comando = conexao.prepareStatement("INSERT INTO grupoproduto (nome, promocao, margemlucro ) VALUES (?, ?, ?)");
            comando.setString(1, nome);
            comando.setFloat(2, promocao);
            comando.setFloat(3, margem);
            comando.executeUpdate();
            System.out.println("Inclusao realizada com sucesso");
        }catch (SQLException ex){
            System.out.println("Erro ao incluir grupo de produto"+ex.toString());
        }finally {
            try{
                comando.close();
                conexao.close();
            }catch (SQLException ex){
                System.out.println("Erro ao desconectar "+ex.toString());
            }
        }
        
    }
    
}
__________________ / / ____________________









































































Executando o algoritmo























SAP_1

Microprocessador de um SAP feito no Logisim









































Clique aqui para fazer o download do arquivo feito no Logisim 2.7

Clique aqui para fazer o download do arquivo de instruções

O barbeiro sonolento























  •  Descrição do problema


  1.  A analogia de uma barbearia com um barbeiro.
  •  A barbearia possui
  1.  Uma cadeira para corte de cabelo
  2.  Uma sala de espera com um número determinado de cadeiras
  •  Quando o barbeiro finaliza o corte de cabelo de um cliente
  1.  Ele libera o cliente e vai até a sala de espera para ver se há algum cliente esperando
  2.  Se há algum cliente esperando, ele trás consigo um dos clientes corta o seu cabelo
  3. Se não há clientes esperando então ele volta para a cadeira de corte para dormir


  • Quando um cliente chega à barbeariaO cliente olha o que o barbeiro está fazendo.


  1. Se o barbeiro estiver dormindo, ele o acorda e senta na cadeira.
  2. Se o barbeiro estiver trabalhando então o cliente vai para a sala de espera
  3. Se houver uma cadeira livre na sala de espera então ele senta e aguarda sua vez
  4. Se não houver cadeira livre na sala de espera então o cliente vai embora.


Alunos: Luís Fernando, Henrique Souza, Luana Novais e Eberty Miranda

Créditos para: Luís Fernando autor do algoritmo

Clique aqui para fazer o download do arquivo feito no Java

13/11/2019

Banco de Dados com Java 1 / Conexão

Conexão com o Banco de Dados no Postegres / PgAdmin





















package apps;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class Conexao1 {

    public static void main(String[] args) {
        // TODO code application logic here
        Connection conexao;
        String url = "jdbc:postgresql://localhost:5432/produto";
        String usr = "postgres", pass = "aluno123";
        
        try{
            Class.forName("org.postgresql.Driver");//site do driver no postgre
            conexao = DriverManager.getConnection(url, usr, pass);
            System.out.println("Conexão estabelecidada");
            conexao.close();
            System.out.println("Conexão encerrada");
        } catch (ClassNotFoundException cnf){
            System.out.println("Classe do driver não encontrado - "+cnf.getMessage());
        }catch (SQLException sqle){
            System.out.println("Conexão não estabelecidade - "+sqle.getMessage());
        }
    }
    
}

____________________ / / ___________________

package apps;
import java.sql.*;
import org.postgresql.Driver;

public class Conexao2 {

    public static void main(String[] args) {
        // TODO code application logic here
        Connection conexao;
        String url = "jdbc:postgresql://localhost:5432/produto";
        String usr = "postgres", pass = "aluno123";
        
        try{
            DriverManager.registerDriver(new Driver());
            conexao = DriverManager.getConnection(url, usr, pass);
            System.out.println("Conexão estabelecida");
            conexao.close();
            System.out.println("Conexão fechada");
        }catch (SQLException sqle) {
            System.out.println("Conexão não estabelecida - "+sqle.getMessage());
        }
    }
    
}






























































































Saída gerada












Clique aqui para fazer o download do material completo


Palavras chave:

Persistência de Dados com a API JDBC do Java
Data Persistence with the Java JDBC API
Persistencia de datos con la API JDBC de Java
जावा जेडीबीसी API सह डेटा पर्सिस्टन्स
Java JDBC APIを使用したデータの永続性
Adatperzisztencia a Java JDBC API-val
התמדה בנתונים עם ממשק ה- API של JDBC Java
Persistência de Dados com e API JDBC do Java
Persistência de Dados com iyo API JDBC waxay sameeyaan Java
Persistência de Dados com a API JDBC do Java
Dados com ve API JDBC’nin Java kullanması
Persistência de Dados com og API JDBC gør Java

Herança em Java

Exemplo de herança em java

package pessoa;
public class Aluno extends Pessoa{
 
    private String curso;
    private double[] notas;

    public Aluno() {
        super();
    }

    public Aluno(String nome, String endereco, String telefone, String curso) {
        super(nome, endereco, telefone);
        this.curso = curso;
        this.notas = notas;
    }

    public boolean verificarAprovado(){
        return true;
    }
    public void metodoQualquer(){
        super.setCpf(1234567-99);
        this.setCpf(00000000-99);
    }
 
    public String getCurso() {
        return curso;
    }
    public double[] getNotas() {
        return notas;
    }

    public void setCurso(String curso) {
        this.curso = curso;
    }
    public void setNotas(double[] notas) {
        this.notas = notas;
    }
}

___________ / / _____________

package pessoa;
public class Pessoa {
 
    private String nome, endereco, telefone;
    private String telefoneCelular;
    int cpf;

    public Pessoa(){}
 
    public Pessoa(String nome, String endereco, String telefone) {
        this.nome = nome;
        this.endereco = endereco;
        this.telefone = telefone;
    }
 
 
 
    public String getNome() {
        return nome;
    }
    public String getEndereco() {
        return endereco;
    }
    public String getTelefone() {
        return telefone;
    }
    public String getTelefoneCelular() {
        return telefoneCelular;
    }
    public int getCpf() {
        return cpf;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }
    public void setEndereco(String endereco) {
        this.endereco = endereco;
    }
    public void setTelefone(String telefone) {
        this.telefone = telefone;
    }
    public void setTelefoneCelular(String telefoneCelular) {
        this.telefoneCelular = telefoneCelular;
    }
    public void setCpf(int cpf) {
        this.cpf = cpf;
    }
 
    public String obterEtuiqueta(){
        return endereco;
    }
 
}
___________ / / __________

package pessoa;
public class Professor extends Pessoa{
    
    private double salario;
    private String nomeCurso;

    public double getSalario() {
        return salario;
    }
    public String getNomeCurso() {
        return nomeCurso;
    }

    public void setSalario(double salario) {
        this.salario = salario;
    }
    public void setNomeCurso(String nomeCurso) {
        this.nomeCurso = nomeCurso;
    }

    public double calcularSalarioLiquido(){
        return 0;
    }
    
    public String obterEtiquetaEndereco(){
        String s = "Endereço do professor: ";
        s += super.getEndereco();
        //ou s += this.getEndereco();
        return s;
    }
}
_____________ / / ______________

package execucao;
import pessoa.Pessoa;
import pessoa.Aluno;
import pessoa.Professor;
public class Aplicacao1 {

    public static void main(String[] args) {
        
        Aluno aluno = new Aluno();
        Pessoa pessoa = new Pessoa();
        Professor prof = new Professor();
        
        pessoa.setEndereco("Rua 1 quadra 2");
        aluno.setEndereco("Rua 2 quadra 3");
        prof.setEndereco("Rua 3 quadra 4");
        
        System.out.println(pessoa.obterEtuiqueta());
        System.out.println(aluno.obterEtuiqueta());
        System.out.println(prof.obterEtiquetaEndereco());
        
        aluno.setCpf(8888888-99);
        System.out.println(aluno.getCpf());
        
    }
    
}

06/11/2019

Atividade LP2

1. Qual a justificativa/vantagem do uso de enumerações, ao invés de usar valores literais ou constantes do tipo String ou Inteiro ?

- define um domínio de valores
- define um tipo em tempo de compilação
- toda manipulação pelo enum é validada pelo compilador
- diminui a chance do compilador parar
- legitimidade 

2. Qual o papel das classes VO’s na implementação fornecida ?

- ENTIDADE: endereco, Aluno, Enuns =: abstracao de classes / X
- DAO: Conexao => reuni o papel de banco de dados / ABSTRACAO DE PERSISTENCIA / quem ficar isolado nesta expressão encapsula os campos
- EXCEÇÕES => Persisntencia, Negocio / X - não reuni um conjunto de ações 
- NEGOCIO => Validação de dados / ABSTRACAO de mooder 
- EXECUCAO: Principal- Visao/Intidade=> Faz o papel de interação com o usuário / fazer a interface com o usurário para fornecer dados


3. Caso não seja usado VO, como seriam passados valores entre as classes da visão, negócio e persistência ?

- Por Lista de parâmetros

4. Que tipo de relação existe entre o VO de Aluno e Endereço ?

- Agregação de endereçosVO

5. O que justifica o uso do EnderecoVO na implementação, haja visto que no banco de dados existe apenas uma tabela (Aluno) ? 

- Complexidade nas classes
- Fazer um registro com chave primaria que referencia 2 ou + tabelas

6. Aponte exemplos de uso da classe PersistenciaException. 



7. Qual o benefício de criar uma classe para tratar a conexão com o banco de dados, como a classe ConexaoBD ? 

- é uma classe de apoio utilitária
- encapsulamento de um local da conexão
- diminui o uso de código com repetição

8. Qual o papel/responsabilidade da classe DAO ?

- DAO reunir todos

 9. Qual o papel/responsabilidade da classe AlunoNegocio ? 

- Consistência da regra de negocio
- envolve validação de dados

10. Caso tenha que inserir uma nova entidade/conceito na aplicação, quais seriam as classes a serem implementadas ?

- Construir um professorDAO
- AlunoDAO e assim sucessivamente
- AlunoNegocio 

Strings em java


/**
 *
 * @author HENRIQUE
 */
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args){
        // TODO code application logic here
        String var = "variavel / ? : + ;: letras", aux = "";
     
        System.out.println("--- "+var+" ---");
        LinkedList lista = new LinkedList();
     
        System.out.println("Posicao do[/] => "+var.indexOf("/"));
        System.out.println("Termina com [letras] => "+var.endsWith("letras"));
        System.out.println("Começa com [variavel] => "+var.startsWith("variavel"));
        System.out.println("Se a posição 9 == [/] => "+var.startsWith("/", 9));
        System.out.println("");
        for(byte s : var.getBytes()){
            System.out.println("byte: "+s);
        }
        System.out.println("\nCódigo da String [var] => "+var.hashCode());
        System.out.println("Convertendo para String maíuslas => "+var.toUpperCase());
        System.out.println("Trunca a na posição [4] => "+var.substring(4));
        System.out.println("Trunca em [2, 9] => "+var.substring(2, 9));
     
        System.out.println("\n");
        String[] auxSplit = var.split(":");
        for(String s : auxSplit){
            System.out.println(s);
        }
     
        System.out.println();
        String valor = "TESTE -java - Engenharia - Comp";
        String[] auxS = valor.split("-",3);//limite de 3
        for(String a : auxS){
            System.out.println(a);
        }
     
        String result = String.format("Hoje nós processamos [ %s ] transções", var);
        System.out.println(""+result);
     
        result = String.format("10 / 3 = %.2f", 10.0 / 3.0);
        System.out.println(result);
     
        char d[] = {'a','b','c'};
        String str = new String(d);
        System.out.println(str);
     
        String test = "TESTE VARIAVEL - java";
        System.out.println(test.charAt(0));
    }
 
}

04/11/2019

Buscar elementos iguais em java

import javax.swing.JOptionPane;

/**
 *
 * @author HENRIQUE
 */
public class Lista {
    
    private Object[] objeto;
    private int tamanho;
    
    public Lista(){
    }
    public Lista(int capacidade){
        this.objeto = new Object[capacidade];
        this.tamanho = 0;
    }
    public boolean adicionar(Object elemento){
        if(tamanho < objeto.length){
            objeto[tamanho] = elemento;
            tamanho++;
            return true;
        }return false;
    }
    
    public int buscarElemento(Object elemento){
        for(int i = 0; i < this.tamanho; i++){
            if(this.objeto[i].equals(elemento)){
                return i;
            }
        }return -1;
    }
    
    public Object buscarElem(Object elemento){
        for(int i = 0; i < this.tamanho; i++){
            if(this.objeto[i].equals(elemento)){
                return elemento;
            }
        }return false;
    }
    
    public void erro(String elemento){
        JOptionPane.showMessageDialog(null,"ERRO SEMÂNTICO !", "inteiro "+elemento,JOptionPane.ERROR_MESSAGE);
        throw new IllegalArgumentException("Variável duplicata");
    }
       
    public boolean addIguais(Object elemento){
        if((tamanho < objeto.length)&& (this.contem(elemento)== false)){
            objeto[tamanho] = elemento;
            tamanho++;
            return true;
        }
        System.out.println(elemento+" => Variáveis iguais");
        this.erro((String) elemento);
        return false;
    }
    
    public boolean contem(Object elemento){
        return buscarElemento(elemento) >= 0;
    }
    public int tamanho(){
        return this.tamanho;
    }
    
    public void removerElemento(Object elemento){//esta removendo apenas um elemento
        for(int i = 0; i < this.tamanho -1; i++){
            this.objeto[i] = this.objeto[i+1];
        }
        tamanho--;
    }
    
    public void removerElemPosicao(int posicao){
        if(!(posicao >= 0 && posicao < tamanho)){//se a posição é válida
            throw new IllegalArgumentException("\n\nPOSIÇÃO DE REMOÇÃO INVÁLIDA");
        }else{
            for(int i =0; i < this.tamanho -1; i++){
                this.objeto[i] = this.objeto[i+1];//atualiza a posicao
            }
            tamanho--;
        }
    }
    
    public String toString(){
        StringBuilder s = new StringBuilder();
        
        for(int i =0; i < this.tamanho; i++){
            s.append(this.objeto[i]);
            s.append("\n");
        }
        return s.toString();
    }
}


EXEMPLO : 

/**
 *
 * @author HENRIQUE
 */
public class Main {
    public static void main(String[] args) throws Exception {
        
        Lista listar = new Lista(1000);

        listar.addIguais("palavras");
        listar.addIguais("abacaxi");
        listar.addIguais(9);
        listar.addIguais("FRASES");
        listar.addIguais("abacaxi"); // dará um erro aqui porque já existe este elemento
    }
}