Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Acceder a mysql con java

Estas en el tema de Acceder a mysql con java en el foro de Mysql en Foros del Web. Buenas, os cuento mi caso, estoy un poco desesperado porque no se para donde tirar y me corre un poco de prisa. Pretendo hacer una ...
  #1 (permalink)  
Antiguo 03/03/2011, 14:07
 
Fecha de Ingreso: diciembre-2007
Mensajes: 135
Antigüedad: 16 años, 4 meses
Puntos: 1
Acceder a mysql con java

Buenas, os cuento mi caso, estoy un poco desesperado porque no se para donde tirar y me corre un poco de prisa. Pretendo hacer una aplicacion web con Java, servlets, jsp y tal, y estoy trabajando con eclipse y tomcat. Mi problema viene al tratar de acceder a la base de datos. Yo tenia ya instalado el Xampp, que automaticamente me instalaba el servidor Apache y el Mysql, y como en mis aplicaciones php estaba acostumbrado a trabajar con Mysql, pues me gustaria seguir haciendolo igual, pero no se como. Yo en php hacia simplemente:
Código:
$dbh=new PDO('mysql:dbname=MiBaseDeDatos;host=127.0.0.1', $usuario, $clave);
y ya luego hacia la consulta asi:
Código:
 $dbh->query($sql);
pero el caso es que con Java ya no me funciona, he probado haciendo asi:

Código:
try{

Class.forName("com.mysql.jdbc.Driver");
DriverManager.getConnection("jdbc:mysql://localhost/MiProyecto","","");

} catch (Exception e){
hay una excepcion: e.printStackTrace();
}
la salida es: hay una excepcion, aunque ni siquiera me muestre el error que deberia mostrar habiendo puesto e.printStackTrace();
El error esta el la linea de codigo:
Código:
DriverManager.getConnection("jdbc:mysql://localhost/Miproyecto","","");
porque si pongo solo
Código:
Class.forName("com.mysql.jdbc.Driver");
en el try no me da excepcion.
¿que puedo hacer? La base de datos se llama Miproyecto, no tengo puesto ni user ni pass, ya puse el archivo mysql-connector-java-5.1.15-bin.jar en la carpeta lib del tomcat... no se que mas hacer para que funcione, lo que tampoco me queda muy claro la cadena que hay que poner para hacer la conexion a la base de datos: jdbc:mysql://localhost/Miproyecto","","" , parece como si fuera una url, sin embargo yo poniendo mysql://localhost/Miproyecto en el navegador no sale nada...
Otra cosa, ¿hay otra forma alternativa de acceder a Mysql desde java utilizando esta API JDBC?

Muchas gracias, y ojala me puedan ayudar un poco, esto perdido con esto del Java, no se como hacer funcionar el montaje que tenia para php con Java.
Por cierto, estaba trabajando en windows porque lo tengo todo instalado aqui, ¿es lo mismo o deberia trabajar en linux? Pretendo utilizar Struts, spring, jpa... bueno y si sabeis algun manual que me ayude a integrar todo esto estaria muy bien.

Un saludo

Última edición por y0mism0; 03/03/2011 a las 14:32
  #2 (permalink)  
Antiguo 04/03/2011, 05:20
 
Fecha de Ingreso: septiembre-2010
Mensajes: 10
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Acceder a mysql con java

Hola yo tengo puesto esto:


private Connection conn = null;
private String bd = "nombre_base_datos";
private String login = "";
private String password = "";
private String url = "jdbc:mysql://localhost/"+bd;

try{
Class.forName("org.gjt.mm.mysql.Driver");
conn = DriverManager.getConnection(url, login, password);
} catch(SQLException ex) {
System.out.println("Hubo un problema al intentar conectarse con la base de datos "+url);
System.out.println(ex);
}catch(ClassNotFoundException ex) {
System.out.println(ex);
}

Y no me da error. Uso lo mismo que tu, tengo el xampp y el tomcat. y el mysql-conector en la carpeta lib del web-inf del proyeto en el tomcat.

La direccion es como una URL, pero ten en cuenta que es JDBC, no va a funcionar en el navegador.

no es mucho, pero espero te sirva
saludos
  #3 (permalink)  
Antiguo 04/03/2011, 20:29
 
Fecha de Ingreso: diciembre-2007
Mensajes: 135
Antigüedad: 16 años, 4 meses
Puntos: 1
Respuesta: Acceder a mysql con java

gracias tio, realmente el fallo creo que se debia a que no habia puesto bien la contraseña, pero es que tengo dificultades para ponerla, estoy utilizando el Mysql workbench y no se ponerla de ninguna forma, al crear la conexion no la coge. Tan solo la puedo poner por phpmyadmin, ¿tu como pones la contraseña?
Y ahora resulta que la he cambiado varias veces y a partir de que la cambie la ultima vez ya no me deja entrar en la base de datos... ¿como puedo recuperar mi contraseña? Ya lo intente con el comando mysqld pero me da error.

Por cierto, la conexion a la base de datos no se hace en el jsp, no? Tengo entendido que deberia hacerse desde un servlet...
  #4 (permalink)  
Antiguo 05/03/2011, 11:36
 
Fecha de Ingreso: diciembre-2007
Mensajes: 135
Antigüedad: 16 años, 4 meses
Puntos: 1
Respuesta: Acceder a mysql con java

Por cierto el error que me daba es: Can't create test file /usr/local/mysql/data/master.lower-test y
despues Can't change dir to '\usr\local\\mysql\data\' (Errcode: 2)

al final la recupere poniendo:

[mysqld]
skip-grant-tables

en el archivo my.ini, reiniciando la base de datos y poniendo el shell mysql.exe->use mysql-> UPDATE user SET Password = PASSWORD('root') WHERE User = 'root';
y ya luego quitando el skip-grant-tables y reiniciando.

Última edición por y0mism0; 05/03/2011 a las 12:21
  #5 (permalink)  
Antiguo 07/03/2011, 14:29
 
Fecha de Ingreso: septiembre-2010
Mensajes: 10
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Acceder a mysql con java

yo la contraseña la cambio en el archivo config.ini porque solo utilizo el root, asi ke no creo usuarios ni nada

en cuanto a la conexion, la hago desde el jsp directamente. Normalmente en una pagina jsp aparte sin codigo html y la lleno de funciones que luego voy llamando. por ejemplo si tengo un insertar, pues llamo a una funcion y le paso lo que quiero insertar. y ya en la propia funcion, pues me conecto, compruebo, inserto, todo ahi, y devuelvo un mensaje de insertado bien o mal. sobre todo para no sobrecargar el index.jsp

Etiquetas: acceder, java
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 21:28.