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

Duda básica conexión bd

Estas en el tema de Duda básica conexión bd en el foro de Java en Foros del Web. Hola, tengo una duda básica... estoy aprendiendo solo la conexión a bd y encontré un aporte en donde sale la siguiente conexión que probé y ...
  #1 (permalink)  
Antiguo 06/11/2013, 14:09
 
Fecha de Ingreso: agosto-2011
Mensajes: 100
Antigüedad: 12 años, 9 meses
Puntos: 1
Pregunta Duda básica conexión bd

Hola, tengo una duda básica... estoy aprendiendo solo la conexión a bd y encontré un aporte en donde sale la siguiente conexión que probé y funciona (no tira error):

Código Java:
Ver original
  1. package clases;
  2. import java.sql.*;
  3. import javax.swing.JOptionPane;
  4.  
  5. public class AccesoDatos {
  6.     private Connection con = null;
  7.     private ResultSet rs = null;
  8.     private Statement sentencia = null;
  9.     private String parámetros;
  10.    
  11.     public void Conexion(){
  12.         try{
  13.             parámetros = "jdbc:mysql://localhost/empresa";
  14.             Class.forName("com.mysql.jdbc.Driver");
  15.             con = DriverManager.getConnection(parámetros,"root","");
  16.         }catch(SQLException e){
  17.             JOptionPane.showMessageDialog(null,"Error en la conexión a MYSQL.","Error",0);
  18.             System.exit(0);
  19.         }catch(Exception e){
  20.             JOptionPane.showMessageDialog(null,"Error en la conexión.","Error",0);
  21.             System.exit(0);
  22.         }
  23.     }
  24.    
  25. }

Ahora no sé muy bien cómo usarla porque no logro encontrar la otra parte del aporte donde la usa para guardar datos... se supone que se hace otra clase JFrame donde se llama a la clase AccesoDatos desde el evento ActionPerformed de un botón... ¿pero cómo se haría para usar la clase de conexión y empezar a guardar datos?

Código Java:
Ver original
  1. private void btnguardarActionPerformed(java.awt.event.ActionEvent evt) {                                          
  2. // ??????
  3. // se crea un objeto de la clase AccesoDatos o algo?
  4.     }

¿Alguien me orienta por favor?
  #2 (permalink)  
Antiguo 06/11/2013, 14:31
 
Fecha de Ingreso: noviembre-2012
Mensajes: 40
Antigüedad: 11 años, 6 meses
Puntos: 7
Respuesta: Duda básica conexión bd

Solo te faltaría un método que te retornara el objeto Connection, para poder acceder al método prepareStatement.

Saludos.
  #3 (permalink)  
Antiguo 06/11/2013, 15:00
 
Fecha de Ingreso: agosto-2011
Mensajes: 100
Antigüedad: 12 años, 9 meses
Puntos: 1
Respuesta: Duda básica conexión bd

Es que esa parte no entiendo... ¿cómo sería si el método es void?
  #4 (permalink)  
Antiguo 06/11/2013, 15:42
 
Fecha de Ingreso: noviembre-2012
Mensajes: 40
Antigüedad: 11 años, 6 meses
Puntos: 7
Respuesta: Duda básica conexión bd

Me pillas a contrapié hace mucho que no hago JDBC, esa clase tampoco es la mejor del mundo pero puede servirte, partiendo de esa base la idea es algo como esto:

Código Java:
Ver original
  1. import java.sql.Connection;
  2. import java.sql.DriverManager;
  3. import java.sql.SQLException;
  4.  
  5. import javax.swing.JOptionPane;
  6.  
  7. public class AccesoDatos {
  8.     private static Connection con = null;
  9.  
  10.     public static Connection getConexion() {
  11.         try {
  12.             if (AccesoDatos.con != null) {
  13.                 String parametros = "jdbc:mysql://localhost/empresa";
  14.                 Class.forName("com.mysql.jdbc.Driver");
  15.                 AccesoDatos.con = DriverManager.getConnection(parametros, "root", "");
  16.             }
  17.             else {
  18.                 return AccesoDatos.con;
  19.             }
  20.         }
  21.         catch (SQLException e) {
  22.             JOptionPane.showMessageDialog(null, "Error en la conexión a MYSQL.", "Error", 0);
  23.             System.exit(0);
  24.         }
  25.         catch (Exception e) {
  26.             JOptionPane.showMessageDialog(null, "Error en la conexión.", "Error", 0);
  27.             System.exit(0);
  28.         }
  29.     }
  30.  
  31. }

Con hacer AccesoDatos.getConexion() ya te devolvería el objeto para utilizar el método prepareStatement.

No creo que el patrón Singleton influya para las conexiones, lo ideal sería crearte alguna factoría de objetos.

Si alguien puede iluminar algo más el tema que se presente jeje que ando oxidado de JDBC.

Saludos.
  #5 (permalink)  
Antiguo 10/11/2013, 20:34
 
Fecha de Ingreso: agosto-2011
Mensajes: 100
Antigüedad: 12 años, 9 meses
Puntos: 1
Respuesta: Duda básica conexión bd

Uhmm... ¿sabes qué sería mejor? he tratado de buscar material para aprender bien a usar la conexión a BD por Netbeans, y no he encontrado. Yo tenía un profe que era certificado en JAVA, y explicaba súper bien. Pero cómo nunca más programé, la información se perdió...

Pero me acuerdo que ocupaba variables como ResultSet, Sentence, Connection... si me dijeras dónde hay buen material que explique el completo uso de estos y la conexión a BD me ayudaría.

Las Appis de java son bien complejas de leer, y en foros hay demasiado material, pero nada formal como una guía o manual.

Saludos.
  #6 (permalink)  
Antiguo 10/11/2013, 22:38
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 3 meses
Puntos: 260
Sonrisa Respuesta: Duda básica conexión bd

Hola,

Cita:
Iniciado por MarronsDispatcher Ver Mensaje
No creo que el patrón Singleton influya para las conexiones, lo ideal sería crearte alguna factoría de objetos.
El patrón genérico mas usado es el pool de conexiones.

Cita:
Iniciado por Feligo Ver Mensaje
...
Las Appis de java son bien complejas de leer, y en foros hay demasiado material, pero nada formal como una guía o manual.
Posiblemente te sea de alguna ayuda,
http://chuidiang.org/content/java-y-base-de-datos

Saludos,
  #7 (permalink)  
Antiguo 11/11/2013, 07:03
 
Fecha de Ingreso: noviembre-2012
Mensajes: 40
Antigüedad: 11 años, 6 meses
Puntos: 7
Cita:
Iniciado por HackmanC:4527090
Hola,

Cita:
Iniciado por MarronsDispatcher Ver Mensaje
No creo que el patrón Singleton influya para las conexiones, lo ideal sería crearte alguna factoría de objetos.
El patrón genérico mas usado es el pool de conexiones.

Saludos,
El patrón Singleton es un patrón MVC, no tiene nada que ver con el pool de conexiones.

Un patron bastante extendido referente a bbdd podría ser el patrón DAO, que igual es a lo que te refieres, o no.

Tampoco entiendo el debate generado sobre cual es el más usado.
  #8 (permalink)  
Antiguo 11/11/2013, 21:06
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 3 meses
Puntos: 260
Sonrisa Respuesta: Duda básica conexión bd

Hola,

Cita:
Iniciado por MarronsDispatcher Ver Mensaje
El patrón Singleton es un patrón MVC, no tiene nada que ver con el pool de conexiones.
No comprendo bien si estás afirmando o cuestionando lo que comenté; pero en sí el patrón Singleton es independiente de MVC, posiblemente se utilice de alguna forma relacionada en ciertas circunstancias, pero esto no significa que estén directamente vinculados o sean inherentes uno del otro. En otras palabras se puede usar Singletón sin MVC y MVC sin Singleton.

Adicionalmente, el patrón mas usado para manejar el getConection() es el pool de conexiones. De otra forma habrá que informarle a los creadores de Glassfish, JBoss, etc., que por favor dejen de usar el pool de conexiones en los JNDI de JDBC y se enfoque en crear un Singleton para usar solamente una conexión en toda la aplicación.

Cita:
Iniciado por MarronsDispatcher Ver Mensaje
Un patron bastante extendido referente a bbdd podría ser el patrón DAO, que igual es a lo que te refieres, o no.
Los componentes DAO deben ser independientes de la conexión, simple y sencillamente porque podrían ser transaccionales, es decir, varios DAO podrían participar en una sola transacción y por lo tanto en la misma conexión. En otras palabras un DAO nunca debería abrir una conexión por si mismo. De otra forma habría que informarle de esto a Spring Data, Hibernate, etc. que por favor se enfoquen.

Cita:
Iniciado por MarronsDispatcher Ver Mensaje
Tampoco entiendo el debate generado sobre cual es el más usado.
Será simplemente porque considero que usar Singleton o una factoría de objetos para manejar lo que se debería se manejar con un pool de conexiones me parece inadecuado.

Saludos,

ps: Supongo que se entienden las ironías.

Etiquetas: bd, clase, string
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 20:22.