Como enxugar esse codigo

olha fiz um codgo para pegar valores da tabela e fazer cálculos e inserir em outra tabela gostaria de umas dicas

  1. no código abaixo posso fazer a conexão com banco uma única vez?
  2. observei q com o método pojo pude usar as variáveis de onde quisesse gostaria de saber se assim também está certo?
  3. como faço para esta classe funcionar automaticamente sem a necessidade de ser chamada no método principal.



package media;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;

public class pojo {

    float Port1, Port2, Port3, Port4;

    public float getPort1() {
        return Port1;
    }

    public void setPort1(float Port1) {
        this.Port1 = Port1;
    }

    public float getPort2() {
        return Port2;
    }

    public void setPort2(float Port2) {
        this.Port2 = Port2;
    }

    public float getPort3() {
        return Port3;
    }

    public void setPort3(float Port3) {
        this.Port3 = Port3;
    }

    public float getPort4() {
        return Port4;
    }

    public void setPort4(float Port4) {
        this.Port4 = Port4;
    }

 public void media1() {
        Bancomedia d = new Bancomedia();
        d.iniciaBanco();
        Manipulamedia md = new Manipulamedia();
        ResultSet rs = md.RetornaDados("SELECT id, port FROM Bimestre1 ");
        try {
            while (rs.next()) {
                 try {
                    String Id = rs.getString("id");
                    String Port = rs.getString("port");
                      Port1 = Float.parseFloat(Port);
                    int id = Integer.parseInt(Id);
                } catch (SQLException ex) {
                    Logger.getLogger(pojo.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        } catch (SQLException ex) {
            Logger.getLogger(pojo.class.getName()).log(Level.SEVERE, null, ex);
        }
    }


    public void media2() {

        Bancomedia e = new Bancomedia();
        e.iniciaBanco();
        Manipulamedia md = new Manipulamedia();
        ResultSet rs = md.RetornaDados("SELECT id, port FROM Bimestre2 ");
        try {
            while (rs.next()) {

                try {
                    String Id2 = rs.getString("id");
                    String port2 = rs.getString("port");
                    Port2 = Float.parseFloat(port2);
                    int id2 = Integer.parseInt(Id2);

                } catch (SQLException ex) {
                    Logger.getLogger(pojo.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        } catch (SQLException ex) {
            Logger.getLogger(pojo.class.getName()).log(Level.SEVERE, null, ex);

        }
    }

public void media3() {

        Bancomedia f = new Bancomedia();
        f.iniciaBanco();
        Manipulamedia md = new Manipulamedia();
        ResultSet rs = md.RetornaDados("SELECT id, port FROM Bimestre3 ");
        try {
            while (rs.next()) {

                try {
                    String Id3 = rs.getString("id");
                    String port3 = rs.getString("port");
                    Port3 = Float.parseFloat(port3);
                    int id2 = Integer.parseInt(Id3);
                } catch (SQLException ex) {
                    Logger.getLogger(pojo.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        } catch (SQLException ex) {
            Logger.getLogger(pojo.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

 public void media4() {

        Bancomedia f = new Bancomedia();
        f.iniciaBanco();
        Manipulamedia md = new Manipulamedia();
        ResultSet rs = md.RetornaDados("SELECT id, port FROM Bimestre4 ");
        try {
            while (rs.next()) {

                try {
                    String Id4 = rs.getString("id");
                    String port4 = rs.getString("port");
                    Port4 = Float.parseFloat(port4);
                    int id4 = Integer.parseInt(Id4);
                } catch (SQLException ex) {
                    Logger.getLogger(pojo.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        } catch (SQLException ex) {
            Logger.getLogger(pojo.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

public void envia(){
  Bancomedia h = new Bancomedia();
        h.iniciaBanco();

 float resultadofinal = (Port1 + Port2 + Port3 + Port4)/4;


 h.cadastraPessoa(resultadofinal);



}
}

  1. Não crie uma tabela por bimestre;
  2. Para enxugar esse código sem mudar seu banco, considere alterar os métodos da média para receber um parâmetro:

E também trocar as variáveis de nome Port por um vetor:

Isso permitirá que vc tenha um método media só.

valeu ViniGodoy.

só uma perguntinha a mais como eu faço com as tabelas e crio apenas uma com nome bimestre e como faço para especificar os bimestres .

Cria uma coluna chamada bimestre e deixa o número do bimestre lá.