sábado, 12 de noviembre de 2011

Bonus 17

Autor: Cristian Lara
Competencia: Aplica las Ciencias de la ingeniería.(nivel 1)

Descripción de la actividad.

 Diseñar una aplicación que permita al usuario guardar n automóviles dentro de un ArrayList. Luego enviar esta colección de objetos (utilizando PreparedStatement) a la base de datos, en la tabla “auto”, todo esto sin reiniciar la aplicación. 

Solución. 

Para esto implementamos los 4 pasos para facilitar la tarea.

Descripción de la actividad.

Ejemplos de entrada y salida
Sintaxis de ingreso: <patente>, <marca>, <Modelo> ,<year>, <rut_propietario>

1) UN 1232, kia, morning,12.345.678-9-> [Proceso] -> ERROR INGRESO

2) OK 1231 , Golf, Volwagen ,,,12.345.678-9-> [Proceso] -> ERROR INGRESO

3) Lalalalalalalaal,lalal -> [Proceso] -> ERROR INGRESO

4) “!#”!$”#%#$% -> [Proceso] -> NO SE PERMITEN SIGNOS

5) KS 1238, kia,rio,20111, -> [Proceso] -> “ERROR DE INGRESO

6) H , O , L , A -> [Proceso] -> “ERROR DE INGRESO

7) Subaru, impresa -> [Proceso] -> ERROR INGRESO

8) ________--L -> [Proceso] -> NO SE PERMITEN SIGNOS

9) 2010, IP 1133 -> [Proceso] -> ERROR INGRESO

10) 0988-2 bmw z4 2011 12.358.258-8-> [Proceso] -> ERROR INGRESO

11) PO 231, audi, a1 , 1995, 18.258.369-5-> [Proceso] -> IINGRESO CORRECTO

12) KH 8743_elipse_lotus_2010_15.2658.3659-6-> [Proceso] -> ERROR INGRESO

13) @@@@@@-> [Proceso] -> NO SE PERMITEN SIGNOS

14) KO 2343, Fait, seissiento, dos mil, 9.258.693-5-> [Proceso] -> ERROR INGRESO

15) H0L4 MUND0 -> [Proceso] -> ERROR INGRESO.


2. Desarrollo

Tras un análisis al bonus 17 descubrí que debíaLeer los datos ingresados por el usuario y luego guardarlos en la base de dato, pero para poder enviar todos esos datos había que preguntarle previamente al usuario si deseaba seguir ingresando datos para luego enviarlos a la base de datos si el usuario respondía que SI, se seguían guardando , si el usuario respondía que NO se enviaban directamente todos los datos previamente ingresados a la base de datps.

La Solución que se encontró que había que ir guardando los datos en ArraysList para luego ser enviados a la base de datos.

Base de dato implementada para guardar los datos.

















3. Diagramas de Clases.



































4. Código

Clase Auto
package bonus17;
public class Auto {
String patente;
String marca;
String modelo;
String rut_propietario;
int year;
public Auto() {
}
public Auto(String patente, String marca,String modelo,int year,String rut_propietario) {
this.patente = patente;
this.marca = marca;
this.modelo = modelo;
this.year = year;
this.rut_propietario = rut_propietario;
}
public String getPatente() {
return patente;
}
public void setPatente(String patente) {
this.patente = patente;
}
public String getMarca() {
return marca;
}
public void setMarca(String marca) {
this.marca = marca;
}
public String getModelo() {
return modelo;
}
public void setModelo(String modelo) {
this.modelo = modelo;
}
public int getYear() {
return year;
}
public void setYear(int year) {
this.year = year;
}
public String getRut_propietario() {
return rut_propietario;
}
public void setRut_propietario(String rut_propietario) {
this.rut_propietario = rut_propietario;
}
public String toString()
{return this.patente+"-"+this.modelo+"-"+this.marca+"-"+this.year+"-"+this.rut_propietario;}
}
Clase Main
package bonus17;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Main {
static String bd="";
static String user="";
static String pass="";
public static void main(String[] args) {
Scanner l=new Scanner(System.in);
System.out.print("Ingrese usuario Para Ingresar a Base de datos en PHPMYADMIN: ");
user=l.nextLine();
System.out.print("Ingrese contraseña Para ingresar: ");
pass=l.nextLine();
try
{
Connection c=DriverManager.getConnection("jdbc:mysql://db.inf.uct.cl:3306/iriquelmej2011",user,pass);
List <Auto> lista=new ArrayList<Auto>();
int n=1;
while(n!= 2){
System.out.println("\n Ingrese la accion que desea hacer: ");
System.out.println("1.- Ingresar Un Nuevo Registro a la Base de datos: ");
System.out.println("2.- Terminar y enviar datos hacia PHPMYADMIN ");
n=l.nextInt();
String va;
int ve=0;
switch(n)
{
case 1:
Auto a= new Auto();
System.out.println("Ingrese patente: ");
va=l.next();
String p1,p2,p3;
p1=va.substring(0,2);
p2=va.substring(2,4);
p3=va.substring(4,6);
p1=p1.toUpperCase();
p2=p2.toUpperCase();
va= p1+" "+p2+" "+p3;
a.setPatente(va);
System.out.println("Ingrese marca: ");
va=l.next();
a.setMarca(va);
System.out.println("Ingrese modelo: ");
va=l.next();
a.setModelo(va);
System.out.println("Ingrese year: ");
ve=l.nextInt();
a.setYear(ve);
System.out.println("Ingrese rut_propietario: ");
va=l.next();
a.setRut_propietario(va);
lista.add(a);
break;
case 2:
PreparedStatement ps = c.prepareStatement("insert into auto (patente, marca, modelo, year, rut_propietario)"
+ "values(?,?,?,?,?)");
int i = 0;
System.out.println("\nSe han ingresado estos autos a la tabla: ");
while(i<lista.size()){
System.out.println("|"+lista.get(i).toString());
ps.setString(1,lista.get(i).getPatente());
ps.setString(2,lista.get(i).getMarca());
ps.setString(3,lista.get(i).getModelo());
ps.setInt(4,lista.get(i).getYear());
ps.setString(5,lista.get(i).getRut_propietario());
ps.executeUpdate();
i++;}
System.out.println("Conexión Finalizada");
c.close();
break;
default:
System.out.println("Ingreso de Opcion No Valida");
break;
}
}
}
catch(SQLException e)
{System.out.print("Error "+e.getMessage());}
}
}

4.1 Capturas
























Reflexión.

Realizando este tipo de actividades se logra cada vez aprender mas, en lo que es la conexión de mysql con java.



No hay comentarios:

Publicar un comentario