i am new in java i want role based access using switch statement but when i execute query and provide user role for example(user or admin) then user log-in well but if i leave (role='') empty in query then query not execute so well and jump in else statement.Second if i use prepared statement then how i can get user role thanks.Here is my code.
<%
String userid = request.getParameter("username");
String pwd = request.getParameter("password");
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/auto_lube","root", "password");
Statement st = con.createStatement();
ResultSet rs;
rs = st.executeQuery("select * from users where uname='" + userid + "' and pass='" + pwd + "' and role=''");
if (rs.next()) {
String username = rs.getString("uname");
String email = rs.getString("email");
String rolle = rs.getString("role");
session.setAttribute("customer_name", username);
int usser = rs.getInt("id");
session.setAttribute("customer_id", usser);
switch(rs.getInt(rolle)) {
case 1:
if (rolle.equals("admin")) {
response.sendRedirect("adminPage.jsp");
break;
}
case 2:
if (rolle.equals("user")) {
response.sendRedirect("user.jsp");
}
break;
case 3:
if (rolle.equals("assistant")) {
response.sendRedirect("assistant.jsp");
}
break;
case 4:
if (rolle.equals("supplier")) {
response.sendRedirect("supplier.jsp");
}
break;
default:
break;
}
} else {
out.print("invalid");
}
%>