Foros del Web » Programación para mayores de 30 ;) » Java »

Problema con esta clase

Estas en el tema de Problema con esta clase en el foro de Java en Foros del Web. Es una clase muy sencilla, y todo funciona correctamente hasta que creo esta instruccion: //Statement stmt = conexion.createStatement(); Por que? Código: package conexion; import java.sql.*; ...
  #1 (permalink)  
Antiguo 02/12/2008, 16:43
Avatar de SPAWN3000  
Fecha de Ingreso: marzo-2008
Ubicación: Bogota
Mensajes: 858
Antigüedad: 16 años, 1 mes
Puntos: 15
Problema con esta clase

Es una clase muy sencilla, y todo funciona correctamente hasta que creo esta instruccion:

//Statement stmt = conexion.createStatement();
Por que?

Código:
package conexion;

import java.sql.*;

public class GenericaDb {
	public String driver,url,ip,bd,usr,pass;
	public Connection conexion;
	
	public static void main(String[] args){
	GenericaDb pnbd = new GenericaDb("VISTAESCRITORIO:5000","Pruebas","sa","");
	Connection conexion = pnbd.getConexion();
	//Statement stmt = conexion.createStatement();
	}
	
	public GenericaDb(String ip, String bd, String usr, String pass)
	{
		driver="com.sybase.jdbc3.jdbc.SybDriver";
		this.bd = bd;
		this.usr = usr;
		this.pass = pass;
		url = new String("jdbc:sybase:Tds:"+ip+"/"+bd);
		try {
			Class.forName(driver).newInstance();
			conexion=DriverManager.getConnection(url,usr,pass);
			System.out.println("Conexion a Base de Datos "+bd+" Ok");
			}
		catch (Exception exc) {
			System.out.println("Error al tratar de abrir la base de Datos"+bd+" : "+exc);
			}
	}
	
	public Connection getConexion()
	{ return conexion; }
	
	public Connection CerrarConexion() throws SQLException{
		conexion.close(); conexion = null;
		return conexion;
	}

} //fin de la clase
  #2 (permalink)  
Antiguo 03/12/2008, 23:41
 
Fecha de Ingreso: diciembre-2008
Mensajes: 71
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Problema con esta clase

Hola spawn 3000.

Lo que miro es que le hace falta que le agregue es try-catch para la excepcion de la conexion sino no funciona.

try {
Statement stmt= conexion.createStatement();
System.out.println(stmt);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

despues agregue datos de mi bd y funciona bien.
  #3 (permalink)  
Antiguo 04/12/2008, 08:16
Avatar de SPAWN3000  
Fecha de Ingreso: marzo-2008
Ubicación: Bogota
Mensajes: 858
Antigüedad: 16 años, 1 mes
Puntos: 15
Respuesta: Problema con esta clase

Haaaa si, claro.... Que bruto! jeje

Gracias por hacerme caer en cuenta jkintero.

Por cierto, nunca he podido saber por que se hace obligatorio definir el try{...}catch(...){...} en esta parte...

Alguna razón en especial?

Última edición por SPAWN3000; 04/12/2008 a las 08:34
  #4 (permalink)  
Antiguo 04/12/2008, 16:48
 
Fecha de Ingreso: diciembre-2008
Mensajes: 71
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Problema con esta clase

por que cuando haces createStatement(), estas estableciendo conexion con la base de datos y tiene que haber un escuchador por si no se puede establecer la conexion y te avise con una excepcion, es solo para la conexion con el servidor de la base de datos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:19.