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.