我将如何匹配此 Java servlet 中数据库中的用户名和密码。 JDBC 和 Servlet
Posted
技术标签:
【中文标题】我将如何匹配此 Java servlet 中数据库中的用户名和密码。 JDBC 和 Servlet【英文标题】:How will I match the Username and Pass from the database in this Java servlet. JDBC and Servlet 【发布时间】:2018-09-03 15:17:43 【问题描述】:我正在尝试将我的 html 登录页面与数据库连接。我编写了这个 servlet,但在连接中遇到了一些错误。
String name=request.getParameter("uname");//Passing the HTML tag to he string
String psw= request.getParameter("psw");//
String QUERY="SELECT *FROM login WHERE EMAIL=?,PASS=?"; //Query
Class.forName("com.mysql.jdbc.Driver");//Connection
try (Connection con = DriverManager.getConnection("jdbc:mysql://localhost/SmallERP", "root", "root"))
PreparedStatement ps = con.prepareStatement(QUERY);
ps.setString(1, name);
ps.setString(2, psw);
try (ResultSet rs = ps.executeQuery())
if(rs.next())
out.println("Done");
else
out.println("ERROR");
【问题讨论】:
【参考方案1】:你必须在这里使用AND
。修改后的查询:
String QUERY="SELECT * FROM login WHERE EMAIL=? And PASS=?";
我的完整示例是:-
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Scanner;
public class GetUserDetailsUsingPS
public static void main(String[] args) throws ClassNotFoundException, SQLException
// read user entered data
Scanner scanner = new Scanner(System.in);
System.out.println("Please enter email id:");
String id = scanner.nextLine();
System.out.println("User id=" + id);
System.out.println("Please enter password to get details:");
String pwd = scanner.nextLine();
System.out.println("User password=" + pwd);
printUserData(id, pwd);
private static void printUserData(String id, String pwd) throws ClassNotFoundException,
SQLException
Connection con = null;
PreparedStatement ps = null;
ResultSet rs = null;
String query = "select name, country, password from Users where email = ? and password = ?";
try
con = DBConnection.getConnection();
ps = con.prepareStatement(query);
//set the parameter
ps.setString(1, id);
ps.setString(2, pwd);
rs = ps.executeQuery();
while (rs.next())
System.out.println("Name=" + rs.getString("name") + ",country="
+ rs.getString("country") + ",password="
+ rs.getString("password"));
finally
if (rs != null)
rs.close();
ps.close();
con.close();
【讨论】:
成功了。非常感谢。 非常感谢! @ShanuSingh 确认“我很高兴能帮助你”以上是关于我将如何匹配此 Java servlet 中数据库中的用户名和密码。 JDBC 和 Servlet的主要内容,如果未能解决你的问题,请参考以下文章