Jueves 14 de Noviembre de 2024, 12:44
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación General
»
Java
(Moderador:
arielb
) »
Rescatar datos en Java con MySQL
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Rescatar datos en Java con MySQL (Leído 3045 veces)
manurodri189
Miembro MUY activo
Mensajes: 117
Rescatar datos en Java con MySQL
«
en:
Sábado 7 de Febrero de 2009, 15:03 »
0
A ver si me podeis echar una mano en esto, es un ejemplo sencillo pero no doy con ello. Gracias
Ahora mismo estoy usando EasyPHP y Netbeans.
Me he puesto manos a la obra, para ver como funciona, con un ejemplo muy sencillito. Un boton, y un jText, cuando pinche el boton rescato los datos de la BBDD. La BBDD tiene una tabla, Persona, con un campo Nombre, con 2 filas, pepe y juan.
Bien es un ejemplo sencillito, para ir tocando poco a poco y ver como funciona.
El caso es que no se rescatar los datos de la BBDD y tratarlo como variables de java.
He hecho esta estructura de paquetes:
La clase Agente.Java, es la que hace la conexion y creo que está bien, la pongo aqui:
Código: Text
package Persistencia;
import java.sql.DriverManager;
import java.sql.SQLException;
import com.mysql.jdbc.Connection;
public class Agente {
protected static Agente mInstancia = null;
protected Connection mBD;
protected String driver = "com.mysql.jdbc.Driver";
protected String usuario = "root";
protected String contraseña = "";
protected String url="jdbc:mysql://localhost/Persona/";
protected Agente() throws SQLException, ClassNotFoundException {
Class.forName(driver);
mBD = (Connection) DriverManager.getConnection(url, usuario, contraseña);
}
public static Agente getAgente() throws SQLException, ClassNotFoundException {
if (mInstancia == null)
mInstancia = new Agente();
return mInstancia;
}
public Connection getBD() throws SQLException {
if(mBD.isClosed())
mBD = (Connection) DriverManager.getConnection(url, usuario, contraseña);
return mBD;
}
}
En la clase persona es la que se supone que debe rescatar los datos de la BBDD, no? Pues lo he hecho asi:
Código: Text
package Dominio;
import Persistencia.Agente;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
public class Persona {
String nombre;
public Persona (){
nombre="";
}
public Persona (String nombre){
this.nombre=nombre;
}
public void setNombre(String n){
nombre=n;
}
public String getNombre(){
return nombre;
}
public void recuperarInformacion() throws ClassNotFoundException, SQLException {
String SQL="SELECT Nombre FROM persona";
String nomAux="";
Connection bd=null;
PreparedStatement p=null;
bd=Agente.getAgente().getBD();
p=bd.prepareStatement(SQL);
p.setString(1,getNombre());
ResultSet r=p.executeQuery();
while(r.next()){
nomAux=r.getString(1);
}
bd.close();
setNombre(""+nomAux);
}
}
El método recuperar información es el que no me cuadra, pero creo que está bien de todos modos.
Y el metodo del botón para que me lo muestre en el jText es el siguiente, que este creo que es el que realmente tengo problemas:
Código: Text
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
bbddFunciona=true;
try {
per.recuperarInformacion();
} catch (ClassNotFoundException ex) {
Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE, null, ex);
} catch (SQLException ex) {
jTextPane1.setText("Se ha producido un error al conectar con la base de datos.");
bbddFunciona=false;
Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE, null, ex);
}
}
A ver si me echais una mano, porque debe de ser una chorrada pero no doy con ello. Muchas gracias.
Salu2
Tweet
arielb
Moderador
Mensajes: 771
Nacionalidad:
Re: Rescatar datos en Java con MySQL
«
Respuesta #1 en:
Viernes 20 de Febrero de 2009, 16:19 »
0
Hola, a lo rápido no veo error en tú código, solo que falta una linea al invocar el método de recuperar información.
Código: Java
private
void
jButton1ActionPerformed
(
java.
awt
.
event
.
ActionEvent
evt
)
{
bbddFunciona
=
true
;
try
{
per.
recuperarInformacion
(
)
;
jTextPane1.
setText
(
per.
getNombre
(
)
)
;
}
catch
(
ClassNotFoundException
ex
)
{
Logger.
getLogger
(
NewJFrame.
class
.
getName
(
)
)
.
log
(
Level.
SEVERE
,
null
, ex
)
;
}
catch
(
SQLException
ex
)
{
jTextPane1.
setText
(
"Se ha producido un error al conectar con la base de datos."
)
;
bbddFunciona
=
false
;
Logger.
getLogger
(
NewJFrame.
class
.
getName
(
)
)
.
log
(
Level.
SEVERE
,
null
, ex
)
;
}
}
Espero te sirva
"Porque de tal manera amó Dios al mundo que dio a su hijo unigénito para que todo aquél que en él crea no se pierda mas tenga vida eterna"
Juan 3:16
http://coder-pa.blogspot.com
manurodri189
Miembro MUY activo
Mensajes: 117
Re: Rescatar datos en Java con MySQL
«
Respuesta #2 en:
Viernes 20 de Febrero de 2009, 16:38 »
0
Gracias tio, ya conseguí que funcionase.
Ahora me falta tratar objetos blob con java, me puedes pasar algún tutorial o algún método para ver como se hace? Gracias
Salu2
arielb
Moderador
Mensajes: 771
Nacionalidad:
Re: Rescatar datos en Java con MySQL
«
Respuesta #3 en:
Viernes 20 de Febrero de 2009, 17:20 »
0
Bueno para el caso de guardar un archivo en el un campo blob lo utilizo así
Código: Java
File
fichero
=
new
File
(
nombreArchivo
)
;
FileInputStream
streamEntrada
=
new
FileInputStream
(
fichero
)
;
long
tamano
=
fichero.
length
(
)
;
int
tam
=
(
int
)
tamano
;
byte
[
]
buf
=
new
byte
[
tam
]
;
streamEntrada.
read
(
buf
)
;
BLOB blob
=
BLOB.
createTemporary
(
con,
true
, BLOB.
DURATION_SESSION
)
;
OutputStream
blobEscribe
=
blob.
getBinaryOutputStream
(
)
;
blobEscribe.
write
(
buf
)
;
blobEscribe.
flush
(
)
;
PreparedStatement
pstmt
=
null
;
pstmt
=
con.
prepareStatement
(
"INSERT INTO "
+
" ARCHIVOS(CIA,ID,DOCUMENTO,TIPO_ARCHIVO) "
+
" VALUES(?,?,?,?)"
)
;
pstmt.
setString
(
1
, codigo
)
;
pstmt.
setString
(
2
, id
)
;
pstmt.
setBlob
(
3
, blob
)
;
pstmt.
setString
(
4
,tipoArchivo
)
;
pstmt.
executeUpdate
(
)
;
con.
commit
(
)
;
pstmt.
close
(
)
;
streamEntrada.
close
(
)
;
file.
delete
(
)
;
y para extraerlo después lo hago así
Código: Java
conn.
setAutoCommit
(
false
)
;
String
cdSelect
=
"SELECT DOCUMENTO,TIPO_ARCHIVO FROM TABLA WHERE ID = '"
+
pId
+
"'"
;
Statement
stmt
=
conn.
createStatement
(
)
;
ResultSet
rs
=
stmt.
executeQuery
(
cdSelect
)
;
if
(
rs.
next
(
)
)
{
ruta
=
directorio
+
nombreArchivo
;
Blob
blob
=
rs.
getBlob
(
"DOCUMENTO"
)
;
String
tipoArchivo
=
rs.
getString
(
"TIPO_ARCHIVO"
)
;
ruta
+=
"."
+
tipoArchivo
;
File
file
=
new
File
(
ruta
)
;
file2
=
new
FileOutputStream
(
file
)
;
InputStream
entrada
=
blob.
getBinaryStream
(
)
;
int
size
=
(
int
)
blob.
length
(
)
;
byte
[
]
buffer
=
new
byte
[
size
]
;
int
longitud
=
-
1
;
while
(
(
longitud
=
entrada.
read
(
buffer
)
)
!=
-
1
)
{
file2.
write
(
buffer,
0
, longitud
)
;
}
}
else
{
mensaje
=
"No se encontró el registro"
;
}
"Porque de tal manera amó Dios al mundo que dio a su hijo unigénito para que todo aquél que en él crea no se pierda mas tenga vida eterna"
Juan 3:16
http://coder-pa.blogspot.com
manurodri189
Miembro MUY activo
Mensajes: 117
Re: Rescatar datos en Java con MySQL
«
Respuesta #4 en:
Viernes 20 de Febrero de 2009, 17:39 »
0
Gracias, en unos dias le echo un ojo, porque ahora estoy un poco liadillo con otras cosas, asi que luego te cuento como fue, y te comento si tengo alguna duda y demás. Muchas gracias por estar atento al hilo.
Salu2
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación General
»
Java
(Moderador:
arielb
) »
Rescatar datos en Java con MySQL