Ver Mensaje Individual
  #1  
Antiguo 07-03-2009
uper uper is offline
Miembro
 
Registrado: abr 2004
Posts: 296
Reputación: 21
uper Va por buen camino
Como Abrir una conexion de manera global

buenas tardes, tengo instalado mysql y netbeans 6.5, lo que pretendo hacer con la conexion a la base de datos
es que sea de forma global como se hace comun en los lenguajes y de ahi poder realizar todas mis conexiones.

En los desarrollos con delphi o vb(creo un modulo.bas declaro el nombre de la conexion como public para despues
abrirla al cargarse en la forma principal y en cada forma solo me refiero a ella para mis operaciones como
conexion.Execute(sql) al terminar la cierro por completo)

es pocible hacer algo semejante.
por un lado tengo una clase TestConnection.java que es la conecion, despues tengo en una frame
coloco un boton, y ese boton tengo q instanciar a la clase para llamar a los objetos declarados, y realizar
las operaciones:

Código PHP:
 private void btnConectarActionPerformed(java.awt.event.ActionEvent evt) {
         
TestConnection conexion = new TestConnection();
         
conexion.conectar(); 
ahora que mejor que cuando se ejecute la forma se carge la conexion y se cierre hasta que termine el programa
lo hize.... pero ahora puse el codigo en un boton para hacer una operacion pero no se puede por que solo
funciona en el evenyo declarado, existe la forma de que pueda llamar desde cualquier lado mi objeto Coneccion

Código PHP:
private void formWindowOpened(java.awt.event.WindowEvent evt) {
        
TestConnection conexion = new TestConnection();
         
conexion.conectar();


este es codigo que realize y me da errores por que no encuentra a que conexion es ?
siendo que estan en declarados como public y claro es bajo la instancia si se encuentran
siempre y cuando esten en dicho evento, como puedo lograr esto ya que lo que no quiero es
ejecutar otra conecion al servidor ya que ya abri una y bajo esa siempre pueda trabajar:

Código PHP:
private void btnConectarActionPerformed(java.awt.event.ActionEvent evt) {

  
////TestConnection conexion = new TestConnection();  Si quito lo comenarios corre sin problemas
      
ResultSet rs;  //variable local
  ////conexion.conectar()
      
etiqueta.setText("Se ha establecido la Conexion " conexion.url);
      try {
      
rs=stm.executeQuery("select * from eq_categorias");
      while(
rs.next()){
       
System.out.println("Registro " rs.getString(1)+ " " rs.getString(2));
      }
      
conexion.conn.close();
      }
      catch(
SQLException ex) { System.out.println(ex); }

 }
    
        
//TestConnection .java

import java.sql.*;

public class 
TestConnection {
 public 
String url="jdbc:mysql://localhost/base";
 public 
Statement stm;
 public 
ResultSet rsgl;
 public 
Connection conn null;

 public 
void conectar(){
 try {
   Class.
forName("org.gjt.mm.mysql.Driver");
   
//Class.forName("com.mysql.jdbc.Driver).newInstance();
   
conn=DriverManager.getConnection(url,root,clave);
   if (
conn !=null) {
      
System.out.println("Coneccion a la base de datos");
      
stm=conn.createStatement();
      
//conn.close();
   
}
  }
 catch(
SQLException ex) { System.out.println(ex); }
   catch(
ClassNotFoundException ex)  { System.out.println(ex); }
 }
//fin deconectar


les agragesco si alguien me puede comentar como instanciar la clase como si dejeramos
publicamente.
gracias
Responder Con Cita