Senhores, estou utilizando o PreparedStatement(). Ao utilizar o metodo setString( 1, “tabela”), o comando não seta o nome da tabela na string associada ao PreparedStatement(). Por favor, alguem poderia me ajudar?
Segue o codigo das 3 classes abaixo que eu utilizado para esse fim:
package br.dao.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.swing.JOptionPane;
import br.dto.Base;
import br.dao.ConnectionManager;
public class TestaConnectionManager {
static Base base = null;
private static final String URL_BASE_DADOS_PADRAO = "jdbc:oracle:thin:@";
public static void main ( String args[]){
base = new Base();
StringBuffer stringBuffer = new StringBuffer();
base.setUsuario("USUARIO");
base.setSenha("SENHA");
base.setHost("IPPPPP");
base.setNome("DATABASENAME");
base.setPorta("PORTA");
if ( ! montaQuery (stringBuffer) ) {
System.out.println("Erro ao montar querry");
}
if ( testaConexao(stringBuffer) ){
System.out.println("Conectou com sucesso");
System.exit(0);
}else{
System.out.println("Falha na conexao");
System.exit(1);
}
}
private static boolean montaQuery(StringBuffer stringBuffer){
try{
stringBuffer.append(" SELECT *");
stringBuffer.append(" FROM ? ");
return true;
}catch(Exception ex){
System.err.println("Erro inesperado ao montar querry: "+ex.getMessage());
return false;
}
}
private static boolean testaConexao(StringBuffer stringBuffer){
ConnectionManager connectionManager =
new ConnectionManager(montaURL(),base.getUsuario(),base.getSenha());
try{
//cria a conexao
Connection con = connectionManager.getConnection();
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
/*Movimentação com PreparedStatement*/
PreparedStatement pstmt;
pstmt = con.prepareStatement( stringBuffer.toString() );
System.out.println("Saida: "+base.getTable());
pstmt.setString( 1, base.getTable() );
JOptionPane.showMessageDialog(null,"SQL: "+stringBuffer.toString(), "Saida", JOptionPane.INFORMATION_MESSAGE);
ResultSet rs = pstmt.executeQuery();
while ( rs.next() )
{
String paut = rs.getString("TABLE_NAME");
JOptionPane.showMessageDialog(null, "Saida", "Conteúdo da tabela coluna 2:\n"+
paut, JOptionPane.INFORMATION_MESSAGE);
}
return true;
}catch(SQLException sqlex){
System.err.println("Erro inesperado: "+sqlex.getSQLState());
sqlex.printStackTrace();
System.err.println(sqlex.getMessage());
return false;
}
}
private static String montaURL() {
StringBuffer url = new StringBuffer(URL_BASE_DADOS_PADRAO);
url.append(base.getHost());
url.append(":");
url.append(base.getPorta());
url.append(":");
url.append(base.getNome());
return url.toString();
}
}
Base.java:
package br.dto;
public class Base {
private String nome;
private String host;
private String porta;
private String usuario;
private String senha;
private String table = "processos_automatizados";
public String getTable(){
return table;
}
public String getHost() {
return host;
}
public void setHost(String host) {
this.host = host;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getPorta() {
return porta;
}
public void setPorta(String porta) {
this.porta = porta;
}
public String getSenha() {
return senha;
}
public void setSenha(String senha) {
this.senha = senha;
}
public String getUsuario() {
return usuario;
}
public void setUsuario(String usuario) {
this.usuario = usuario;
}
}
package br.dao.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import javax.swing.JOptionPane;
public class ConnectionManager {
private String url;
private String usuario;
private String senha;
/**
* Method Construct
*/
public ConnectionManager(String url, String usuario, String senha) {
this.url = url;
this.usuario = usuario;
this.senha = senha;
}
public Connection getConnection() throws SQLException {
Connection con = null;
try {
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
con = DriverManager.getConnection (
url, usuario, senha);
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, "Erro", "Erro ao tentar conexao\nURL:"+url+
" \nUSUARIO:"+usuario+" \nSENHA:"+senha, JOptionPane.INFORMATION_MESSAGE);
throw new SQLException();
}
return con;
}
}
Obrigado.