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

Java y base de datos

Estas en el tema de Java y base de datos en el foro de Java en Foros del Web. hola amigos, estoy intentando desarrollar un programa que introdusca datos a una base de datos atravez de formularios java ( JForms ) tengo un par ...
  #1 (permalink)  
Antiguo 03/07/2009, 12:41
 
Fecha de Ingreso: enero-2009
Mensajes: 65
Antigüedad: 15 años, 3 meses
Puntos: 3
Java y base de datos

hola amigos, estoy intentando desarrollar un programa que introdusca datos a una base de datos atravez de formularios java ( JForms ) tengo un par de preguntas como:

1) Como trabajo con una base de datos en un hosting? osea yo tengo mi propio hosting y quiero utilizar esas DB para registrar mis productos.

esto usando este metodo para hacer mi conexion a base de datos:

Cita:
public Connection conecta_UserTable() throws
SQLException , ClassNotFoundException,
Exception {
String user = new String();
String pass = new String();
String url = new String();
user = ""; pass= "";
url = "jdbc:odbc:users"; //prot:subprot:dsn
Connection con = null;
//registrar el driver
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
//crear la conexion
con = DriverManager.getConnection(url,user,pass);
System.out.println("la conexion es : "+ con);
//si retorna null entonces No hay conexion
//si retorna diferente de null entonces Si hay conexion
return con;
}
quiero conectarme con una base de datos de un hosting ( GoDaddy ) a una base de datos especifica, supongo que sera algo asi :S

Cita:
public Connection conecta_UserTable() throws
SQLException , ClassNotFoundException,
Exception {
String user = new String();
String pass = new String();
String url = new String();
String ServerIP,Port;
ServerIP = "la ip de mi hosting";
Port = "puerto de mi base de datos";
user = ""; pass= "";
url = "ServerIP:Port:users"; //prot:subprot:dsn
Connection con = null;
//registrar el driver
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
//crear la conexion
con = DriverManager.getConnection(url,user,pass);
System.out.println("la conexion es : "+ con);
//si retorna null entonces No hay conexion
//si retorna diferente de null entonces Si hay conexion
return con;
}
no estoy muy seguro de que va en cada uno, en los datos del hosting no me proporciona ningun puerto de la DB ( MySQL, q es con lo q trabajan los hosting) asi q asumi que mi String url seria algo asi: url="87.65.122.183:3306:users";

alguien me puedo corregir, decir si sta bien o no mal o decirme como seria, los por toda mi vida xD!

Última edición por GunMiNiHo; 03/07/2009 a las 13:00
  #2 (permalink)  
Antiguo 03/07/2009, 21:17
Avatar de Markcoz  
Fecha de Ingreso: noviembre-2006
Mensajes: 158
Antigüedad: 17 años, 5 meses
Puntos: 2
Respuesta: Java y base de datos

Seria algo asi:

Cita:
Class.forName("org.gjt.mm.mysql.Driver").newInstan ce();
con = DriverManager.getConnection("jdbc:mysql://87.65.122.183:3306/users", "usuario", "password");
Esto seria usando el driver de mysql
  #3 (permalink)  
Antiguo 06/07/2009, 18:21
 
Fecha de Ingreso: enero-2009
Mensajes: 65
Antigüedad: 15 años, 3 meses
Puntos: 3
Respuesta: Java y base de datos

aja :D hmm thanks :P, si algo he visto en mi server gracias :D voy a chekar haber q tal me va :P.


otra cosa hmm por ejemplo digamos q en mi BD tengo 1000 personas registradas y kiero los 1000 correos de las personas mi query seria algo asi?:

Cita:
SELECT Emails FROM Users;
y utilizaria un while para el recorrido de mi query algo asi:

Cita:

public Producto buscarxcodigo(String codigo){

Producto p= new Producto();
Connection con=null;
String w = "Select * from fanclub where Codigo=?";
try {
con = abrir_DB_clubfan();
PreparedStatement ps= con.prepareStatement(w);
ps.setString(1,codigo);
ResultSet rs=ps.executeQuery();
if (rs.next()){
p.setCodigo(rs.getInt("Codigo"));
p.setNombre(rs.getString("Nombre"));
p.setEdad(rs.getInt("Edad"));
p.setFechaIngreso(rs.getString("FechaIngreso"));
p.setApellido(rs.getString("Apellido"));
p.setStatus(rs.getString("Status"));
p.setEmail(rs.getString("Email"));
p.setFechaNacimiento(rs.getString("FechaNacimiento "));
p.setSexo(rs.getString("Sexo"));

}
System.out.println("El Fan: "+p.getApellido()+" "+p.getNombre()+" con codigo: "+p.getCodigo()+ " tiene un status en el club de: "+p.getStatus());
} catch (SQLException ex) {
//Logger.getLogger(Operaciones.class.getName()).log( Level.SEVERE, null, ex);
ex.printStackTrace();
} catch (ClassNotFoundException ex) {
//Logger.getLogger(Operaciones.class.getName()).log( Level.SEVERE, null, ex);
ex.printStackTrace();
} catch (Exception ex) {
// Logger.getLogger(Operaciones.class.getName()).log( Level.SEVERE, null, ex);
ex.printStackTrace();
}

finally{
cerrar(con);
}

return p;

}

esa uso para solo sacar 1 solo registro pero...? tendria q utilizar un vector para almacenar los 1000 emails q kiero sacar? :S

otra cosa :S

para usar MySQL en un hosting tambien necesito registrarlo en OBDC?

me bota este error:

Cita:
java.lang.ClassNotFoundException: org.gjt.mm.mysql.Driver

Última edición por GunMiNiHo; 06/07/2009 a las 20:08
  #4 (permalink)  
Antiguo 06/07/2009, 23:40
Avatar de ezefarina  
Fecha de Ingreso: junio-2009
Mensajes: 91
Antigüedad: 14 años, 10 meses
Puntos: 2
De acuerdo Respuesta: Java y base de datos

Hola GunMiNiHo, tu código está bastante bien... Te pongo en negrita las modificaciónes que hice para devolver todos los registros.

public Producto buscarxcodigo(String codigo){

Producto p;
Connection con=null;
String w = "Select * from fanclub where Codigo=?";
try {
con = abrir_DB_clubfan();
PreparedStatement ps= con.prepareStatement(w);
ps.setString(1,codigo);
ResultSet rs=ps.executeQuery();
List <Producto> lista;
while (rs.next()){
if (lista==null) lista= new ArrayList <Producto>();

p= new Producto();
p.setCodigo(rs.getInt("Codigo"));
p.setNombre(rs.getString("Nombre"));
p.setEdad(rs.getInt("Edad"));
p.setFechaIngreso(rs.getString("FechaIngreso"));
p.setApellido(rs.getString("Apellido"));
p.setStatus(rs.getString("Status"));
p.setEmail(rs.getString("Email"));
p.setFechaNacimiento(rs.getString("FechaNacimiento "));
p.setSexo(rs.getString("Sexo"));
lista.add(p);
}
System.out.println("El Fan: "+p.getApellido()+" "+p.getNombre()+" con codigo: "+p.getCodigo()+ " tiene un status en el club de: "+p.getStatus());
} catch (SQLException ex) {
//Logger.getLogger(Operaciones.class.getName()).log( Level.SEVERE, null, ex);
ex.printStackTrace();
} catch (ClassNotFoundException ex) {
//Logger.getLogger(Operaciones.class.getName()).log( Level.SEVERE, null, ex);
ex.printStackTrace();
} catch (Exception ex) {
// Logger.getLogger(Operaciones.class.getName()).log( Level.SEVERE, null, ex);
ex.printStackTrace();
}

finally{
cerrar(con);
}

return p;

}



En cuanto al error que te da, estoy seguro de que es por que tenés el jar de los drivers de MySQL. Lo podés bajar desde cualquier lado.



Espero que sirva y suerte con eso ;)
Slds!
  #5 (permalink)  
Antiguo 08/07/2009, 09:07
 
Fecha de Ingreso: enero-2009
Mensajes: 65
Antigüedad: 15 años, 3 meses
Puntos: 3
Respuesta: Java y base de datos

En cuanto al error que te da, estoy seguro de que es por que tenés el jar de los drivers de MySQL. Lo podés bajar desde cualquier lado.



Espero que sirva y suerte con eso ;)
Slds![/QUOTE]


:D gracias voy a probar el metodo :P,

en cuanto al error del MySQL, ya tengo el driver pero no se que hacer con el driver para q me funcione :S

OK ^.^, pero esto es para obtener los resultados en un lista :D, por ejemplo yo tengo 1000 personas registradas en mi sistema y los 1000 registrados tienen un mail, quiero que esos 1000 correos los muestre en un Jtable o un TextArea.

haber dejame probar unas ideas y depues escribo xP!

Última edición por GunMiNiHo; 08/07/2009 a las 16:52
  #6 (permalink)  
Antiguo 09/07/2009, 09:07
Avatar de ezefarina  
Fecha de Ingreso: junio-2009
Mensajes: 91
Antigüedad: 14 años, 10 meses
Puntos: 2
Respuesta: Java y base de datos

El driver lo tenés que incluir en el java build path, donde tenés los otros jars de los que se vale tu proyecto. Suele ser la carpeta lib .

Con respecto a introducir los datos en el JTable, tendrías 2 métodos. Uno es cargarlo, recorriendo la lista de emails que te devuelve la base de datos. El otro es directamente pasandole el ResultSet al JTable. Acá te paso un link con el ejemplo para este segundo caso (el del resultset). Pero que con pocas modificaciones también serviría para hacer el caso de cargar el JTable recorriendo la lista.

Yo personalmente, optaría por recorrer la lista, simplemente por un tema de orden, de las capas de datos, etc etc. Soy un tanto ortodoxo en cuanto a la arquitectura de capas XD

Suerte !!
Slds
  #7 (permalink)  
Antiguo 13/07/2009, 21:36
 
Fecha de Ingreso: enero-2009
Mensajes: 65
Antigüedad: 15 años, 3 meses
Puntos: 3
Respuesta: Java y base de datos

no veo el link ='(

pero lo incluyo una vez q compilo el proyecto o que?
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 12:17.