Error al conectar con BD MySQL

yoda_campillos
13 de Diciembre del 2008
Buenas, soy nuevo en este foro y acudo a vosotros para que me ayudéis, ya que no se como solucionar lo que tengo entre manos. Y ante todo, muchísimas gracias por vuestra ayuda.
Os planteo mi pregunta, tengo 2 métodos, uno para hacer la conexión con la BD, y otro para indicar el nombre del Esquema al conectarse. En este último tengo capturada la excepcion de que si no encuentra el esquema, me pida crearlo. Cuando el esquema existe todo funciona bien, pero cuando no, hay un error. Me da un NullPointerException. Os mostraré el código:

public Connection conexion() throws SQLException{
String usu;
String pass;
usu ="root";
pass ="root";
Connection conexion =
DriverManager.getConnection("jdbc:mysql://localhost:3306/?user="+usu+"&password="+pass);
System.out.println("Realizada la conexión a MySQL como administrador.");
return conexion;
}
//Este método funciona correctamente, el siguiente, conectar BD tambien, a no ser que no exista el esquema, entonces cuando llamo al último método
//"crearChema" éste genera la excepcion que os dije más arriba. Si me pudierais ayudar, os lo agradecería en el alma.
public void conectarBD(String chema) {
try{
conectate = new AccesoBD(chema);
}catch(AccesoException e){
System.out.println("Error al Acceder a la base de Datos");
System.out.println("No se encuentra el esquema "+chema);
char s=Terminal.sino("¿Desea Crearlo?(s/n)");
if(s=='s')
crearChema(chema);
else
System.out.println("No se ha creado correctamente");
}
System.out.println("Conectado correctamente");
}
/**
* procedimiento para crear esquema
*/
public void crearChema(String chema){
try{
conectate=new AccesoBD();
conectate.executeUpdate("CREATE DATABASE "+chema+"");
}catch(AccesoException e1){
System.err.println("Error, BD no encontrada");
e1.printStackTrace();
}catch(NullPointerException e){
System.err.println("No hay manera de conectar");
e.printStackTrace();
e.getMessage();
}catch(SQLException e){
e.printStackTrace();
}
System.out.println("Esquema creado correctamente");

}