Este es el código:
Código PHP:
try
{
conexion = DriverManager.getConnection(
"jdbc:mysql://localhost/cartografia", "root",
"analiter");
Statement st = conexion.createStatement();
switch (sesion.getAttribute("busqueda"))
{
case Contiene:
{
System.out.println("Debe de ser Contiene: "+sesion.getAttribute("busqueda"));
rs = st.executeQuery("select * from mapas m,signaturasoriginales s,materias mat,lugargeosec l,autores a WHERE "
+" m.mapaid=s.mapaid AND "
+" m.materiaid=mat.materiaid AND"
+" m.mapaid=l.mapaid AND"
+" m.mapaid=a.mapaid AND"
+" m.signatura LIKE '%"
+ sesion.getAttribute("tematica")
+ "%' OR s.signaturaoriginal LIKE '%"
+ sesion.getAttribute("tematica")
+ "%' OR m.lugargeografico LIKE '%"
+ sesion.getAttribute("geografica")
+ "%' OR l.lugar LIKE '%"
+ sesion.getAttribute("geografica")
+ "%' OR mat.materia LIKE '%"
+ sesion.getAttribute("tematica")
+ "%' AND a.autor='"
+ sesion.getAttribute("autor")
+ "' OR m.fecha='"
+ sesion.getAttribute("cronologica")
+ "'");
break;
}
case Exacta:
{
System.out.println("Debe de ser Exacta: "+sesion.getAttribute("busqueda"));
rs = st.executeQuery("select * from mapas m,signaturasoriginales s,materias mat,lugargeosec l,autores a WHERE "
+" m.mapaid=s.mapaid AND "
+" m.materiaid=mat.materiaid AND"
+" m.mapaid=l.mapaid AND"
+" m.mapaid=a.mapaid AND"
+" m.signatura='"
+ sesion.getAttribute("tematica")
+ "' OR s.signaturaoriginal='"
+ sesion.getAttribute("tematica")
+ "' OR m.lugargeografico='"
+ sesion.getAttribute("geografica")
+ "' OR l.lugar='"
+ sesion.getAttribute("geografica")
+ "' OR mat.materia='"
+ sesion.getAttribute("tematica")
+ "' AND a.autor='"
+ sesion.getAttribute("autor")
+ "' OR m.fecha='"
+ sesion.getAttribute("cronologica")
+ "'");
break;
}
case EmpiezaPor:
{
System.out.println("Debe de ser Empieza Por: "+sesion.getAttribute("busqueda"));
rs = st.executeQuery("select * from mapas m,signaturasoriginales s,materias mat,lugargeosec l,autores a WHERE "
+" m.mapaid=s.mapaid AND "
+" m.materiaid=mat.materiaid AND"
+" m.mapaid=l.mapaid AND"
+" m.mapaid=a.mapaid AND"
+" m.signatura LIKE '%"
+ sesion.getAttribute("tematica")
+ "' OR s.signaturaoriginal LIKE '%"
+ sesion.getAttribute("tematica")
+ "' OR m.lugargeografico LIKE '%"
+ sesion.getAttribute("geografica")
+ "' OR l.lugar LIKE '%"
+ sesion.getAttribute("geografica")
+ "' OR mat.materia LIKE '%"
+ sesion.getAttribute("tematica")
+ "' AND a.autor='"
+ sesion.getAttribute("autor")
+ "' OR m.fecha='"
+ sesion.getAttribute("cronologica")
+ "'");
break;
}
}
RowSetDynaClass resultSet = new RowSetDynaClass(rs, false);
request.setAttribute("registros", resultSet);
}
catch (Exception e)
{
out.println("Error de conexion con la base de datos: " + e);
}
Código PHP:
org.apache.jasper.JasperException: No se puede compilar la clase para JSP:
Ha tenido lugar un error en la l�nea: 55 en el archivo jsp: /BusquedaEnTablas.jsp
Cannot switch on a value of type Object. Only int values or enum constants are permitted
52: "jdbc:mysql://localhost/cartografia", "root",
53: "analiter");
54: Statement st = conexion.createStatement();
55: switch (sesion.getAttribute("busqueda"))
56: {
57: case Contiene:
58: {
Lo he probado con if, pero siempre me entra en dos tipos de consultas.