Criar Statement - Estou perdido [RESOLVIDO]

6 respostas
R

Boa noite pessoal.
Mais uma vez (e serão muitas) estou precisando de vcs. Estou tentando criar um Statement mas estou me embolando com a conexão, creio que seja isso. Vejam bém, criei o arquivo conexão.java, ele está funcionando direitinho, quando o chama ele retorna a mensagem que conectou ao banco. Até aí tudo certo.
Mas não estou sabendo chamar ele no método principal, ao qual irei criar o Statement, pois ele sempre dá erro. Abaixo vou listar primeiramente o exemplo que ví aquí no forum e estou adaptando, ao qual estou querendo fazer mais não está dando certo pq não estou sabendo implementar, depois o arquivo conexao.java e depois o método principal.
Mas olhando o arquivo conexao.java, ele ja tem um Statement, com resultset e tudo mais, aí que embolou, não sei se irei precisar criar novamente no método principal, ou como irei trabalhar, estou fazendo uma verdadeira salada.

Sei que a dúvida é básica, mas realmente sou iniciante e os exemplos que estou vendo, sempre são um pouco diferentes do que criei, que também já foi com ajuda de vc's.

Exemplo do forum:

Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/BANCO_DE_DADOS?user=root&password=root");  
Statement stm = conn.createStatement();  
ResultSet rs = stm.executeQuery("SELECT coluna1, coluna2, coluna3 FROM tabela");

Arquivo conexao.java:

package conectabanco;
import java.sql.Statement;  
import java.sql.Connection;  
import java.sql.DriverManager;  
import java.sql.ResultSet;  
import java.sql.SQLException;  
import javax.swing.*;
  
class conexao {
    final private String driver = "org.postgresql.Driver";
    final private String url = "jdbc:postgresql://localhost/Estoque";
    final private String usuario = "postgres";
    final private String senha = "1234";
    private static Connection conexao;
    public Statement statement;
    public ResultSet resultset;
    public void conecta()
    {
        boolean result = true;
        try
        {
            Class.forName(driver);
          conexao = DriverManager.getConnection(url, usuario, senha);
//           conexao = DriverManager.getConnection(url, new String("teste"), new String("123"));
            JOptionPane.showMessageDialog(null, "Conectou");

        }
        catch(ClassNotFoundException Driver)
        {
            JOptionPane.showMessageDialog(null, "Driver não encontrado");
            result = false;
        }
        catch(SQLException Fonte)
        {
            JOptionPane.showMessageDialog(null, "Deu erro na conexao com a fonte de dados "+Fonte.getMessage());
            result = false;
        }

       // return result;
    }
    public void desconecta()
    {
        boolean result = true;
        try
        {
            conexao.close();
            JOptionPane.showMessageDialog(null, "Banco fechado");
        }
        catch(SQLException Fecha)
        {
            JOptionPane.showMessageDialog(null, "Não foi possivel fechar o banco de dado");
            result = false;
        }

    }
    public ResultSet executeSQL(String sql)
    {
        try
        {
            System.out.println(sql);
            statement = conexao.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);//seria como se fosse uma abertuda das portas para executar o sql
            resultset = statement.executeQuery(sql);
        }
        catch(SQLException sqlex)
        {
            JOptionPane.showMessageDialog(null, "Não foi possível executar o comando sql,"+sqlex+"," +
                    "o sql passado foi "+sql);
        }
        return  resultset;
    }
}
Método principal o qual não estou sabendo lidar com a conexão:
package conectabanco;
import java.sql.*;
import java.util.*;


public class Main {

    public static void main(String[] args) {
     
        conexao conn = new conexao();
        conn.conecta();
        Statement stm = conn.createStatement();
    }
}

Peço mais uma vez encarecidamente que me ajudem, estou meio perdido de como chamar a conexão e continuar o resto.
Grande abraço a todos.

6 Respostas

nel

Boa noite.

Verdade, está uma grande salada. Está com dificuldades em JDBC?

Aqui está um artigo fácil de compreender e com uma ótima explicação: http://www.guj.com.br/article.show.logic?id=7

Dê uma lida nele com calma que o resto é facil. Uma opinião minha, esqueça Statement e use PreparedStatement ok?
Abraços.

R

nel:
Boa noite.

Verdade, está uma grande salada. Está com dificuldades em JDBC?

Aqui está um artigo fácil de compreender e com uma ótima explicação: http://www.guj.com.br/article.show.logic?id=7

Dê uma lida nele com calma que o resto é facil. Uma opinião minha, esqueça Statement e use PreparedStatement ok?
Abraços.


Olá, obrigado por responder, mas foi justamente o trecho deste post que citei acima e não estou conseguindo ageitar.
Obrigado, abraços.

H
conexao conn = new conexao();

conn.conecta();  <---- Até aqui tava beleza

você vai chamar --> ResultSet rs = conn.executaSQL("Select * from Tabela where campo1 = ‘x’ ") por exemplo;

while(rs.next()){

String coluna1 = rs.getString(coluna1);

int coluna2 = rs.getInt(coluna2);

Date coluna3 = rs.getDate(coluna3);

}

Acho que era essa sua dúvida ?

nel

Em qual momento exatamente está sua dúvida? :slight_smile:

nathanpsouza
String sqlQuery = "SELECT col1, col2,col3 FROM tabela WHERE col1 = ?";
PreparedStatement ps = conn.prepareStatement(sqlQuery);

ps.setString(1, "teste"); //aqui voce pode setar qualquer coisa para entrar no lugar do ?, lembrando que sempre segue a ordem, a primeira ? eh 1, a segunda eh 2..

ResultSet res = ps.executeQuery();//executa a query e retorna um ResultSet, caso vc apenas queira executar a query como em um update ou delete use ps.execute()

taew um exemplosinho de uso de preparedstatment :}

R

OK pessoal, muito obrigado, deu certo.
Abraços a todos.

Criado 29 de novembro de 2009
Ultima resposta 1 de dez. de 2009
Respostas 6
Participantes 4