在这里先使用statement类示范登录成功,以及失败还有登录的bug

package cs.itcast.jdbc;import java.sql.*;
import java.util.Scanner;public class jdbctest01 {public static boolean login(String username, String password) {Statement stmt = null;Connection conn = null;ResultSet rs = null;if (username == null || password == null)return false;else {try {Class.forName("com.mysql.cj.jdbc.Driver");//注册驱动    mysql5之后再services中写过注册//定义sqlString sql = "select * from user where username='" + username + "' and password = '" + password + "' ";//获取Connection对象conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/sys?serverTimezone=GMT&useSSL=false", "root", "root");//获取执行sql 的对象statementstmt = conn.createStatement();//执行sqlrs = stmt.executeQuery(sql);/* if(rs.next())return true;elsereturn  false;
*/return  rs.next();} catch (SQLException throwables) {throwables.printStackTrace();} catch (ClassNotFoundException e) {e.printStackTrace();}}return true;}public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("请输入username");String   username = sc.next();System.out.println("请输入password");String password = sc.next();boolean flag  = login(username,password);if(flag)System.out.println("登录成功");elseSystem.out.println("登录失败");}
}

数据库中的数据

success

defeat

bug

 为什么会出现bug?这样做的系统岂不是很危险!!!原因是输入密码时候使用了sql的关键字

-->  or <--,造成了判断的原因   or 左右边只要有一个是true,密码判断就是正确

下面展示使用preparestatement类

PrepareStatement:执行sql对象1,sql注入问题:在拼接sql时候有特殊sql参与拼接造成安全性问题1.输入用户名随便   密码:a' or 'a' = 'a2.解决sql注入问题使用PrepareStatement3。预编译的sql参数使用占位符?来替代

        注意事项

                        

        prepareStatement(String sql)是有参数的,返回的值是PreparedStatement类(pstmt)但是preparestatement中的executeQuery();等方法是无参数的;

修改代码后

package cs.itcast.jdbc;import java.sql.*;
import java.util.Scanner;
/*
5.PrepareStatement:执行sql对象1,sql注入问题:在拼接sql时候有特殊sql参与拼接造成安全性问题1.输入用户名随便   密码:a' or 'a' = 'a2.解决sql注入问题使用PrepareStatement3。预编译的sql参数使用占位符?来替代*/
public class jdbctestreal {public static  boolean login(String username, String password) {PreparedStatement pstmt= null;Connection conn = null;ResultSet rs = null;if (username == null || password == null)return false;else {try {Class.forName("com.mysql.cj.jdbc.Driver");//注册驱动    mysql5之后再services中写过注册//定义sqlString sql = "select * from user where username = ? and password = ?";//获取Connection对象conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/sys?serverTimezone=GMT&useSSL=false", "root", "root");//获取执行sql 的对象statementpstmt = conn.prepareStatement(sql);//执行sqlpstmt.setString(1,username);pstmt.setString(2,password);rs = pstmt.executeQuery();/* if(rs.next())return true;elsereturn  false;
*/return  rs.next();} catch (SQLException throwables) {throwables.printStackTrace();} catch (ClassNotFoundException e) {e.printStackTrace();}}return true;}public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("请输入username");String   username = sc.next();System.out.println("请输入password");String password = sc.next();boolean flag  = login(username,password);if(flag)System.out.println("登录成功");elseSystem.out.println("登录失败");}
}

哈哈哈当然是很成功的登录失败了!!!

Mysql(验证用户登录)相关推荐

  1. php链接mysql验证用户登录,PHP连接mysql验证用户名是否存在

    登录界面 用户名: if (isset($_POST['submit'])) { $us = $_POST["user_name"]; $conn = mysqli_connect ...

  2. MVC4验证用户登录特性实现方法

    在开发过程中,需要用户登陆才能访问指定的页面这种功能,微软已经提供了这个特性. // 摘要:// 表示一个特性,该特性用于限制调用方对操作方法的访问.[AttributeUsage(Attribute ...

  3. MVC4项目中验证用户登录一个特性就搞定

    在开发过程中,需要用户登陆才能访问指定的页面这种功能,微软已经提供了这个特性.// 摘要:// 表示一个特性,该特性用于限制调用方对操作方法的访问.[AttributeUsage(AttributeT ...

  4. vue router.beforeEach跳转路由验证用户登录状态

    使用vue判断验证用户登录状态 导航钩子类似于生命周期钩子,包含路由进入前,进入后,更新时,退出前等几个周期,主要用于控制导航的前进后退或跳转等. 其中router.beforeEach就是路由进入前 ...

  5. web实验新浪邮箱、下拉小说列表、验证用户登录

    html.css.js 新浪邮箱 下拉小说列表 验证用户登录 新浪邮箱 1.制作以下的新浪 邮箱登录界面: 要求: 1)首先给文本框制作细边框样式,当鼠标放在文本框上时,输入框的边框颜色发生变化,当鼠 ...

  6. Asp.Net使用加密cookie代替session验证用户登录状态 源码分享 欢迎拍砖

    小论坛地址: http://rayyu.5d6d.com/thread-9444-1-1.html 正文: 首先 session 和 cache 拥有各自的优势而存在.  他们的优劣就不在这里讨论了. ...

  7. 仿qq邮箱实现php+mysql动态用户登录

    仿qq邮箱实现php+mysql动态用户登录 1.大体思路 在前端输入用户名密码通过form表单提交到后台进性判断,如果数据库中该用户名和密码,则进行转跳,否者将该用户名密码插入数据库然后再进行转跳. ...

  8. ASP.NET MVC使用Authorize过滤器验证用户登录

    ASP.NET MVC使用Authorize过滤器验证用户登录.Authorize过滤器首先运行在任何其它过滤器或动作方法之前,主要用来做登录验证或者权限验证. 示例:使用Authorize过滤器实现 ...

  9. php mysql用户登录_php mysql实现用户登录功能的代码示例

    接着上次的php mysql添加用户的功能代码,今天来学习下php实现用户登录与注销的功能,通过跟踪session会话来保存用户的登陆状态. 1,登录页面 login.php 用户登录_www.# 用 ...

最新文章

  1. chrome浏览器不能录音:Uncaught TypeError: Cannot read property ‘getUserMedia‘ of undefined解决方法
  2. 9种蔬菜吃不对胜似砒霜
  3. 用了Dapper之后通篇还是SqlConnection,真的看不下去了
  4. 搞了多年管理软件,总算说清楚了什么是好软件
  5. 马云创造的就业机会多还是毁掉的就业机会多?
  6. 高效管理CrossOver容器里的程序
  7. freemarker 如何获得list的索引值
  8. 常用计算机硬件故障检查方法,电脑硬件常见的故障检测及处理方法
  9. 7-3 单词首字母大写
  10. 怎样搭建企业内部知识库
  11. abupy文件结构功能
  12. ubuntu 下stl obj ply 3dx fbx等各种格式转pcd方法
  13. Android Studio3.0没有Launch Standalone SDK Manager
  14. python -- 魔术方法
  15. [转]物理学家称曲率驱动或可实现10倍光速飞行
  16. Bloxorz I bfs
  17. 面试突击MySQL聚簇索引和非聚簇索引有什么区别?
  18. TokenGazer评级 | Bancor:经济模型架设具备创新 未来发展存在较多挑战
  19. 运营商数据:苹果用户流失 华为魅族势头强劲
  20. 翻牌游戏(dfs/状压/暴力)

热门文章

  1. oracle判断if函数,ORACLE判断奇偶数函数
  2. 方克鼓校总部加盟政策
  3. 批量训练pytorch练习
  4. CVPR 2018 paper ---object detection
  5. 计算机模拟虚拟筛选操作流程
  6. 《数据结构与算法:Python语言描述》一1.3算法和算法分析
  7. 魔兽怀旧服务器维护副本是否重置,魔兽世界怀旧服副本重置时间 魔兽世界怀旧服副本重置时间详解...
  8. css div水平垂直居中
  9. 对计算机基础的期末总结,计算机期末总结
  10. 财政分权数据集:省级地级市财政分权度(1999-2021年)