通过JDBC来实现用户名密码检验

tech2022-08-07  127

import cn.itcast.utils.JDBCUtils; import java.sql.*; import java.util.Scanner; /** * 练习: * * 需求: * 1. 通过键盘录入用户名和密码 * 2. 判断用户是否登录成功 */ public class JDBCDemo9 { public static void main(String[] args) { //1.键盘录入,接受用户名和密码 Scanner sc = new Scanner(System.in); System.out.println("请输入用户名:"); String username = sc.nextLine(); System.out.println("请输入密码:"); String password = sc.nextLine(); //2.调用方法 boolean flag = new JDBCDemo9().login(username, password); //3.判断结果,输出不同语句 if(flag){ //登录成功 System.out.println("登录成功!"); }else{ System.out.println("用户名或密码错误!"); } } /** * 登录方法,使用PreparedStatement实现 */ public boolean login(String username ,String password){ if(username == null || password == null){ return false; } //连接数据库判断是否登录成功 Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; //1.获取连接 try { //通过手写的工具类来实现(具体实现方式请看往期文章:https://blog.csdn.net/weixin_45802810/article/details/108369979) conn = JDBCUtils.getConnection(); //2.定义sql(注意,凡是需要赋值的部分用?问号来代替,这样能放置sql注入漏洞) String sql = "select * from user where username = ? and password = ?"; //3.获取执行sql的对象 pstmt = conn.prepareStatement(sql); //给?赋值 //第1个问号赋值为username对应的值 pstmt.setString(1,username); //第2个问号赋值为password对应的值 pstmt.setString(2,password); //4.执行查询,不需要传递sql rs = pstmt.executeQuery(); //5.判断:如果有下一行,则返回true return rs.next(); } catch (SQLException e) { e.printStackTrace(); }finally { //通过手写的工具类来实现(具体实现方式请看往期文章:https://blog.csdn.net/weixin_45802810/article/details/108369979) JDBCUtils.close(rs,pstmt,conn); } return false; } }
最新回复(0)