· 10 years ago · Jun 21, 2016, 04:54 PM
1import java.util.*;//Para poder usar el teclado//MEJORA
2import java.sql.*;//Para poder probar el SQL
3public class MenuBDatos{
4 private static Scanner teclado = new Scanner(System.in);
5
6 //Metodo 2. createEQUIPO para crear la tabla equipo
7 public static void createEQUIPO (Connection con, String BDNombre) throws SQLException {
8 String createString = "create table " + BDNombre + ".EQUIPO " +
9 "(TEAM_ID integer NOT NULL, " +
10 "EQ_NOMBRE varchar (40) NOT NULL, " +
11 "ESTADIO varchar (40) NOT NULL, " +
12 "POBLACION varchar (20) NOT NULL, " +
13 "PROVINCIA varchar (20) NOT NULL, " +
14 "COD_POSTAL varchar (5), " +
15 "PRIMARY KEY (TEAM_ID))";
16
17 Statement stat = null;
18 try{
19 stat = con.createStatement ();
20
21 System.out.println("Ejecutando: "+createString);
22 stat.executeUpdate(createString);
23 System.out.println("Se ha creado la tabla ==> EQUIPO");
24 }catch(SQLException e){
25 System.out.println("Error en SQL creando la tabla equipo");
26 }finally{
27 stat.close();
28 }
29 }
30
31 //Metodo 3. createJUGADORES para crear la tabla jugadores
32 public static void createJUGADORES (Connection con, String BDNombre) throws SQLException {
33 String createString = "create table " + BDNombre + ".JUGADORES " +
34 "(PLAYER_ID integer NOT NULL, " +
35 "TEAM_ID integer NOT NULL, " +
36 "NOMBRE varchar (40) NOT NULL, " +
37 "DORSAL integer NOT NULL, " +
38 "EDAD integer NOT NULL, " +
39 "PRIMARY KEY (PLAYER_ID), " +
40 "FOREIGN KEY (TEAM_ID) REFERENCES EQUIPO (TEAM_ID))";
41
42 Statement stat = null;
43 try{
44 stat = con.createStatement ();
45 //Para mostrar por pantalla la orden antes de ejecutarla
46 System.out.println("Ejecutando: "+createString);
47 stat.executeUpdate(createString);
48 System.out.println("Se ha creado la tabla ==> JUGADORES");
49 }catch(SQLException e){
50 System.out.println("Error en SQL creando la tabla jugadores");
51 }finally{
52 stat.close();
53 }
54 }
55
56 //Metodo 4. cargaEQUIPO para rellenar la tabla equipo
57 public static void cargaEQUIPO (Connection con, String BDNombre) throws SQLException {
58 Statement stat = null;
59 try{
60 stat = con.createStatement ();
61
62 stat.executeUpdate("INSERT INTO " + BDNombre + ".EQUIPO VALUES ("
63 + "1, 'ESTEPONA','MONTERROSO','ESTEPONA','MALAGA','29680')");
64
65 stat.executeUpdate("INSERT INTO " + BDNombre + ".EQUIPO VALUES ("
66 + "2, 'ALCORCON','SANTO DOMINGO','ALCORCON','MADRID','28924')");
67
68 stat.executeUpdate("INSERT INTO " + BDNombre + ".EQUIPO VALUES ("
69 + "3, 'PORCUNA','SAN CRISTOBAL','PORCUNA','JAEN','23790')");
70
71 System.out.println("Se han introducido datos en la tabla ==> EQUIPO");
72 }catch(SQLException e){
73 System.out.println("Error en SQL insertando datos en la tabla equipo");
74 }finally{
75 stat.close();
76 }
77 }
78
79 //Metodo 5.cargaJUGADORES para rellenar la tabla jugadores
80 public static void cargaJUGADORES (Connection con, String BDNombre) throws SQLException {
81 Statement stat = null;
82 try{
83 stat = con.createStatement ();
84
85 //Cargando datos de Estepona
86 stat.executeUpdate("INSERT INTO " + BDNombre + ".JUGADORES VALUES ("
87 + "1,1, 'JOSE ANTONIO',1,42)");
88
89 stat.executeUpdate("INSERT INTO " + BDNombre + ".JUGADORES VALUES ("
90 + "2,1, 'IGNACIO',2,62)");
91
92 stat.executeUpdate("INSERT INTO " + BDNombre + ".JUGADORES VALUES ("
93 + "3,1, 'DIEGO',3,20)");
94
95 //Cargando datos de Alcorcon
96 stat.executeUpdate("INSERT INTO " + BDNombre + ".JUGADORES VALUES ("
97 + "4,2, 'TURRION',1,37)");
98
99 stat.executeUpdate("INSERT INTO " + BDNombre + ".JUGADORES VALUES ("
100 + "5,2, 'LUIS ABEL',2,37)");
101
102 stat.executeUpdate("INSERT INTO " + BDNombre + ".JUGADORES VALUES ("
103 + "6,2, 'ISAAC',3,40)");
104
105 //Cargando datos de Porcuna
106 stat.executeUpdate("INSERT INTO " + BDNombre + ".JUGADORES VALUES ("
107 + "7,3, 'JUAN FRANCISCO',1,33)");
108
109 stat.executeUpdate("INSERT INTO " + BDNombre + ".JUGADORES VALUES ("
110 + "8,3, 'PARRA',2,37)");
111
112 stat.executeUpdate("INSERT INTO " + BDNombre + ".JUGADORES VALUES ("
113 + "9,3, 'RAUL',3,19)");
114
115 System.out.println("Se han introducido datos en la tabla ==> JUGADORES");
116 }catch(SQLException e){
117 System.out.println("Error en SQL insertando datos en la tabla jugadores");
118 }finally{
119 stat.close();
120 }
121 }
122
123 //Metodo 6. verEQUIPO para ver los datos de la tabla equipo
124 public static void verEQUIPO (Connection con, String BDNombre) throws SQLException{
125 Statement stmt = null;
126 String query = "select EQ_NOMBRE, ESTADIO, POBLACION, PROVINCIA " + " from " +
127 BDNombre + ".EQUIPO";
128 System.out.println("Viendo los datos de la tabla EQUIPO");
129 try{
130 stmt = con.createStatement();
131 ResultSet rs = stmt.executeQuery(query);
132 while(rs.next()){
133 String equipo = rs.getString(1);
134 System.out.println("Equipo: "+equipo);
135
136 String estadio = rs.getString(2);
137 System.out.println("Estadio: "+estadio);
138
139 String poblacion = rs.getString(3);
140 System.out.println("Poblacion: "+poblacion);
141
142 String provincia = rs.getString(4);
143 System.out.println("Provincia: "+provincia);
144 System.out.println("*********************************");
145 }//Del while
146 System.out.println("Fin de los datos de la tabla EQUIPO");
147 }catch(SQLException e){
148 System.out.println("Error en SQL viendo los datos en la tabla equipo");
149 }finally{
150 stmt.close();
151 }
152 }
153
154 //Metodo 7. verJUGADORES para ver los datos de la tabla jugadores
155 public static void verJUGADORES (Connection con, String BDNombre) throws SQLException{
156 Statement stmt = null;
157 String query = "select PLAYER_ID, TEAM_ID, NOMBRE, DORSAL, EDAD " + " from " +
158 BDNombre + ".JUGADORES";
159
160 System.out.println("Viendo los datos de la tabla JUGADORES");
161 try{
162 stmt = con.createStatement();
163 ResultSet rs = stmt.executeQuery(query);
164 while(rs.next()){
165 String jugadorID = rs.getString(1);
166 System.out.println("Jugador ID: "+jugadorID);
167
168 String equipoID = rs.getString(2);
169 System.out.println("Equipo ID: "+equipoID);
170
171 String nombre = rs.getString(3);
172 System.out.println("Nombre: "+nombre);
173
174 String dorsal = rs.getString(4);
175 System.out.println("Dorsal: "+dorsal);
176
177 String edad = rs.getString(5);
178 System.out.println("Edad: "+edad);
179 System.out.println("*********************************");
180 }//Del while
181 System.out.println("Fin de los datos de la tabla JUGADORES");
182 }catch(SQLException e){
183 System.out.println("Error en SQL viendo los datos en la tabla equipo");
184 }finally{
185 stmt.close();
186 }
187 }
188
189 //Metodo 8. insertarEQUIPO para insertar un registro en la tabla equipo
190 public static void insertarEQUIPO (Connection con, String BDNombre,
191 int team_id, String eq_nombre, String estadio,
192 String poblacion, String provincia, String cod_postal) throws SQLException {
193 Statement stmt = null;
194 try{
195 stmt = con.createStatement (ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
196
197 ResultSet rs = stmt.executeQuery ("SELECT * FROM " + BDNombre + ".EQUIPO");
198 rs.moveToInsertRow ();
199 rs.updateInt("TEAM_ID", team_id);
200 rs.updateString("EQ_NOMBRE", eq_nombre);
201 rs.updateString("ESTADIO", estadio);
202 rs.updateString("POBLACION", poblacion);
203 rs.updateString("PROVINCIA", provincia);
204 rs.updateString("COD_POSTAL", cod_postal);
205 rs.insertRow();
206 rs.beforeFirst();
207
208 System.out.println("Se ha insertado un nuevo equipo en la tabla ==> EQUIPO");
209 }catch(SQLException e){
210 System.out.println("Error en SQL insertando un nuevo registro en la tabla equipo");
211 }finally{
212 stmt.close();
213 }
214 }
215
216 //Metodo 9. insertarJUGADORES para insertar un registro en la tabla jugadores
217 public static void insertarJUGADORES (Connection con, String BDNombre,
218 int player_id, int team_id, String nombre,
219 int dorsal, int edad) throws SQLException {
220 Statement stmt = null;
221 try{
222 stmt = con.createStatement (ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
223
224 ResultSet rs = stmt.executeQuery ("SELECT * FROM " + BDNombre + ".JUGADORES");
225 rs.moveToInsertRow ();
226 rs.updateInt("PLAYER_ID", player_id);
227 rs.updateInt("TEAM_ID", team_id);
228 rs.updateString("NOMBRE", nombre);
229 rs.updateInt("DORSAL", dorsal);
230 rs.updateInt("EDAD", edad);
231 rs.insertRow();
232 rs.beforeFirst();
233
234 System.out.println("Se ha insertado un nuevo jugador en la tabla ==> JUGADORES");
235 }catch(SQLException e){
236 //printSQLException (e);//Modificado con respecto al libro
237 System.out.println("Error en SQL insertando un nuevo registro en la tabla jugadores");
238 }finally{
239 stmt.close();
240 }
241 }
242
243 //Metodo 10. verEQUIPOProvincia para ver los datos de la tabla equipo
244 public static void verEQUIPOProvincia (Connection con, String BDNombre) throws SQLException{
245 Scanner teclado = new Scanner(System.in);
246 System.out.print("Teclee la provincia de la que quiere consultar los equipos: ");
247
248 String provinciaBuscada=teclado.nextLine();
249
250 Statement stmt = null;
251 String query = "select EQ_NOMBRE, ESTADIO, POBLACION, PROVINCIA " + " from " +
252 BDNombre + ".EQUIPO WHERE PROVINCIA = '"+provinciaBuscada+"'";//MEJORA
253
254 System.out.println("Ejecutando: "+query);
255 System.out.println("Viendo los datos filtrados por provincias de la tabla EQUIPO");
256 try{
257 stmt = con.createStatement();
258 ResultSet rs = stmt.executeQuery(query);
259 while(rs.next()){
260 String equipo = rs.getString(1);
261 System.out.println("Equipo: "+equipo);
262
263 String estadio = rs.getString(2);
264 System.out.println("Estadio: "+estadio);
265
266 String poblacion = rs.getString(3);
267 System.out.println("Poblacion: "+poblacion);
268
269 String provincia = rs.getString(4);
270 System.out.println("Provincia: "+provincia);
271 System.out.println("*********************************");
272 }//Del while
273 System.out.println("Fin de los datos de la tabla EQUIPO filtrados por provincias");
274 }catch(SQLException e){
275 //printSQLException (e);//Modificado con respecto al libro
276 System.out.println("Error en SQL viendo los datos en la tabla equipo");
277 }finally{
278 stmt.close();
279 }
280 }
281
282 //Metodo 11. modificarEQUIPO para modificar los datos de la tabla equipo
283 public static void modificarEQUIPO (Connection con, String BDNombre) throws SQLException{
284 Statement stmt = null;
285
286 System.out.println("Modificando los datos de la tabla EQUIPO");
287 try{
288 stmt = con.createStatement();
289 stmt.executeUpdate("UPDATE " +BDNombre+".EQUIPO SET ESTADIO='ALBORAN' "+
290 "WHERE TEAM_ID=1 ");
291
292 System.out.println("Se han modificado los datos correctamente");
293 System.out.println("Se ha modificado el estadio del primer equipo (ESTEPONA) llamado MONTERROSO por ALBORAN.");
294
295 }catch(SQLException e){
296 //printSQLException (e);//Modificado con respecto al libro
297 System.out.println("Error en SQL modificando los datos en la tabla equipo");
298 }finally{
299 stmt.close();
300 }
301 }
302
303 //Metodo 12. modificarEdadJugadores para modificar la edad de los jugadores
304 public static void modificarEdadJugadores (Connection con, String BDNombre, int cuantoMas) throws SQLException{
305 Statement stmt = null;
306
307 System.out.println("Modificando la edad de los jugadores de la tabla JUGADORES");
308 try{
309 //stmt = con.createStatement (); //Lo pone en el libro pero no es necesario
310 stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
311
312 ResultSet rs = stmt.executeQuery ("SELECT * FROM "+BDNombre+" .JUGADORES" );
313
314 while(rs.next()){
315 int i = rs.getInt("EDAD");
316 rs.updateInt("EDAD", i+cuantoMas);
317 rs.updateRow();
318
319 System.out.println("Se ha actualizado la edad "+i+" con "+(i+cuantoMas));
320 }//Del while
321 System.out.println("Se han modificado las edades correctamente");
322
323 }catch(SQLException e){
324 //printSQLException (e);//Modificado con respecto al libro
325 System.out.println("Error en SQL modificando la edad de los jugadores");
326 }finally{
327 stmt.close();
328 }
329 }
330
331
332 //MAIN
333 public static void main (String [] args){
334
335 int p;
336 boolean estaMal;
337 Connection con = null;
338 try{
339 Class.forName("com.mysql.jdbc.Driver").newInstance();
340 }catch (Exception ex){
341 System.out.println("Error en el Class.forName");
342 }
343
344 //Nos conectamos a la base de datos
345 try{
346 con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","");
347 System.out.println("La conexion con la base de datos es CORRECTA");
348
349 Statement stat = null;
350 stat = con.createStatement();
351
352 }catch (Exception ex){
353 System.out.println("Error conectandonos a la Base de Datos");
354 }
355
356 //Ejecutamos el menu
357 do{
358 //Menu por pantalla
359 System.out.println("##################### MENU ####################");
360 System.out.println("1. Crear Base de Datos");
361 System.out.println("2. Crear Tabla EQUIPOS");
362 System.out.println("3. Crear Tabla JUGADORES");
363 System.out.println("4. Rellenar Tabla EQUIPOS");
364 System.out.println("5. Rellenar Tabla JUGADORES");
365 System.out.println("6. Ver EQUIPOS");
366 System.out.println("7. Ver JUGADORES");
367 System.out.println("8. Insertar EQUIPO");
368 System.out.println("9. Insertar JUGADOR");
369 System.out.println("10. Ver EQUIPO por Provincia");
370 System.out.println("11. Modificar EQUIPO");
371 System.out.println("12. Modificar la Edad de JUGADORES");
372 System.out.println("99. Fin");
373 System.out.println("###############################################");
374
375 //Seleccion
376 do{
377 System.out.print("Elige una opcion: ");
378 p = teclado.nextInt();
379 estaMal = p!=1 && p!= 2 && p!= 3 && p!=4 && p!=5 && p!=6 && p!=7 && p!=8 && p!=9 && p!=10 && p!=11 && p!=12 && p!=99;
380
381 //Validacion de la seleccion
382 if (estaMal){
383 System.out.println("Debe introducir una opcion correcta");
384 }
385 }while(estaMal);//Para la validacion e introduccion de datos por teclado
386
387 //Opciones disponibles
388 switch(p){
389 case 1: System.out.println("1. Crear Base de Datos");
390
391 try{
392 //Metodo 1. Creamos una NUEVA base de datos y la llamaremos liga
393 Statement stat = null;
394 stat = con.createStatement();
395
396 stat.executeUpdate("DROP DATABASE IF EXISTS emi");
397 stat.executeUpdate("CREATE DATABASE emi");
398
399 System.out.println("Se ha creado la Base de Datos ==> emi");
400 }catch (Exception ex){
401 System.out.println("Error conectandonos a la Base de Datos");
402 }
403 break;
404
405 case 2: System.out.println("2. Opcion Crear Tabla EQUIPO");
406
407 try{
408 //Metodo 2. Crear Tabla EQUIPO
409 createEQUIPO (con, "emi");//Pasamos la conexion y el nombre de la Base de Datos
410 }catch (Exception ex){
411 System.out.println("Error creando la Tabla EQUIPO");
412 }
413 break;
414
415 case 3: System.out.println("3. Opcion Crear Tabla JUGADORES");
416
417 try{
418 //Metodo 3. Crear Tabla JUGADORES
419 createJUGADORES (con, "emi");//Pasamos la conexion y el nombre de la Base de Datos
420 }catch (Exception ex){
421 System.out.println("Error creando la Tabla JUGADORES");
422 }
423 break;
424
425 case 4: System.out.println("3. Opcion Rellenar Tabla EQUIPO");
426
427 try{
428 //Metodo 4. Rellenar Tabla EQUIPO
429 cargaEQUIPO (con, "emi");//Pasamos la conexion y el nombre de la Base de Datos
430 }catch (Exception ex){
431 System.out.println("Error rellenando la Tabla EQUIPO");
432 }
433 break;
434
435 case 5: System.out.println("5. Opcion Rellenar Tabla JUGADORES");
436
437 try{
438 //Metodo 5. Rellenar Tabla JUGADORES
439 cargaJUGADORES (con, "emi");//Pasamos la conexion y el nombre de la Base de Datos
440 }catch (Exception ex){
441 System.out.println("Error rellenando la Tabla JUGADORES");
442 }
443 break;
444
445 case 6: System.out.println("6. Opcion Ver EQUIPO");
446 //Metodo 6. Ver EQUIPO
447
448 try{
449 verEQUIPO (con, "emi");//Pasamos la conexion y el nombre de la Base de Datos
450 }catch (Exception ex){
451 System.out.println("Error viendo la Tabla EQUIPO");
452 }
453 break;
454
455 case 7: System.out.println("7. Opcion Ver JUGADORES");
456 //Metodo 7. Ver JUGADORES
457
458 try{
459 verJUGADORES (con, "emi");//Pasamos la conexion y el nombre de la Base de Datos
460 }catch (Exception ex){
461 System.out.println("Error viendo la Tabla JUGADORES");
462 }
463 break;
464
465 case 8: System.out.println("8. Opcion Insertar EQUIPO");
466 //Metodo 8. Insertar EQUIPO
467
468 try{
469 insertarEQUIPO (con, "emi", 4, "ZAMORA CF", "RUTA DE LA PLATA", "ZAMORA", "ZAMORA", "49010");//Pasamos la conexion y el nombre de la Base de Datos y los datos del nuevo equipo
470 //Team_ID, Eq_Nombre, Estadio, Poblacion, Provincia, Cod_Postal
471 }catch (Exception ex){
472 System.out.println("Error insertando un registro en la Tabla EQUIPO");
473 }
474 break;
475
476 case 9: System.out.println("9. Opcion Insertar JUGADORES");
477 //Metodo 9. Insertar JUGADORES
478
479 try{
480 insertarJUGADORES (con, "emi", 10, 3, "EMILIO FERNANDEZ", 9, 27); //Pasamos la conexion y el nombre de la Base de Datos y las datos del nuevo jugador
481 //Player_ID, Team_ID, Nombre, Dorsal, Edad
482 }catch (Exception ex){
483 System.out.println("Error insertando un registro en la Tabla JUGADORES");
484 }
485 break;
486
487 case 10: System.out.println("10. Opcion Ver EQUIPO por Provincia");
488 //Metodo 10. Ver EQUIPO por Provincia
489
490 try{
491 verEQUIPOProvincia (con, "emi");//Pasamos la conexion y el nombre de la Base de Datos
492 }catch (Exception ex){
493 System.out.println("Error viendo la Tabla EQUIPO por PROVINCIAS");
494 }
495 break;
496
497 case 11: System.out.println("11. Opcion Modificar EQUIPO");
498 //Metodo 11. Modificar EQUIPO
499
500 try{
501 modificarEQUIPO (con, "emi");//Pasamos la conexion y el nombre de la Base de Datos
502 }catch (Exception ex){
503 System.out.println("Error modificando la Tabla EQUIPO");
504 }
505 break;
506
507 case 12: System.out.println("12. Opcion Modificar la Edad de JUGADORES");
508 //Metodo 12. Modificar la Edad de JUGADORES
509
510 try{
511 modificarEdadJugadores (con, "liga", 2);//Pasamos la conexion y el nombre de la Base de Datos y la cantidad de años que queremos aumentar
512 }catch (Exception ex){
513 System.out.println("Error modificando la EDAD de la Tabla JUGADORES");
514 }
515 break;
516
517 case 99: System.out.println("Hasta la proxima");
518 }//Del switch
519
520 }while(p!=99);//Para volver arriba al menu
521 }
522}