Warum ist diese Abfrage rs=st.executeQuery(query)
; nicht ausgeführt, um eine Tabelle aus der Datenbank auszuwählen?Warum diese Anweisung rs = st.executeQuery (query); excuting nicht?
String gender = request.getParameter("gender");
if (gender != null) {
String table = gender.equals("teacher") ? "teacher2" : "student";
String query ="select username,password from "+table+" where username='"+name+"' AND password='"+abc+"'";
rs=st.executeQuery(query); //Why This statement having error
}
Mysql Abfrage für diese Tabelle enter image description here ich denke, diese Abfrage falsch ist
"select username,password from "+table+" where username='"+name+"' AND password='"+abc+"'";
Ich habe zwei Tabellen eine für den Lehrer ist und man ist für Studenten beide haben alle dieselben Spalten mit gleichen Daten Art.
Wie kann ich Tabelle aus MySQL-Datenbank auswählen, um Anmeldung zu erhalten. Ich habe zwei Tabellen, eine ist für Schüler und eine ist für Lehrer, wenn Benutzer wählen Lehrer, Radio-Taste und geben Sie Benutzername und Passwort, wenn Benutzer Benutzername und Passwort gleich mysql Datenbank Benutzername und Passwort wird er Login-Fall für Studenten ist, wenn er Schüler wählen Radio aber und geben Sie Benutzername und Passwort ein, wenn Benutzername, Passwort gleich Studententabelle von MySQL-Benutzernamen, Passwort er wird Login erhalten.
Warum diese Abfrage keine Tabelle
enter image description here kommenden
rs=st.executeQuery(query);
Bild Fehler wählen ausgeführt wird // Fehler
index.jsp
<form method="GET " action="statement.jsp" autocomplete="on">
<input id="username" name="username" required="required" type="text" placeholder="Username"/>
<input id="password" name="password" required="required" type="password" placeholder="Password" />
<input type="radio" name="gender" value="teacher" checked/> Teacher
<input type="radio" name="gender" value="Student"/>Student
<input type="submit" value="Login" />
</form>
statement.jsp
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="com.mysql.jdbc.Statement"%>
<%@page import="com.mysql.jdbc.Connection"%>
<%@page import=" java.sql.SQLException" %>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@include file="db conn.jsp" %>
<%
String name=request.getParameter("username");
String abc=request.getParameter("password");
String gender = request.getParameter("gender");
if (gender != null) {
String table = gender.equals("teacher") ? "teacher2" : "student";
String query ="select username,password from "+table+" where username='"+name+"' AND password='"+abc+"'";
rs=st.executeQuery(query); //Why This statement having error
}
if(rs.next())
{
response.sendRedirect("main.jsp");
}
else
{
response.sendRedirect("index.jsp");
}
%>
db conn.jsp // Für die Datenbankverbindung
<%@page import="com.mysql.jdbc.Connection"%>
<%@page import="com.mysql.jdbc.Statement"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.DriverManager"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<h1>Hello World!</h1>
<%@ page import ="java.sql.*" %>
<%
Connection c1 = null;
Statement st = null;
ResultSet rs = null;
Class.forName("com.mysql.jdbc.Driver");
c1 = (Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/teacher","root", "abcde");
{
System.out.println("Couldn't find the driver!");
System.out.println("Couldn't connect: print out a stack trace and exit.");
System.out.println("We got an exception while creating a statement:" + "that probably means we're no longer connected.");
st = (Statement) c1.createStatement();
System.out.println("Statement Created Successfully");
{
System.out.println("We got an exception while creating a statement:" + "that probably means we're no longer connected.");
}
if (c1!= null) {
System. out.println("Hooray! We connected to the database!");
} else {
System.out.println("We should never get here.");
}}
%>
Fehler
HTTP Status 500 -
type Exception report
message
description The server encountered an internal error() that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: Exception in JSP: /statement.jsp:29
26: String table = gender.equals("teacher") ? "teacher2" : "student";
27: // replace dots with your values
28: String query ="select * from " +table+ "where username='"+name+"' AND password='"+abc+"'";
29: st.executeQuery(query);
30:
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:451) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:355) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265) javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
Warum diese Abfrage nicht eine Tabelle aus MySQL-Datenbank auswählt. Ich habe zwei Tabellen in MySQL, eine ist Student und andere ist Lehrer2 beide haben die gleiche Spalte mit dem gleichen Datentyp. Wenn der Benutzer den Radioknopf des Schülers anwählt, dann würde der Benutzername und das Passwort des Schülertabellen angezeigt werden, wenn Benutzer Lehrer, Radioknopf, dann Lehrer2 Benutzername und Passwort wählen würde, um eine Anmeldung
Es scheint, als würden Sie Leerzeichen um die Schlüsselwörter herum vermissen. –
Bitte verwenden Sie eine vorbereitete Aussage. Erleichtert das Lesen und Ausführen des Codes ... –
Das ist offensichtlich kein SQL-Problem. Überprüfen Sie Ihre 'table'- und' query'-Variablen vor der Ausführung. BTW: Es ist schön, Geschlechter als "Lehrer" und "Student" zu haben –