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