Está en la página 1de 16

14/7/2015

CoDejaVu:EjemploConectandoJavaconMySql

Inicio

AcercaDe...

QueesCoDejaVu?

IndicedeContenido

VideoTutorialesCoDejaVu

lunes,3dejuniode2013

Buscaresteblog

Ejemplo Conectando Java con MySql


En esta entrada vamos a tocar uno de los puntos
fundamentales en el desarrollo de software, no
vamosaentrarendetallesdequeesunaBD,nilos
tipos existentes ni como crearlas entre muchos
otros temas en torno a esto, solamente muestro
una pequea aplicacin (muy bsica) donde
veremosdeformafcilcomoconectarnosaunaBD
paraconsultaryregistrarinformacin
....ademsdaremospasoafuturasentradassobrelosPatronesdeDiseo,yaque
enestaaplicaremoslosPatronesVO(ValueObject)yDAO(DataAccessObjetc).
Requisitos.
Ambientededesarrollo(EnestecasoEclipse)
JDKinstalado.
MySqlInstalado
mysqlconnectorjava5.0.8bin(lopuedenbajardesdeaqu)
ConocimientosBasicosdeProgramacin.
GanasdeContinuar.

Buscar

Contacto
CristianHenao
Seguir

849

IngenierodeSistemas
yComputacin
(UniversidaddelQuindo)
TecnlogoenAnlisisyDesarrollode
losSistemasdeInformacin(Sena
Quindo).
Blog:http://codejavu.blogspot.com/
Facebook:https://www.facebook.com/
codejavu
youtube:http://goo.gl/IiPNSy
Twitter:@chenaooo
Linkedin:
http://www.linkedin.com/pub/cristian
davidhenaohoyos/69/b90/84a
Vertodomiperfil

EnMarcha.
Bueno,vamosahacerunaaplicacinsimple,laideadeestetutorialesvercomo
conectarnosaMySqldesde Java, por eso no nos preocuparemos tanto en como
se presentaran nuestra informacin, ni los tipos de datos, ni que tan ptimo sea
nuestro cdigo, simplemente vamos a crear una base desde donde podamos
trabajar.
LaAplicacin.
El siguiente diagrama muestra la estructura de nuestra aplicacin (Ojo no es un
diagramadeclasescompleto,esmasusadoparadarclaridadalsistema,poreso
nonosenfocaremosenasociaciones,tiposdedatosoetc)

http://codejavu.blogspot.com.ar/2013/06/ejemploconectandojavaconmysql.html

Suscribete!!!Quieresseguir
esteblog?Participaenelsitio

1/16

14/7/2015

CoDejaVu:EjemploConectandoJavaconMySql
Participarenestesitio
GoogleFriendConnect

Miembros(102) Ms

Yaeresmiembro?Iniciarsesin

95

Comovemoslaaplicacinesbsica,nosconectaremosaunaBDdondetenemos
unanicatablaymedianteJavavamosaaccederadichaBDparapoderregistrar
y consultar informacin, la idea es poder registrar y consultar personas, en la
aplicacintendremosunMenprincipalconestasopciones.....
LaBasedeDatos.

ContactosG+
CristianHenao
Aadiracrculos

Nuestra base de datos solo tendr la tabla persona con los datos bsicos de
registro(sisedeseasepuededarotroenfoquealatablaotrabajarconmuchas
mas),elScriptparalacreacineselsiguiente:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

CREATEDATABASE/*!32312IFNOTEXISTS*/`codejavu`/*!40100DEFAULTCHARACTER

USE`codejavu`;

/*Tablestructurefortable`persona`*/

849metienenensuscrculos.
DROPTABLEIFEXISTS`persona`;

CREATETABLE`persona`(
HistorialCoDejaVu
`id`int(10)NOTNULL,
`nombre`varchar(30)defaultNULL,
2015(3)
`edad`int(3)defaultNULL,
2014(17)
`profesion`varchar(30)defaultNULL,
`telefono`decimal(10,0)defaultNULL,
2013(59)
PRIMARYKEY(`id`)
)ENGINE=InnoDBDEFAULTCHARSET=latin1;
diciembre(2)

noviembre(2)
/*Dataforthetable`persona`*/

Vertodo

octubre(4)
septiembre(4)

Empecemos!!!
Para iniciar vamos a crear un proyecto java en Eclipse, por cuestiones de
organizacin crearemos las clases de nuestro diagrama separndolas por
paquetes, esto con el fin de tener nuestro proyecto mas estructurado y fcil de
entender,as.

agosto(4)
julio(3)
junio(8)
EjemploPatronDelegate
EjemploPatrnObserver
EjemploModeloVista
Controlador
QuesonlosPatronesdeDiseo
?
PremioLiebsterAward
EjemploConectandoJavacon
MySql
ManejodeExcepcionesenJava
EjemplodePolimorfismoEn
Java
mayo(18)

Como vemos tenemos un paquete por cada clase, en estos momentos la


http://codejavu.blogspot.com.ar/2013/06/ejemploconectandojavaconmysql.html

abril(14)

2/16

14/7/2015

CoDejaVu:EjemploConectandoJavaconMySql

aplicacin es pequea por lo tanto no nos da problemas de organizacin, sin


embargo a medida que vaya creciendo se hace importante tener nuestras clases
agrupadasfacilitandoaseltrabajofuturoylamantenibilidaddenuestrosistema.

Categorias

ClaseDbConnection.

Eclipse (14) Excepciones (1) google

Abstract(2)AbstractFactory(2)Adapter
Apache Ant (3) continuous
integration (6) control de versiones (3)
(2)

code (2) Herencia (4) Integracin

Esta clase ser nuestra cadena de conexion, aqu definiremos los parmetros
requeridosparaconectarnosalaBDcreadaanteriormente.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46

packageprueba.connection;
importjava.sql.*;

/**
*Clasequepermiteconectarconlabasededatos
*@authorchenao
*
*/
publicclassDbConnection{
/**Parametrosdeconexion*/
staticStringbd="codejavu";
staticStringlogin="root";
staticStringpassword="";
staticStringurl="jdbc:mysql://localhost/"+bd;

Connectionconnection=null;

/**ConstructordeDbConnection*/
publicDbConnection(){
try{
//obtenemoseldriverdeparamysql
Class.forName("com.mysql.jdbc.Driver");
//obtenemoslaconexin
connection=DriverManager.getConnection(url,login,password);

if(connection!=null){
System.out.println("Conexinabasededatos"+bd+"OK\n");
}
}
catch(SQLExceptione){
System.out.println(e);
}catch(ClassNotFoundExceptione){
System.out.println(e);
}catch(Exceptione){
System.out.println(e);
}
}
/**Permiteretornarlaconexin*/
publicConnectiongetConnection(){
returnconnection;
}

publicvoiddesconectar(){
connection=null;
}
}

En la clase estamos aplicando el manejo de excepciones, tema tratado en el


articulo anterior, vemos como se tiene contemplada la jerarqua de excepciones
pertinente.

ClasePersonaVO.
Estaclasenospermitedarunmanejomuchomasorganizadoyseguroanuestra
informacin, en ella estamos aplicando el patrn VO (Value Object) con el cual
nosaseguramosquelosdatosviajenenunsoloobjeto,evitandonosoloelenvi
degrancantidaddeparmetrossinotambinunmayorcontrol............Debemos
saber que por cada tabla de nuestra BD se tiene que construir su equivalente
claseVO.
1

packageprueba.vo;

http://codejavu.blogspot.com.ar/2013/06/ejemploconectandojavaconmysql.html

java
(17) Java Swing (23)
continua (6) Interface (3)

jboss (4) jboss seam (3) Jboss Tools


(2)JDialog(3)JDK(4)Jenkins(7) JSF
(3) MVC (3) MySql (1) Observer (2)

Patrones de Diseo (8) PerGem


space (1) Plugin (3) Polimorfismo (3)

ProgramacinOrientadaaObjetos(7)
Properties (1) repositorio (3) seam gen (1)

Singleton(2)svn(5)

LoMasVisto
Ejemplode
PolimorfismoEnJava
Enestaentrada
vamosatrabajarun
ejemplorpidoy
simpleaplicandoelconceptode
Polimorfismo,enelpostanterior
vimosalgunasconsi...
EjemploModeloVista
Controlador
Enlaentradasobre
patronesdeDiseose
hablasobreelpatrn
MVC,enestaoportunidadvamos
explicarunejemplopracticodonde
seapl...
EclipseoNetbeans?
Hola,enesta
oportunidadquiero
hacerunbreakenlas
entradassobreJava
Swing..........................Y
Porqu?...........porquea...
ComparandoFechas
EnJava
Enestaentrada
veremosunodelos
procesosobligados
cuandosetrabajaenestecampo
deldesarrollodeSoftware,sin
importarellenguajeq...
EjemploConectando
JavaconMySql
Enestaentrada
vamosatocarunode
lospuntos
fundamentaleseneldesarrollode
software,novamosaentraren
detallesdequeesunaB...
EjemploJFileChooser
Nuevamenteregreso
conunejemplo
prcticosobreunode
loscomponentesJava
Swing..............eldadehoyles
traigoelJFileChooser...
ConceptosBsicosde
ProgramacinOrientadaaObjetos
Enestaentradaveremosalgunos

3/16

14/7/2015

CoDejaVu:EjemploConectandoJavaconMySql

2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77

/**
*CLaseVOconlosatributosdelcampoempleado
*@authorchenao
*
*/
publicclassPersonaVO{

privateIntegeridPersona;
privateStringnombrePersona;
privateIntegeredadPersona;
privateStringprofesionPersona;
privateIntegertelefonoPersona;

/**
*@returntheidPersona
*/
publicIntegergetIdPersona(){
returnidPersona;
}
/**
*@paramidPersonatheidPersonatoset
*/
publicvoidsetIdPersona(IntegeridPersona){
this.idPersona=idPersona;
}
/**
*@returnthenombrePersona
*/
publicStringgetNombrePersona(){
returnnombrePersona;
}
/**
*@paramnombrePersonathenombrePersonatoset
*/
publicvoidsetNombrePersona(StringnombrePersona){
this.nombrePersona=nombrePersona;
}
/**
*@returntheedadPersona
*/
publicIntegergetEdadPersona(){
returnedadPersona;
}
/**
*@paramedadPersonatheedadPersonatoset
*/
publicvoidsetEdadPersona(IntegeredadPersona){
this.edadPersona=edadPersona;
}
/**
*@returntheprofesionPersona
*/
publicStringgetProfesionPersona(){
returnprofesionPersona;
}
/**
*@paramprofesionPersonatheprofesionPersonatoset
*/
publicvoidsetProfesionPersona(StringprofesionPersona){
this.profesionPersona=profesionPersona;
}
/**
*@returnthetelefonoPersona
*/
publicIntegergetTelefonoPersona(){
returntelefonoPersona;
}
/**
*@paramtelefonoPersonathetelefonoPersonatoset
*/
publicvoidsetTelefonoPersona(IntegertelefonoPersona){
this.telefonoPersona=telefonoPersona;
}
}

conceptosdela
programacin
orientadaaObjetos
(POO)..............................................
.Muc...
LeerArchivo
PropertiesenJava
EnelsegundoPostde
esteblogsemencion
laintencindepublicarentradas
sobrediversostemas,algunos
complejosotrosnotanto..........
ComocrearInterfaces
GraficasenEclipse
conWindowBuilder
Despusdemucho
meditarlo,voya
explicarlescmocrear
aplicacionesconinterfazgrfica
desdeEclipse,similaracomose
haceen...
EjemploVentanasen
Java
Enlaentradaanterior
conocimosanivel
generalalgunas
caractersticasdelos
componentesJFrameyJDialog,
vimosagrosomodoloprinc...

CoDejaVu!!!
CoDejaVu no es mas que la idea de
aportar un poco de conocimiento y
colaboracin a los que lo puedan
necesitar,yretribuirunpocodeloque
he podido aprender...........no espero
que muchos sigan mis Entradas, o
dejen comentarios, solo espero que
esto pueda ser de utilidad para
alguien.........ysilesirveaalguienmas
porquenocompartirlo?

Enlaces
Paperblog
Hace3meses

ComovemoscadacampodelatablapersonaesreflejadoenlaClasePersonaVO,
http://codejavu.blogspot.com.ar/2013/06/ejemploconectandojavaconmysql.html

4/16

14/7/2015

CoDejaVu:EjemploConectandoJavaconMySql

tambienaplicamosunpocoelconceptodeEncapsulacintratadoenunarticulo
anteriormediantelacreacindemetodossetterygetterporcadadatoprivado.
ClasePersonaDAO.
Estaclaseseralaencargadadegestionarelaccesoalosdatos,conellaaplicamos
un patrn DAO (Data Access Objetc) no entraremos en detalle (mas adelante se
presentaraunaentradasobreestePatrn)yaquebsicamentenecesitamossaber
que este patrn nos ensea la forma de obtener informacin de la BD mediante
mtodosCRUD(Create,Read,UpdateyDelete),asqueporcadatabladenuestraBD
debemostenerunaclaseDAOquelarepresente!!!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65

packageprueba.dao;

importjava.sql.PreparedStatement;
importjava.sql.ResultSet;
importjava.sql.SQLException;
importjava.sql.Statement;
importjava.util.ArrayList;
importjavax.swing.JOptionPane;
importprueba.connection.DbConnection;
importprueba.vo.PersonaVO;

/**
*Clasequepermiteelaccesoalabasededatos
*@authorchenao
*
*/
publicclassPersonaDAO
{

/**
*Permiteregistrarunempleado
*@parampersona
*/
publicvoidregistrarPersona(PersonaVOpersona)
{
DbConnectionconex=newDbConnection();
try{
Statementestatuto=conex.getConnection().createStatement();
estatuto.executeUpdate("INSERTINTOpersonaVALUES('"+persona.getIdPersona()+
+persona.getNombrePersona()+"','"+persona.getEdadPersona()+"','"
+persona.getProfesionPersona()+"','"+persona.getTelefonoPersona()+
JOptionPane.showMessageDialog(null,"SeharegistradoExitosamente"
estatuto.close();
conex.desconectar();

}catch(SQLExceptione){
System.out.println(e.getMessage());
JOptionPane.showMessageDialog(null,"NoseRegistrolapersona");
}
}

/**
*permiteconsultarelempleadoasociadoaldocumentoenviado
*comoparametro
*@paramdocumento
*@return
*/
publicArrayList<personavo>consultarPersona(intdocumento){
ArrayList<personavo>miEmpleado=newArrayList<personavo>();
DbConnectionconex=newDbConnection();

try{
PreparedStatementconsulta=conex.getConnection().prepareStatement(
consulta.setInt(1,documento);
ResultSetres=consulta.executeQuery();

if(res.next()){
PersonaVOpersona=newPersonaVO();
persona.setIdPersona(Integer.parseInt(res.getString("id")));
persona.setNombrePersona(res.getString("nombre"));
persona.setEdadPersona(Integer.parseInt(res.getString("edad")));
persona.setProfesionPersona(res.getString("profesion"));
persona.setTelefonoPersona(Integer.parseInt(res.getString("telefono"
miEmpleado.add(persona);

http://codejavu.blogspot.com.ar/2013/06/ejemploconectandojavaconmysql.html

5/16

14/7/2015

CoDejaVu:EjemploConectandoJavaconMySql

66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107

}
res.close();
consulta.close();
conex.desconectar();

}catch(Exceptione){
JOptionPane.showMessageDialog(null,"nosepudoconsultarlaPersona\n"
}
returnmiEmpleado;
}

/**
*permiteconsultarlalistadeempleados
*@return
*/
publicArrayList<personavo>listaDePersonas(){
ArrayList<personavo>miEmpleado=newArrayList<personavo>();
DbConnectionconex=newDbConnection();

try{
PreparedStatementconsulta=conex.getConnection().prepareStatement(
ResultSetres=consulta.executeQuery();
while(res.next()){
PersonaVOpersona=newPersonaVO();
persona.setIdPersona(Integer.parseInt(res.getString("id")));
persona.setNombrePersona(res.getString("nombre"));
persona.setEdadPersona(Integer.parseInt(res.getString("edad")));
persona.setProfesionPersona(res.getString("profesion"));
persona.setTelefonoPersona(Integer.parseInt(res.getString("telefono"
miEmpleado.add(persona);
}
res.close();
consulta.close();
conex.desconectar();

}catch(Exceptione){
JOptionPane.showMessageDialog(null,"nosepudoconsultarlaPersona\n"
}
returnmiEmpleado;
}

PorcuestionesdetiemponorealizaremostodoelCRUD,tansolovamosatrabajar
con los mtodos de registro y consulta (Los mtodos de actualizacin y
eliminacinsernunabuenatareaencasa))
Cadamtodousalacadenadeconexincreadaanteriormenteyseenfocaenuna
tarea en especifico, adems en cada uno hacemos uso de un objeto de tipo
PersonaVO, mediante el cual asignamos la informacin de nuestra tabla
persona,tantoparaelregistrocomoparalaconsultadeinformacin.
ClasePrincipal.
Enestaclasevamosahacerelllamadoatodoslosprocesosdenuestraaplicacin,
tendremos un men en el cual presentamos todas las opciones del sistema, as
mismosevalidaranlasentradasdelusuarioparaevitarposiblesinconsistenciasy
posteriormente se hace el llamado a la clase DAO que permite ejecutar los
procesosdeconexinconlaBD.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

packageprueba.principal;

importjava.util.ArrayList;
importjavax.swing.JOptionPane;
importprueba.dao.PersonaDAO;
importprueba.vo.PersonaVO;

publicclassPrincipal{

PersonaDAOmiPersonaDAO;

/**
*Mtodoprincipal,haceelllamadoalmendondese
*presentantodaslasopcionesdelsistema

http://codejavu.blogspot.com.ar/2013/06/ejemploconectandojavaconmysql.html

6/16

14/7/2015

CoDejaVu:EjemploConectandoJavaconMySql

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96

*@paramargs
*/
publicstaticvoidmain(String[]args){

PrincipalmiPrincipal=newPrincipal();
miPrincipal.verMenu();
}

/**
*Mtodoquepermitepresentarlasopcionesdelsistema.
*solicitaelingresodeunnumeroyseenviaasu
*correspondienteproceso
*/
privatevoidverMenu(){

StringtextoMenu="MenPrincipal\n\n";
textoMenu+="IngresealgunadelasopcionesdelMen\n";
textoMenu+="1.RegistrarPersona\n";
textoMenu+="2.ConsultarPersona\n";
textoMenu+="3.VerListaPersonas\n";
textoMenu+="4.Salir.\n\n";

try{
intseleccion=Integer.parseInt(JOptionPane.showInputDialog(textoMenu));
defineSeleccion(seleccion);
}catch(NumberFormatExceptione){
JOptionPane.showMessageDialog(null,"ErrorenelingresodeDatos,"
"solosepermitenvaloresnmericos","ERROR",JOptionPane.ERROR_MESSAGE);
verMenu();
}catch(Exceptione){
JOptionPane.showMessageDialog(null,"ErrorenelingresodeDatos,"
"solosepermitenvaloresnmericos","ERROR",JOptionPane.ERROR_MESSAGE);
verMenu();
}
}

/**
*Permitedeterminarqueaccionejecutardependiendodelparametrode
*ingresocorrespondientealasopcionesdelsistema
*@paramseleccion
*/
privatevoiddefineSeleccion(intseleccion){

System.out.println("Selecciona"+seleccion);

switch(seleccion){
case1:
registrarPersona();
verMenu();
break;
case2:
intdoc=Integer.parseInt(JOptionPane.showInputDialog("Ingreseelnumero"
"dedocumentodelapersona"));
buscarPersona(doc);
verMenu();
break;
case3:
obtenerRegistros();
verMenu();
break;
case4:
System.exit(0);
break;
default:
JOptionPane.showMessageDialog(null,"Ingreseun"+
"numerovalido","ADVERTENCIA",JOptionPane.WARNING_MESSAGE);
verMenu();
break;
}
}

/**
*Permitesolicitarlosdatosdelapersonaaregistrar,sesolicitanmediante
*unaventanadeingresoysealmacenanenunarreglocontodalainformacionusando
*paraestounciclofor,posteriormenteestosdatossonalmacenadosenel
*atributocorrespondientedelobjetopersonaparaserenviadoalmetododeregistro
*enlaclaseDAO
*/
privatevoidregistrarPersona(){
miPersonaDAO=newPersonaDAO();
PersonaVOmiPersona=newPersonaVO();

http://codejavu.blogspot.com.ar/2013/06/ejemploconectandojavaconmysql.html

7/16

14/7/2015

CoDejaVu:EjemploConectandoJavaconMySql

97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177

StringmensajeIngreso="Ingrese\n\n";

StringdatosSolicitados[]={"Documento:","Nombre:",
"Edad:","Profesin:","Telefono:"};
StringdatosPersona[]=newString[5];
for(inti=0;i<datosSolicitados.length;i++){
//solicitaelingresodeldatoysealmacenaenelarreglodedatosPersona
datosPersona[i]=JOptionPane.showInputDialog(null,mensajeIngreso+
datosSolicitados[i],"DatosPersona",JOptionPane.INFORMATION_MESSAGE);

System.out.println(datosSolicitados[i]+datosPersona[i]);
}

miPersona.setIdPersona(Integer.parseInt(datosPersona[0]));
miPersona.setNombrePersona(datosPersona[1]);
miPersona.setEdadPersona(Integer.parseInt(datosPersona[2]));
miPersona.setProfesionPersona(datosPersona[3]);
miPersona.setTelefonoPersona(Integer.parseInt(datosPersona[4]));

miPersonaDAO.registrarPersona(miPersona);

/**
*Permiteobtenerlalistadepersonasalmacenadaenlatablapersona
*silalistaseencuentravaciaquieredecirquenohaypersonasregistradas
*actoseguidosepresentaunmensajeenpantalla,sinoseimprimelalistade
*todaslaspersonasregistradasenlaBD
*/
privatevoidobtenerRegistros(){
miPersonaDAO=newPersonaDAO();
PersonaVOmiPersona;

//Seobtienelalistadepersonas
ArrayList<personavo>listaPersonas=miPersonaDAO.listaDePersonas();
//sevalidasiseobtuboonoinformacion
if(listaPersonas.size()>0){
intnumeroPersona=0;
//serecorrelalistadepersonasasignandosecadaposicionenunobjetopersona
for(inti=0;i<listaPersonas.size();i++){
numeroPersona++;
miPersona=listaPersonas.get(i);
System.out.println("****************Persona"+numeroPersona+"**********************"
System.out.println("IdPersona:"+miPersona.getIdPersona());
System.out.println("NombrePersona:"+miPersona.getNombrePersona());
System.out.println("EdadPersona:"+miPersona.getEdadPersona());
System.out.println("ProfesinPersona:"+miPersona.getProfesionPersona());
System.out.println("TelefonoPersona:"+miPersona.getTelefonoPersona());
System.out.println("*************************************************\n"
}
}else{
JOptionPane.showMessageDialog(null,"Actualmenteno"+
"existenregistrosdepersonas","INFORMACIN",JOptionPane.INFORMATION_MESSAGE);
}

/**
*Permitelaconsultadeunapersonaenespecificomedianteelenviode
*sudocumentodeidentidadcomoparametro,encasodequenoseretorne
*informacionsepresentaunmensajeenpantalla,sinoentoncesseimprimenlos
*datosdelapersonaencontrada
*@paramdocumento
*/
privatevoidbuscarPersona(intdocumento){
miPersonaDAO=newPersonaDAO();
PersonaVOmiPersona;
ArrayList<personavo>personasEncontrada=miPersonaDAO.consultarPersona(documento);
//sevalidaqueseencuentrelapersona
if(personasEncontrada.size()>0){
//serecorrelalistayseasignanlosdatosalobjetoparaimprimirlosvalores
for(inti=0;i<personasEncontrada.size();i++){
miPersona=personasEncontrada.get(i);
System.out.println("****************Persona*************************"
System.out.println("IdPersona:"+miPersona.getIdPersona());
System.out.println("NombrePersona:"+miPersona.getNombrePersona());
System.out.println("EdadPersona:"+miPersona.getEdadPersona());
System.out.println("ProfesinPersona:"+miPersona.getProfesionPersona());
System.out.println("TelefonoPersona:"+miPersona.getTelefonoPersona());
System.out.println("*************************************************\n"

http://codejavu.blogspot.com.ar/2013/06/ejemploconectandojavaconmysql.html

8/16

14/7/2015

CoDejaVu:EjemploConectandoJavaconMySql

178
179
180
181
182
183
184

}
}else{
JOptionPane.showMessageDialog(null,"Eldocumentoingresado"+
"nocorrespondeaningunapersona","INFORMACIN",JOptionPane.INFORMATION_MESSAGE);
}
}
}

Como se ve, tenemos la clase principal dividida en metodos para cada proceso,
esohacequepodamosdarleuntratamientoindividualacadauno,asiencasode
algun error facilmente podremos identificar en que metodo sucedio....... tambien
vemosqueenelmtodoverMenu()validamospormediodebloquestrycatch
losposibleserroresenelingresodedatosporpartedelusuario.
EjecutandolaAplicacin.
Al ejecutar la aplicacin se presenta el men principal donde ingresamos las
opciones correspondientes, pero hay que tener presente que previamente
debimoshaberagregadoelmysqlconnectoralbuildpathdelproyecto,sinonos
apareceraalgocomoesto:

Parasolucionarlosobreelproyectodamosclicderecho/configureBuildpath...
,buscamosaljardesdelarutadondelodescargamosydamosok

despusdeestoyatendremosnuestraaplicacinenfuncionamiento

Como se mencion al principio, es una aplicacin bsica y no nos enfocamos en


http://codejavu.blogspot.com.ar/2013/06/ejemploconectandojavaconmysql.html

9/16

14/7/2015

CoDejaVu:EjemploConectandoJavaconMySql

muchosdetalles.........tansoloenlalogicadeconexinquenosserviracomobase
parafuturosdesarrollos....
Mas adelante continuaremos con otros temas de interes donde aplicaremos los
conceptosvistosenestaentrada!!!

TambintepodraInteresar.
ManejodeExcepcionesenJava
StringVrsStringBufferVrsStringBuilder?
ComparandoFechasEnJava
IntegracinContinua,PrimerosPasosConJenkins
LeerArchivoPropertiesenJava
TutorialProyectoWebConEclipse
InstalacindelservidordeaplicacionesJBoss
InstalacinApacheANT

Hayalgoquequierasanexarocomentarsobreestaentrada?nodudes
enhacerlo.....ysitegust,teinvitoacompartirySuscribirteingresando
al botn "Participar en este sitio" para darte cuenta de mas entradas
comoesta)

PublicadoporCristianHenao
+15 Recomendar esto en Google

Etiquetas:Connection,java,MySql

40 comentarios:
Annimo 4deseptiembrede2013,20:35
Buenmaterialgraciasbro.mesirviodemucho....
Responder
Respuestas
CristianDavidHenaoHoyos 5deseptiembrede2013,16:55
Congusto,Mealegraquetesirviera)
Responder

Annimo 2deoctubrede2013,8:00
Excelente::::muy bn explicado me aclaro muchas dudas, ya lo implemente y me encuentro
implementandoelUDdelCRUD.....GraciassaludosdesdeBogot...:P
Responder
Respuestas
CristianDavidHenaoHoyos 6deoctubrede2013,14:54
Es con mucho gusto, y esa es la idea, que pueda servir y aclarar dudas (Y) Saludos
desdeArmenia)
Responder

pepeflores 1denoviembrede2013,15:27
Por fin alguien que pone un ejemplo explicado y con cdigo de diagrama de clases :/ eres el

http://codejavu.blogspot.com.ar/2013/06/ejemploconectandojavaconmysql.html

10/16

14/7/2015

CoDejaVu:EjemploConectandoJavaconMySql
primeroquelohacedespusde4hdebusqueda
nimo!
Responder
Respuestas
CristianHenao

4denoviembrede2013,14:09

jejejeMuchasGracias,yoseloqueeseso,buscarybuscar....poresolaideadeeste
blog,ayudarfacilyrapidamente)UnSaludo
Responder

VictorHugo 12denoviembrede2013,13:32
Muybuenoelprogramamesirvidereferencia,estemenporquenohacesunvdeoexplicndolo
seria genial debido a que he visto incontables vdeos de java en youtube y no he encontrado el
primero que explique esto que acabas de hacer y la verdad se entendera mejor. Yo como soy
nuevoenJAVAnoentendmuchosolomesirvidereferencia
Responder
Respuestas
CristianHenao

12denoviembrede2013,16:55

Hola Victor, gracias por comentar, y te cuento que si tengo pensado hacer algunos
videotutoriales, solo que por cuestiones de tiempo no me he metido de lleno, sin
embargohacepocoempececonunossobrelacreacindeproyectosweb(Nosoymuy
constanteperoahivamos),apenasterminesasecuenciainiciocontemasvarios,entre
esoseste)Unsaludoytedejoelenlacedeunodelosvideos)
http://www.youtube.com/watch?v=SAfGl7XbFNI
Responder

Annimo 2deabrilde2014,8:36
Yparacuandomssobrepatronesdediseo?.EstarabienunosobreelpatrnDAOquemeha
quedadounpocodifuso.ElpatrnVOsiparecesencillo,hacerunaclaseporcadatabladelaBD.
PeroelDAOsemeresiste.
Unsaludoyungrantrabajo.
Responder
Respuestas
CristianHenao

8demayode2014,8:48

Hola, en estos momentos tengo problemas con mi PC pero tengo preparadas unas
entradasparasubirmuypronto,graciasporcomentarunsaludo
Responder

Annimo 18demayode2014,7:46
Statement estatuto = conex.getConnection().createStatement() Hola, esa lnea que hace
precisamente?losStatementnolosentiendomucho.Gracias
Responder

jesusllanos 26demayode2014,20:55
Gracias,muybuenaentrada.Teagradezcoquecompartaselconocimiento.
Responder
Respuestas

http://codejavu.blogspot.com.ar/2013/06/ejemploconectandojavaconmysql.html

11/16

14/7/2015

CoDejaVu:EjemploConectandoJavaconMySql
CristianHenao

13dediciembrede2014,5:47

Esaeslaidea,conmuchogustojesus...
Responder

Annimo 29demayode2014,11:01
Muybueno,meacarmuchasdudas!!muchasgracias,seragenialsipudierasexplicarsobreel
DAOFactory...intentoentenderesoperomeparecemuyconfuson_n
Responder

ErickEduardo 1dejuniode2014,22:15
Hi,Sensei.
Unaconsulta...select*fromtb_preguntajejejejejejeXD
Esta revisando la clase PersonaDao y veo que el objeto conex (DbConnection conex = new
DbConnection())seusaencadamtodoporobviasrazones.Asqueaqunacemiduda.Noseria
mejor declarar la de manera global en de declarar de manera local. O es que estoy hablando
piedras
(_)
Responder
Respuestas
CristianHenao

13dediciembrede2014,5:51

HolaErick,frescotienesrazn,soloqueeltemaesquehayquetenermuchocuidado
cuandoserealizanconexionesalabasededatosportemasderendimiento,pueses
peligrosodejarunaBDabiertaporesolorecomendableessiempredespuesderealizar
el proceso, volverla a cerrar por eso se pone estatuto.close() y conex.desconectar()
.........ositerefieresarepetiresalinea....podriahacerseunsolometodoyllamarlocada
vez....(quepenalademora)
Responder

NJNC 4dejuniode2014,21:53
HolaCristian,porfavorsimepodrasayudarconlaconexinremotaamysql.Esdecirapartede
cambiarellocalhostporunaipenlaurlquemastengoquehacer,meexplico,yatengoenredel
servidordebasededatosyelservidordeaplicacin,segnaloqueinvestiguetengoquecrearun
usuarioenmysqlydarlepermisoparalaconexinremota,editarelcontenidodelarchivomy.inien
mysql(bindaddress=127.0.0.1porbindaddress=0.0.0.0)yotrossugierenconfigurarelfirewallde
windows para la escucha del puerto 3306 que hace uso myqsl... Ya lo intente y aun no logro la
conexinremota,leestarmuyagradecidoporsuprontarespuesta.
Responder
Respuestas
Annimo 11dejuniode2014,9:43
Mola,megusta!!

CristianHenao

13dediciembrede2014,5:52

HolaNJNCquepenanohaberpodidoresponder,soloqueporcuestionesdetiempome
ausent.......esperodentrodepocopublicarloqmesolicitasaunquetambnesperoque
yalosolucionaras...unsaludo
Responder

Annimo 4deagostode2014,9:06
HolaCristian,

http://codejavu.blogspot.com.ar/2013/06/ejemploconectandojavaconmysql.html

12/16

14/7/2015

CoDejaVu:EjemploConectandoJavaconMySql
pararealizarlapruebadetututorialdeformarapidahecopiadoelcodigoeneclipsesiguiendolas
instrucciones que has comentado. An as me aparece un error referente a 'ArrayList<
personavo>' en las classes Principal y PersonaDAO, donde Eclipse me da el error 'personavo
cannotberesolvedtoatype'...
Podriasindicarmeaquesedebeesteerrorycomosolucionarlo?
Muchasgracias
Ric
Responder
Respuestas
JosMaraValverdeBaena 26deabrilde2015,12:11
Estecomentariohasidoeliminadoporelautor.
Responder

PANA 20deagostode2014,11:26
Hola,
TengoelmismoproblemaqueCristian
"Annimo4deagostode2014,9:06
HolaCristian,
pararealizarlapruebadetututorialdeformarapidahecopiadoelcodigoeneclipsesiguiendolas
instrucciones que has comentado. An as me aparece un error referente a 'ArrayList<
personavo>' en las classes Principal y PersonaDAO, donde Eclipse me da el error 'personavo
cannotberesolvedtoatype'...
Podriasindicarmeaquesedebeesteerrorycomosolucionarlo?"
Gracias.
Responder
Respuestas
LexGaravito 24deagostode2014,2:51
Estecomentariohasidoeliminadoporelautor.

LexGaravito 24deagostode2014,2:54
tenia el mismo problema. lo que tienes que hacer es cambiar "personavo" por
"PersonaVO"enelarraylist...suerte!
Responder

Annimo 26deagostode2014,10:07
Muybuenaexplicacin,graciaslofelicitoysigaadelantedifundiendoconocimiento.!xitos!
Responder

CynthiaEsparza 30deagostode2014,20:02
aminomesirvi,cuandovoyaingresareltelfonomesale"Solosepermitendatosnumricos",y
noentiendoquepasa
Responder
Respuestas
Annimo 9deseptiembrede2014,10:19
A mi me paso lo mismo y era por la conexion a la base de datos, comprueba la

http://codejavu.blogspot.com.ar/2013/06/ejemploconectandojavaconmysql.html

13/16

14/7/2015

CoDejaVu:EjemploConectandoJavaconMySql
contraseayelpuerto
Responder

Annimo 16deseptiembrede2014,1:37
Enhorabuenaportanclarotutorial!Animoymuchasgracias!
Responder
Respuestas
CristianHenao

13dediciembrede2014,5:55

graciasatiporcomentar
Responder

Annimo 24deseptiembrede2014,20:58
Graciasporcompartirelconocimientoconlareddeprogramadores.
xitoyunabrazo.
Responder
Respuestas
CristianHenao

13dediciembrede2014,5:54

graciasatiporcomentar
Responder

Annimo 5dediciembrede2014,12:34
Excelenteaporte,muchasgracias!!!
Responder
Respuestas
CristianHenao

13dediciembrede2014,5:55

graciasatiporcomentar
Responder

JaderGarcia 14deenerode2015,6:36
mesacodeunadudaquetenia!!
excelenteaporte!!
Muchasgracias!!
Responder

AzulBarboza 14deenerode2015,12:14
Exelentee!Despusdemuchobuscarmeacabasdesacardemuchasdudas!Muchasgracias
Responder

VAN 26deenerode2015,8:30
Excelente,muchasgracias
TendrsalgnejemplodondeutilicesunORMenunaaplicacindeEscritorio.
Responder

http://codejavu.blogspot.com.ar/2013/06/ejemploconectandojavaconmysql.html

14/16

14/7/2015

CoDejaVu:EjemploConectandoJavaconMySql
Annimo 23deabrilde2015,14:30
labasededatoslacreasteeneclipseolateniaspreviamentecreadaenmysql
Responder
Respuestas
JosMaraValverdeBaena 26deabrilde2015,12:13
LapuedescrearfacilmenteconXAMPPyolvidartedeEclipse.
Responder

JosMaraValverdeBaena 26deabrilde2015,12:12
Tengounproblemacuandointentorealizarlaconsulta,utilizandolaopcion2delmen.
HecomprobadoqueheconseguidoaadirdistintosusuariosalaBD,peroalhacerlabusqueda
introduciendoelnmerodelcampo"documento"meapareceelsiguienteerror.
nosepudoconsultarlaPersona
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:Unkown column 'id' in 'where
clause'
Graciasanticipadas
Responder
Respuestas
JosMaraValverdeBaena 28deabrilde2015,3:40
Buenopasadoestosdasheencontradoculeselproblema,ylopublicoporsialguien
estinteresado.
EnlaBDcreada,ymasconcretamenteenlatabla"persona"loscamposson:
"Documento","Nombre","Edad","Profesin","Telefono"
En resumen, lo que hay que hacer es cambiar en la consulta SQL la palabra "id" por
"Documento"eircomprobandoqueenelcodigodelasfuncionesdeconsultahacemos
unareferenciacorrectaaloscamposdelatabla.(Esdecir,quelosnombresdelatabla
seanlosqueaparezcanennuestrocdigo)
Saludosyesperohaberayudadoaquinselehayapresentadoelmismoproblema
Responder

Introducetucomentario...

Comentarcomo:

Publicar

CuentadeGoogle

Vistaprevia

Ereslibrederealizarcualquiercomentario,desdequepuedaayudarcongustoloatender,ysiesun
critica,bienvenidasea!!!

Enlaces a esta entrada


Crearunenlace

http://codejavu.blogspot.com.ar/2013/06/ejemploconectandojavaconmysql.html

15/16

14/7/2015

CoDejaVu:EjemploConectandoJavaconMySql
Entradamsreciente

Pginaprincipal

Entradaantigua

Suscribirsea:Enviarcomentarios(Atom)

CristianDavidHenaoH.PlantillaSimple.Imgenesdeplantillasdehdoddema.ConlatecnologadeBlogger.

http://codejavu.blogspot.com.ar/2013/06/ejemploconectandojavaconmysql.html

16/16

También podría gustarte