Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/01/2010, 10:55
Avatar de gabrican
gabrican
 
Fecha de Ingreso: junio-2008
Ubicación: Medellin
Mensajes: 89
Antigüedad: 15 años, 10 meses
Puntos: 4
Conexion JAVA con DATASOURCE

Hola!!!

Tengo la conexion de la aplicacion web que creé por medio de una clase (lo mas normal) y funciona al 100%.

El problema parte que en la empresa, por politicas de seguridad me dicen que debe ser a traves de un DATASOURCE, cosa que no tengo ni idea.

En fin, el datasource ya lo crearon, pero tengo que modificar toda mi aplicacion para que funcione con ese tipo de conexión y no se como hacerlo...

Alguien me puede ayudar????

Mi clase de conexion actual es:
Código:
package daos;
import java.util.ResourceBundle;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import exceptions.ConnectionException;

public class Conexion {

  private Connection con;
                
private ResourceBundle rb = ResourceBundle.getBundle("config.conexion");
private ResourceBundle statements = ResourceBundle.getBundle("config.statements");
private String server;
private String url;
private String login;
private String password;
private String port;

 public Conexion() {
     server = rb.getString("server");
     url = rb.getString("url");
     login = rb.getString("login");
     password = rb.getString("password");
     port = rb.getString("port");
     }
                
     public String getStatement(String nombre){
        String valor = (String) statements.getString(nombre);
        return valor;
     }
    
     public boolean conectarBD() throws ConnectionException {
                               
           try {
                 Class.forName("oracle.jdbc.driver.OracleDriver");
                 con = DriverManager.getConnection("jdbc:oracle:thin:@"+server+":"+port+":"+url,login,password);
                 return true;
                 
                  } catch (ClassNotFoundException  cnfe) {
                   throw new ConnectionException("Ha ocurrido un error al cargar el driver de Oracle. Error:" + cnfe.getMessage());
                   }catch (SQLException  sqle) {
                   throw new ConnectionException("Ha ocurrido un error al intentar conectarse con Oracle. Error:" + sqle.getMessage());                                     
                   }
                }

           public void cerrarConexion() throws ConnectionException {
                          try {
                               con.close();
                               }catch (SQLException  sqle) {
                             throw new ConnectionException("Ha ocurrido un error al intentar cerrar la conexión con Oracle. Error:" + sqle.getMessage());                                   
                               }
                }
                
   public PreparedStatement prepareStatement(String sql) throws SQLException{
          PreparedStatement ps;
          ps = con.prepareStatement(sql);
          return ps;
          }
                
   public PreparedStatement prepararSentencia(String nombre) throws SQLException{
          PreparedStatement ps;                               
          ps = con.prepareStatement(getStatement(nombre));
          return ps;
          }
}
Yo lo que intente hacer es cambiar el metodo " conectarBD() " por:
Código:
  try{
  InitialContext initctx = new InitialContext();
  DataSource ds = (DataSource)initctx.lookup("jdbc/datasourceAP");
  Connection conn = ds.getConnection();
  return conn;
  }
catch (Exception e) {
throw new SQLException(" Esta es una excepcion en el getConection: "+ e.getMessage());
  }
                }
pero lo que sucede es que no me toma los statements, es decir los query SQL que realizan las acciones en la BD y no se como o no se que esta fallando!!!!!

Por Favor ayudaaaaaaaaaaaaaaaaaaaaaaaaaaaa