Java x Oracle

Bom dia,

Estou tentando aprender Java há mais ou menos um mês e desde ontem estou trabalhando num script que conecta a uma base oracle e nela eu tento fazer algumas inserções, consultas, etc.

O que acontece é que criei uma class “sql” onde estou criando as funções, e quando chamo a função sql.inserir() ele retorna uma erro. Vou postar meu código pra ficar mais fácil.

Código da classe:

package classes.funcoes;

import java.sql.*;
import javax.swing.JOptionPane;

public class sql {
    public sql() {}
    
    public static Connection conectar(Connection con){
        con = null;
        try{
            // Carregando o Driver JDBC
            String driverName = "oracle.jdbc.driver.OracleDriver";
            Class.forName(driverName);
             // Criando uma nova conexão com o banco
            String serverName = "127.0.0.1";
            String portNumber = "1521";
            String sid = "XE";
            String url = "jdbc:oracle:thin:@" + serverName+ ":" + portNumber + ":" + sid;
            String username = JOptionPane.showInputDialog(null,"Digite seu nome de usuário Oracle","Usuario",JOptionPane.PLAIN_MESSAGE);
            String password = JOptionPane.showInputDialog(null,"Digite sua senha Oracle","Senha",JOptionPane.PLAIN_MESSAGE);
            con = DriverManager.getConnection(url, username,password);
        }
        catch (ClassNotFoundException e){
            JOptionPane.showMessageDialog(null,"Não foi possível encontrar o Driver JDBC\n\nErro:\n\""+ e.getMessage() + "\"","JDBC Not Found",JOptionPane.ERROR_MESSAGE);
            e.printStackTrace();
            System.exit(1);
            
        } 
        catch (SQLException e){
            JOptionPane.showMessageDialog(null,"Erro de conexão/sintaxe na base de dados\n\nDescricao:\n\""+ e.getMessage() + "\"","Erro SQL",JOptionPane.ERROR_MESSAGE);
            e.printStackTrace();
            System.exit(1);
        }
        return con;
    }
    
    public static void inserir(Connection con,String coluna, String valor){
            try{
                PreparedStatement inserir = con.prepareStatement("insert into categoria( ? ) values( ? )");
                inserir.setString(1, coluna);
                inserir.setString(2, valor);
                JOptionPane.showMessageDialog(null,"Tentarei inserir "+valor+" em "+coluna);
                inserir.execute();
                inserir.close();
            }catch(SQLException e){
                JOptionPane.showMessageDialog(null,"Erro ao inserir dados\n\nDetalhes:\n"+e.getMessage(),"SQL Error",JOptionPane.ERROR_MESSAGE);
                e.printStackTrace();
            }catch(Exception e){
                JOptionPane.showMessageDialog(null,e.getMessage());
            }
    }
    
}

É no inserir() que estou tendo problemas, quando chamo a função ele retorna que “a palavra chave SELECT nao foi encontrada”, mas ele nao deveria fazer isso pois é uma inserção e nao uma consulta.

Segue abaixo o codigo do programa “principal”:

[code]
import classes.funcoes.sql;
import java.sql.*;
import javax.swing.JOptionPane;

public class principal {
public principal() {}
public static void main(String[] args) {
Connection con = null;
con = sql.conectar(con);
sql.inserir(con,“DESCRICAO”,“Teste”);
System.exit(0);
}

}[/code]

Bem simples. Alguém pode apontar algum erro pra mim?
A propósito, todas as tabelas e campos existem no Oracle, e a conexão funciona pois consultas ao banco funcionam bem.

Desde já obrigado.

Posta o erro para podermos ajudar.

[]s

Leandro

poste o erro para podermos te ajudar melhor…
mas, como procedimento padrao, verifique o classpath para conter o driver jdbc do oracle, verifique a URL de conexao e a sintaxe dos sql que vc usa