Java - BD y JAVA

 
Vista:

BD y JAVA

Publicado por Juan Ignacio (2 intervenciones) el 29/03/2008 12:54:23
Estoy haciendo un programa de gestion de una peña quinielista y necesito conectar el codigo JAVA con una BD que tenga los usuarios de esa peña, podria alguien explicarme por encima como va ese tema? nunca he conectado codigo con una BD, a poder ser si es con una BD de Access mejor, ya que es sencillo hacerla.

Gracias!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:BD y JAVA

Publicado por Luis Castro (80 intervenciones) el 29/03/2008 22:38:58
Si deseas conectar una base de datos cualquier que sea necesitas leer sobre la tecnologia JDBC la cual te permite conectar cualquier base de datos mysql, prossgrest, oracle, acces etc...

te dejo el codigo de ejemplo aqui de una que hago en possgres

el drive lo dan las paginas de los fabricante, algunos esatn en sun.

en Access creo que no necesitas drive averigualo nunca he usado eso
LEE SOBRE JDBC
NO es dificil pero tienes que intertarlo.

tambien sql tiene su metodo grafico

/*
* Conexion.java
*
* Created on 11 de marzo de 2008, 02:47 PM
*
*
*/

//package basedatos;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import javax.swing.JOptionPane;

/**
*
* @author Luis Castro
*/
public class Conexion {

/** Creates a new instance of Conexion */
private String driverPath= "org.postgresql.Driver"; // aqui cambias el drive sea mysql, etc.
private String url ="jdbc:postgresql://localhost:5432/isonet"; // la ubicacion de tu base importante : puerto 5432, 8808 etec modificalo o la ip si esta en red
private String usuario="postgres"; // el usuario como te registras en tu pase
private String pass= "CENSURADO"; // jaja tu contraseña
private Connection conexion=null;

public void setPath(String driverPath2)
{
driverPath=driverPath2;
}

public String getPath()
{
return driverPath;
}

public void setUsuario(String usuario2)
{
usuario=usuario2;
}


public void setPassword(String password)
{
pass=password;
}



public String getUsuario()
{
return usuario;
}

public void setURL(String url2)
{
url=url2;
}


public Connection getConexionEstablecida()
{
return conexion;
}



private void registrarDriver()
{
try
{
Class.forName(driverPath).newInstance();
//JOptionPane.showMessageDialog(null,"Se registro");

}
catch (Exception e)
{
JOptionPane.showMessageDialog(null,"La clase Registro genero: "+e.toString()+" "+e.getMessage()+
" JDBC Driver error ******************** Codigo de error: 001");

System.exit(1);
}
}

public void conexionLocal()
{
registrarDriver() ;
try
{
conexion=DriverManager.getConnection(url,usuario,pass);
// JOptionPane.showMessageDialog(null,"Se conecto");
}
catch (SQLException ex)
{
JOptionPane.showMessageDialog(null,ex.toString()+" "+ex.getMessage()+"Error al conectarse a la BD *****************************Codigo de error: 2 ");
System.exit(0);
}
}


/*Metodo que cierra la conexion a la base de datos, primero verifica si la conexion es diferente de nula
*o sea, si se instancio algun objeto
*
*/
public void cerrarConexionBD()
{
if(conexion!=null)
{
try
{
if(!conexion.isClosed())
try
{
conexion.close();
}
catch (SQLException ex)
{
JOptionPane.showMessageDialog(null,ex.toString()+" "+ex.getMessage()+"Error al cerrar la conexion a la BD"+" ****************** Codigo de error: 3");
}
}
catch (SQLException ex)
{
JOptionPane.showMessageDialog(null,ex.toString()+" "+ex.getMessage()+" Error al cerrar la conexion a la BD"+" ****************** Codigo de error: 4");
}
}//fin de if
// JOptionPane.showMessageDialog(null,"Se cerro");
}


}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:BD y JAVA

Publicado por Juan Ignacio (2 intervenciones) el 29/03/2008 23:35:43
muchas gracias, el problema que tengo ahora es al insertar una nueva columna en esa base de datos, tengo el siguiente metodo que querria que me lo hiciera:

public void registraUsuario(ResultSet rs) throws IOException, SQLException{
EntradaEstandar e = new TecladoEstandar();
rs.moveToInsertRow();
rs.updateInt("idUsuario", 5);
System.out.println("Introduzca el mail: ");
rs.updateString("mail", e.leerCadena());
System.out.println("Introduzca la contraseña: ");
rs.updateString("pass", e.leerCadena());
rs.updateRow();
rs.insertRow();
System.out.println(".: Usuario registrado correctamente:. ");
}

Que hago mal?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:BD y JAVA

Publicado por Luis Castro (80 intervenciones) el 30/03/2008 00:29:48
mucho para mi esta re mal tu metodo.
esta es mi forma si deseas adaptala a tu aplicacion
o que que hace mas

INSERTAR COLUMNA O UN DATO EN UNA COLUMNA ?
INSERTAR COLUMNA desde tu base
DATO EN UNA COLUMNA desde tu aplicacion

YO LO HAGO DE ESTA MANERA : te lo mando es mi manera
OBSERVA CIONES

donde esta tu PreparedStatement;???
instruccion = objCon.getConexionEstablecida().prepareStatement(sentencia);

donde esta tu conexion??

Conexion objCon = new Conexion(); // la clase del post anterior
objCon.conexionLocal();

donde esta tu sentancia a ejecutar?
String sentencia ="UPDATE cat_puestos SET descripcion= ? WHERE tipo_puesto = ?"; //sql UPDATE tabla Set columna WHERE condicion
por que usas esto?
System.out.println// de perdido JOptionInputDialogo y luego usar un parseint para acomodarlo al tipo de dato que deseas

por que usas
throws IOException, SQLException{

asi nunca vas a ver donde esta tu error

para mi esta re mal tu metodo. esta es mi forma si deseas adaptala a tu aplicacion
Para que si es el resultado de tu consulta ???? y un UPDATE no devuelve nada
un select si??
ResultSet rs

import java.sql.PreparedStatement;
import java.sql.SQLException;
import javax.swing.JOptionPane;
/**
*
* @author Luis Castro
*/
public class CambioCatalogo {

public boolean cambiar(int id ,String dato)
{
try {
Conexion objCon = new Conexion();
objCon.conexionLocal();
dato.toLowerCase();
PreparedStatement instruccion = null;
String sentencia ="UPDATE cat_puestos SET descripcion= ? WHERE tipo_puesto = ?";
//JOptionPane.showMessageDialog(null, sentencia);
boolean band = new Validacion().isDuplicado(dato);
if(!band)
{
instruccion = objCon.getConexionEstablecida().prepareStatement(sentencia);
instruccion.setString(1,dato);
instruccion.setInt(2,id);
instruccion.executeUpdate();

JOptionPane.showMessageDialog(null, dato + " se ha modificado exitosamente");
objCon.cerrarConexionBD();
return(true);
}
else
{
JOptionPane.showMessageDialog(null,"Lo sentimos "+dato+ "" +" esta duplicado");
return(false);
}
} catch (SQLException ex) {

JOptionPane.showMessageDialog(null,"Error 1 en el metodo cambiar de la clase"+this.getClass().getName() +ex);

}
return(false);

}
}

NOTA NO LE HAGAS CASO A VALIDACION ES LA QUE USO PARA EVITAR DUPLICIDAD DE ACTIVIDADE EN MIS CATALOGOS
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:BD y JAVA

Publicado por mario (622 intervenciones) el 31/03/2008 21:15:08
Luis pues para mi esta re mal tu clase :D ya q no usas ningun tipo de patron de diseño debes ser mas cuidadoso en no mezclar la interfaz grafica con clases de persistencia.

Los dos pueden checar este LINK

http://java.sun.com/blueprints/patterns/DAO.html

SAludos comunidad open source!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar