Chuleta Java: Excepciones, Archivos y Bases de Datos con JDBC
Chuleta Java: Excepciones, Archivos y Bases de Datos
1. Ratio de imagen (evitar división por cero)
public static double calcula_ratio(int ancho, int alto) {
try {
return ancho / alto;
} catch (ArithmeticException e) {
System.out.println("Error en el alto de la imagen. Imagen corrupta o no válida.");
return 0;
}
}
2. Pedir número real (sin try-catch dentro)
public static double introduceCantidad() throws InputMismatchException {
Scanner sc = new Scanner(System.in);
return sc.nextDouble();
}
3. Validar extensión de imagen
public static void valida_imagen(String ruta) {
if (ruta.endsWith(".jpg") || ruta.endsWith(".png") || ruta.endsWith(".gif")) {
System.out.println("Imagen válida");
} else {
throw new UnsupportedOperationException("Formato de imagen no válido");
}
}
4. Excepción personalizada: ExcepcionDias
public class ExcepcionDias extends Exception {
public ExcepcionDias(String msg) { super(msg); }
}
public static void diasSemana(int dia) throws ExcepcionDias {
if (dia < 1 || dia > 5)
throw new ExcepcionDias("Día de la semana no válido");
}
5. Fusionar archivos binarios ordenados
Usa FileInputStream y FileOutputStream:
- Leer los bytes en arrays.
- Combinar con lógica tipo merge sort.
- Escribir el orden final con FileOutputStream.
6. Mostrar información de archivo o directorio
public static void procesaRuta(String ruta) {
File f = new File(ruta);
if (f.isDirectory()) {
for (String s : f.list()) System.out.println(s);
} else {
System.out.println("Tamaño: " + f.length());
System.out.println("Padre: " + f.getParent());
}
}
7. Leer alumnos aprobados (nota >= 5)
public static void leeAlumnosAprobados() throws SQLException {
Connection con = DriverManager.getConnection("jdbc:mysql://localhost/test", "root", "");
Statement st = con.createStatement();
ResultSet rs = st.executeQuery("SELECT * FROM alumnos WHERE nota >= 5");
while (rs.next()) System.out.println(rs.getString("nombre"));
}
Chuleta Java: Excepciones, Archivos y Bases de Datos (continuación)
8. Singleton BD: ConexionBaseDatos
public class ConexionBaseDatos {
private static Connection con;
public static Connection get() throws SQLException {
if (con == null) con = DriverManager.getConnection("jdbc:mysql://localhost/test", "root", "");
return con;
}
}
9. DAO: AlumnoDAO básico
public class Alumno {
int id; String nombre, apellido1, apellido2; float nota;
}
public class AlumnoDAO {
public List<Alumno> leerAprobados(Connection con) throws SQLException {
List<Alumno> lista = new ArrayList<>();
PreparedStatement ps = con.prepareStatement("SELECT * FROM alumnos WHERE nota >= 5");
ResultSet rs = ps.executeQuery();
while (rs.next()) {
Alumno a = new Alumno();
a.nombre = rs.getString("nombre");
a.nota = rs.getFloat("nota");
lista.add(a);
}
return lista;
}
public int insertarAlumno(Connection con, Alumno a) throws SQLException {
String sql = "INSERT INTO alumnos (nombre, apellido1, apellido2, nota) VALUES (?, ?, ?, ?)";
PreparedStatement ps = con.prepareStatement(sql);
ps.setString(1, a.nombre);
ps.setString(2, a.apellido1);
ps.setString(3, a.apellido2);
ps.setFloat(4, a.nota);
return ps.executeUpdate();
}
}