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

Consulta a la DB.

Estas en el tema de Consulta a la DB. en el foro de Java en Foros del Web. Hola, muy buenas. Dispongo de este código: (conexión). @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Java: Ver original package mysqltest ; import java.sql.* ;   public class MysqlTest { ...
  #1 (permalink)  
Antiguo 02/11/2013, 15:42
Avatar de TSG
TSG
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 373
Antigüedad: 10 años, 7 meses
Puntos: 9
Consulta a la DB.

Hola, muy buenas.

Dispongo de este código: (conexión).

Código Java:
Ver original
  1. package mysqltest;
  2. import java.sql.*;
  3.  
  4. public class MysqlTest {
  5.  
  6.     // Definimos el driver
  7.     static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";  
  8.     // Definimos la url de conexion y el nombre de la base de datos
  9.     static final String DB_URL = "jdbc:mysql://localhost/java";
  10.  
  11.     // Definimos el nombre de usuario y contraseña
  12.     static final String USER = "root";
  13.     static final String PASS = "";
  14.  
  15.     public static void main(String[] args) {
  16.         Connection conn = null;
  17.         Statement stmt = null;
  18.         try{
  19.             // Registramos el drivers del JDBC
  20.             Class.forName("com.mysql.jdbc.Driver");
  21.  
  22.             // Conectamos con la base de datos
  23.             System.out.println("Conectamos con la base de datos...");
  24.             conn = DriverManager.getConnection(DB_URL,USER,PASS);
  25.  
  26.             // Cerramos el ResultSet, Statement y Connection
  27.             rs.close();
  28.             stmt.close();
  29.             conn.close();
  30.         }catch(SQLException se){
  31.             // Manejador de errores
  32.             se.printStackTrace();
  33.         }catch(Exception e){
  34.             // Manejador de errores para Class.forName
  35.             e.printStackTrace();
  36.         }
  37.        
  38.     }
  39. }

Y lo tengo en un archivo llamado conexión y no me salta ningún error.. pero me gustaría saber lo siguiente:

Tengo un JFrame en otro archivo (clase)... y quiero colocar unos input (jlabel,textfield...) que mme ejecute una consulta a la base de datos osea que me ingrese determinados datos en la base de datos.
  #2 (permalink)  
Antiguo 03/11/2013, 12:40
 
Fecha de Ingreso: junio-2013
Mensajes: 16
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: Consulta a la DB.

si se puede con lo que tienes, de hecho lo que tienes en el codigo antes mencionado por ti es la conexion a la BD. ahora debajo de eso tienes que agregar algo asi:
Código Java:
Ver original
  1. public  public boolean setProductos( clsProductos objProductos )
  2.     {
  3.         boolean boValido = true;
  4.         try
  5.         {  
  6.            
  7.             this.getConectar();
  8.             Statement objStm    = this.objConexion.createStatement();
  9.  
  10.             String sql = "insert into productos values ("+objProductos.getCodigoProducto()+",'"+objProductos.getNombreProducto()+"',"+objProductos.getCantidad()+")";
  11.             objStm.executeUpdate(sql);
  12.  
  13.             objStm.close();
  14.            
  15.         }
  16.         catch(Exception ex)
  17.         {
  18.             boValido    = false;
  19.             this.setCerrarConexion();
  20.         }
  21.  
  22.         return boValido;
  23.     }{
  24.  
  25. }

lo que hago aca es obtener los datos de clsProductos el cual es mi clase antes definida clsProductos donde tengo los accesadores y mutadores que tendre en mi clase y donde ingresare y modificare la informacion. objProductos es la variable objeto que le asigno a clsProductos.
despues agrego un boValido el cual valida si mi conexion esta abierta o cerrada.
Try catch para evitar errores que puedan que tu programa se quede en un loop infinito.
Sentencia sql la cual la almaceno en una variable llamada sql la cual despues utilizo para ingresar los datos a la BD.

Es en lo que te puedo ayudar, de todas maneras si tienes alguna duda puedes hacerla o postear el codigo que tienes y encantado estare de ayudarte.
  #3 (permalink)  
Antiguo 03/11/2013, 15:22
Avatar de TSG
TSG
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 373
Antigüedad: 10 años, 7 meses
Puntos: 9
Respuesta: Consulta a la DB.

Me acabo de dar cuenta:

Me da error en esta línea: rs.close(); (Me subraya el rs).

Código Java:
Ver original
  1. package myconex;
  2.  
  3. import java.sql.*;
  4.  
  5. public class Conexion {
  6.    
  7.     // Definimos el driver
  8.     static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";  
  9.     // Definimos la url de conexion y el nombre de la base de datos
  10.     static final String DB_URL = "jdbc:mysql://localhost/java";
  11.  
  12.     // Definimos el nombre de usuario y contraseña
  13.     static final String USER = "root";
  14.     static final String PASS = "";
  15.  
  16.     public static void main(String[] args) {
  17.         Connection conn = null;
  18.         Statement stmt = null;
  19.         try{
  20.             // Registramos el drivers del JDBC
  21.             Class.forName("com.mysql.jdbc.Driver");
  22.  
  23.             // Conectamos con la base de datos
  24.             System.out.println("Conectamos con la base de datos...");
  25.             conn = DriverManager.getConnection(DB_URL,USER,PASS);
  26.  
  27.             // Cerramos el ResultSet, Statement y Connection
  28.             rs.close();
  29.             stmt.close();
  30.             conn.close();
  31.         }catch(SQLException se){
  32.             // Manejador de errores
  33.             se.printStackTrace();
  34.         }catch(Exception e){
  35.             // Manejador de errores para Class.forName
  36.             e.printStackTrace();
  37.         }
  38.        
  39.     }
  40. }

¿Cómo podría solucionarlo?.
  #4 (permalink)  
Antiguo 03/11/2013, 16:30
 
Fecha de Ingreso: junio-2013
Mensajes: 16
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: Consulta a la DB.

de hecho tu respuesta esta aca:
Código Java:
Ver original
  1. public static void main(String[] args) {
  2.         Connection conn = null;
  3.         Statement stmt = null;
si te fijas, rs es la abreviacion de ResultSet el cual es una variable y por ende en tu codigo no esta inizializada, por eso te da error.

El Codigo Deberia quedar algo asi:

Código Java:
Ver original
  1. public static void main(String[] args) {
  2.         Connection conn = null;
  3.         Statement stmt = null;
  4.         ResultSet rs = null;

ojala te resulte ;)
  #5 (permalink)  
Antiguo 03/11/2013, 16:33
 
Fecha de Ingreso: junio-2013
Mensajes: 16
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: Consulta a la DB.

aca te dejo como yo manejo las clases de conexion en un programa en java. ojala puedas entenderlo y que te sirva claro:

Código Java:
Ver original
  1. public class clsBd {
  2.  
  3.     Connection objConexion  = null;
  4.  
  5.     public clsBd()
  6.     {
  7.        
  8.     }
  9. /* Abrir conexion a la base de datos*/
  10.      public void getConectar()
  11.     {
  12.         try
  13.         {
  14.             if ( this.objConexion == null )
  15.             {
  16.                 String  nmDriverManager = "com.mysql.jdbc.Driver";
  17.                 String  url             = "jdbc:mysql://localhost/taller";
  18.                 String  user            = "root";
  19.                 String  pass            = "";
  20.  
  21.                 Class.forName(nmDriverManager);
  22.  
  23.                 this.objConexion   = DriverManager.getConnection(url, user, pass);
  24.             }
  25.         }
  26.         catch( Exception ex )
  27.         {
  28.             ex.printStackTrace();
  29.         }
  30.     }
  31. /* Cerrar conexon a la base de datos*/
  32.     private void setCerrarConexion()
  33.     {
  34.         try
  35.         {
  36.             if ( this.objConexion.isClosed() == false )
  37.             {
  38.                 this.objConexion.close();
  39.             }
  40.         }
  41.         catch( Exception ex )
  42.         {
  43.  
  44.         }
  45.         finally
  46.         {
  47.             this.objConexion    = null;
  48.         }
  49.     }

Etiquetas: 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 14:10.