Java - mostrar datos en text field

   
Vista:

mostrar datos en text field

Publicado por CHIVIS (5 intervenciones) el 26/11/2008 21:03:41
hola estoy haciendo una base de datos en java y necesito hacer una busqueda de los datos y que me los muestre en text field, se que es algo sencillo pero no se como hacerlo espero respuesta de alguien, es urgente para mi, 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:mostrar datos en text field

Publicado por James (207 intervenciones) el 26/11/2008 21:30:30
Que motor de DB usas MySQL, SQLServer, o JAVADB, si es java, bueno con todo te pongo una clase de conexion que yo uso, en esta clase esta la coneccion, usas la conexion y con la consulta(metodo realizarConsulta) obtienes el resultset con los datos, esos datos serian los que pones en el TextField


import java.sql.*;

/**
*
* @author Jaime Ruales
*
*/
public class Conexion {


public static final String DRIVER_MYSQL = "com.mysql.jdbc.Driver";

public static final String DRIVER_JAVA_DB = "org.apache.derby.jdbc.ClientDriver";

public static final String DRIVER_JDBC_ODBC = "sun.jdbc.odbc.JdbcOdbcDriver";

public static final String DRIVER_SQL_SERVER = "com.microsoft.jdbc.sqlserver.SQLServerDriver";

public static final int PUERTO_MYSQL = 3306;

public static final int PUERTO_SQL_SERVER = 1433;

public static final int PUERTO_JAVA_DB = 1527;

private String driver = null;
private String host;
private int port;
private String database;
private String user;
private String passw;
private Connection connection;

/**
* Crea una coneccion a una DB determinada a traves de los parametyros especificados

*/
public Conexion(final String controlador, final String host, final int puerto,
final String baseDatos, final String usuario,
final String clave) throws SQLException {
if (controlador == null) {
throw new SQLException("La cadena para identificacion del driver es nula");
}

if (usuario == null) {
throw new SQLException("Usuario de bdd nulo");
}

if (clave == null) {
this.passw = new String();
}

this.host = host;
this.port = puerto;
this.driver = controlador;
this.database = baseDatos;
this.user = usuario;
this.passw = clave;

if ((!controlador.equals(DRIVER_MYSQL)) &
(!controlador.equals(DRIVER_JDBC_ODBC)) &
(!controlador.equals(DRIVER_SQL_SERVER)) &
(!controlador.equals(DRIVER_JAVA_DB))) {
throw new SQLException("Driver no identificado");
}

inicializar();

}

/**
*
* @param c Connection
*/
public Conexion(Connection c) {
connection = c;
}

private void inicializar() throws SQLException {
try {
Class.forName(driver).newInstance();
} catch (Exception ex) {
ex.printStackTrace();
}

String url = null;

if (driver.equalsIgnoreCase(DRIVER_MYSQL)) {
host = host == null ? "localhost" : host;
url = "jdbc:mysql://" + host + ":" + port + "/" + database +
"?user=" +
user;
connection = DriverManager.getConnection(url);
} else if (driver.equalsIgnoreCase(DRIVER_JDBC_ODBC)) {
url = "jdbc:odbc:" + database;
connection = DriverManager.getConnection(url, user,
passw);

}else if(driver.equalsIgnoreCase(DRIVER_JAVA_DB)){
url = "jdbc:derby://" + host + ":" + port + "/" + database;
connection = DriverManager.getConnection(url, user, passw);
}else {
host = host == null ? "localhost" : host;
url = "jdbc:microsoft:sqlserver://" + host + ":" + port +
";DatabaseName=" + database +
";User=" + user + ";Password=" + passw;
connection = DriverManager.getConnection(url);
}

}

/**
*
* @return Coneccion a la DB
*/
public Connection conseguirConexion() {
return connection;
}

/**
*
* @return Statement para interactuar con la DB
* @throws SQLException
*/
public Statement conseguirDeclaracion() throws SQLException {
return connection.createStatement();
}
/**
* Retorn ana instancia de <code>java.sql.ResultSet</code>, con los datos
* correspondientes a la consulta realizada
* @param sql Cadena que representa la consulta en lenguaje SQL a partir de
* la cual se obtiene los datos
* @return Datos resultantes de la consulta
* @throws java.sql.SQLException
*/
public ResultSet realizarConsulta(String sql) throws SQLException{
if(sql == null)
throw new SQLException("La consulta no puede ser nula");

ResultSet result = null;
result = conseguirDeclaracion().executeQuery(sql);
return result;
}
/**
* Permite cerrar la coexion que se ha establecido a la DB
*/
public void cerrarConexion(){
try {
conseguirConexion().close();
} catch (SQLException ex) {
System.out.println("EEROR, " + ex);
}
}
/**
* Ejecuta algun tipo de proceso SQL ya sea insercion, actualizacion o
* eliminacion de datos
* @param sql Cadena SQL que representa la accion a realizar en la DB
* @throws java.sql.SQLException
*/
public void ejecutarProceso(String sql) throws SQLException{
if(sql == null)
throw new SQLException("La operacion no puede ser nula");

conseguirDeclaracion().executeUpdate(sql);

}

}
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:mostrar datos en text field

Publicado por CHIVIS (5 intervenciones) el 26/11/2008 21:58:49
Uso mysql.
la conexion la hago en un button con este codigo

import javax.sql.*;
import java.sql.*;
import java.lang.String;

public class evaluacion extends javax.swing.JFrame {
static Connection conexion=null;
static Statement sentencia=null;
static ResultSet resultado=null;

try
{
Class.forName("com.mysql.jdbc.Driver");
conexion=DriverManager.getConnection("jdbc:mysql://localhost/nutricion","root","");
sentencia=conexion.createStatement();
resultado=sentencia.executeQuery("select*from evaluacion");
resultado.first();

TFECHA.setText(resultado.getString("FECHA"));
TFOLIO.setText(resultado.getString("FOLIO"));
TNOMBRE.setText(resultado.getString("NOMBRE"));

}
catch(SQLException msgerror){
msgerror.printStackTrace();
System.exit(1);
}
catch(ClassNotFoundException classe){
classe.printStackTrace();
System.exit(1);
}

y para motrar lo datos solo tengo este codigo pero es para mostrarlos desde el primero hasta el ultimo y no se como hacerlo para buscar uno en especifico este es el codigo

try
{
resultado.next();
TFECHA.setText(resultado.getString("FECHA"));
TFOLIO.setText(resultado.getString("FOLIO"));
TNOMBRE.setText(resultado.getString("NOMBRE"));

}
catch(SQLException msgerror){ //Recuperacion de errores de SQL
msgerror.printStackTrace();
System.exit(1);
}
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:mostrar datos en text field

Publicado por James (207 intervenciones) el 27/11/2008 15:55:55
Bueno tu codigo esta bien donde muetras veo que muestras solo la primera fila del resultset, y si este estuviese vacio salta la excepcion,

Solo crea una clase que tebga tres variables fecha, folio y nombre, cada variable tendria sus metodos get y set, supon la clase se llama Ciudad tendrias ademas un constructor que reciba los datos iniciales "Ciudad(String fecha, String folio,String nombre)", haces un while y vas llenando un ArrayList de estas intancias algo asi

ArrayList<Ciudad> ciudades = new ArrayList<Ciudad>();
while(resultado.next()){
String fecha = resultado.getString("FECHA");
String folio = resultado.getString("FOLIO");
String nombre = resultado.getString("NOMBRE");
ciudades.add(new Ciudad(fecha, folio, nombre));
}

Luego puedes ir buscando una ciudad en especial por alguna de sus descripciones algo asi, en este caso busco por nombre

for(Ciudad c: ciudades){
if(c.getNombre.equalsIgnoreCase("New York")){
TFOLIO.setText(c.getFolio());
TFECHA.setText(c.getFecha());
TNOMBRE.setText(c.getNombre());
break; ///paro el for y salgo si encontro algo
}
}

Bueno esa es una idea de como yo lo haria, el nombre que yo pongo de "New York" deberia estar en alguna variable que guarde el parametro de busqueda

Espero te ayude de algo cualquier duda con gusto.
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:mostrar datos en text field

Publicado por chivis (5 intervenciones) el 27/11/2008 20:56:36
muchas gracias me sirvio de mucho. Tengo otra duda, para agregar mas datos a la base de datos, es decir kiero llevar el registro de la evolucion q tiene un paciente en su estado nutricional, solo q la base de datos no me acepta repetir datos como el nombre pero pues lo necesito poner pq hay muchos pacientes en un consultorio nutricional, como le puedo hacer, la base de datos la estoy haciendo en XAMPP.
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:mostrar datos en text field

Publicado por James (207 intervenciones) el 27/11/2008 21:22:15
Bueno entonces usas MySQL basicamente, personalmente hablando de pacientes hubiera pueste como clave la cedula de ciudadania, identificacion o algo asi, el nombre podria repetirse, ahora con llo de la evolucion del paciente pues eso se resuelve facilmente con una tabla adicional de control o estado del paciente o evolucion, bueno tu defines el nombre que le des a la tabla la relacion seria de uno a varios, se me ocurre en esta tabla guardes el idPaciente(nombre en tu caso), fecha, estado, y alguna observacion, bueno tu defines lo que requieras, entonces como la relacion es de uno a varios por cada paciente tendras varios estados, los que puedes consultar simplemente verificando que el idPaciente de la tabla de Pacientes se al mismo quel de la tabla de Evolucion, y podrias entonces ordenar los datos por fecha y tendrias algo parecido al control diario que hacen los hospitales, espero te sirva de guia lamentablemente no tebgo algun codigo a mano pero te dejo la idea

Suerte...
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