Boa tarde, estou precisando carregar um Result Set para assim manipular os dados e gravar em uma nova tabela.
Segue meu metodo:
[code] static public void gradeHorario(int ano) throws SQLException, Exception {
String sql, auxSql;
int periodo, auxPeriodo;
// DBConexao db = new DBConexao();
conexaoBD cDB = new conexaoBD();
removerGradeHorario(ano);
//variavel "i" controla o dia da semana
for (int i = 1; i < 6; i++) {
auxSql = "";
if (i == 1) {
auxSql = " and F.segunda=true";
} else {
if (i == 2) {
auxSql = " and F.terca=true";
} else {
if (i == 3) {
auxSql = " and F.quarta=true";
} else {
if (i == 4) {
auxSql = " and F.quinta=true";
} else {
if (i == 5) {
auxSql = " and F.sextra=true";
}
}
}
}
}
sql = " select DTP.disciplina, D.periodo, DTP.turma, DTP.professor "
+ " from discturmaprof DTP, disciplina D, frequencia F, professor P "
+ " where DTP.disciplina=D.codigo and DTP.professor=P.codigo and P.frequencia=F.codigo " + auxSql;
ResultSet dados = abreConexoes.stmt.executeQuery(sql);
periodo = 0;
auxPeriodo = 0;
if (dados.first()) {
while (dados.next()) {
while (periodo < (dados.getInt("periodo") + auxPeriodo)) {
Gradehorario gradeHorario = new Gradehorario();
gradeHorario.setDia(i);
gradeHorario.setDisciplina(dados.getInt("disciplina"));
gradeHorario.setPeriodo(periodo + 1);
gradeHorario.setProfessor(dados.getInt("professor"));
gradeHorario.setTurma(dados.getInt("turma"));
inserir(gradeHorario);
periodo++;
}
auxPeriodo = dados.getInt("periodo");
}
}
}
}[/code]
Abaixo segue a classe abre conexão:
public class abreConexoes {
public static Connection con;
public static Statement stmt;
public static void abreConexoes() throws Exception {
con = conexaoBD.getInstance().getConnection();
stmt = con.createStatement();
}
}
ConexaoBD
[code]
public class conexaoBD {
private static conexaoBD instancia = null;
private Connection conexao = null;
public conexaoBD() throws Exception {
// Carrega informaç?es do arquivo de propriedades
Properties prop = new Properties();
prop.load(new FileInputStream("DB.properties"));
String dbdriver = prop.getProperty("db.driver");
String dburl = prop.getProperty("db.url");
String dbuser = prop.getProperty("db.user");
String dbsenha = prop.getProperty("db.senha");
// Carrega Driver PostgreSQL
Class.forName(dbdriver);
if (dbuser.length() != 0) // conex?o COM usuário e senha
{
conexao = DriverManager.getConnection(dburl, dbuser, dbsenha);
} else // conex?o SEM usuário e senha
{
conexao = DriverManager.getConnection(dburl);
}
}
// Retorna instância
public static conexaoBD getInstance() throws Exception {
if (instancia == null) {
instancia = new conexaoBD();
}
return instancia;
}
// Retorna conex?o
public Connection getConnection() {
if (conexao == null) {
throw new RuntimeException("conexao==null");
}
return conexao;
}
// Efetua fechamento da conex?o
public void shutDown() {
try {
conexao.close();
instancia = null;
conexao = null;
} catch (Exception e) {
System.err.println(e);
}
}
}[/code]
O erro acontece quando chega na linha
ResultSet dados = abreConexoes.stmt.executeQuery(sql);
do primeiro método.
Testei o sql diretamente no banco e esta funcionando.
Não sei se deu para entender, duvidas estou a disposição.
Desde já agradeço.