Mysql(验证用户登录)
在这里先使用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(验证用户登录)相关推荐
- php链接mysql验证用户登录,PHP连接mysql验证用户名是否存在
登录界面 用户名: if (isset($_POST['submit'])) { $us = $_POST["user_name"]; $conn = mysqli_connect ...
- MVC4验证用户登录特性实现方法
在开发过程中,需要用户登陆才能访问指定的页面这种功能,微软已经提供了这个特性. // 摘要:// 表示一个特性,该特性用于限制调用方对操作方法的访问.[AttributeUsage(Attribute ...
- MVC4项目中验证用户登录一个特性就搞定
在开发过程中,需要用户登陆才能访问指定的页面这种功能,微软已经提供了这个特性.// 摘要:// 表示一个特性,该特性用于限制调用方对操作方法的访问.[AttributeUsage(AttributeT ...
- vue router.beforeEach跳转路由验证用户登录状态
使用vue判断验证用户登录状态 导航钩子类似于生命周期钩子,包含路由进入前,进入后,更新时,退出前等几个周期,主要用于控制导航的前进后退或跳转等. 其中router.beforeEach就是路由进入前 ...
- web实验新浪邮箱、下拉小说列表、验证用户登录
html.css.js 新浪邮箱 下拉小说列表 验证用户登录 新浪邮箱 1.制作以下的新浪 邮箱登录界面: 要求: 1)首先给文本框制作细边框样式,当鼠标放在文本框上时,输入框的边框颜色发生变化,当鼠 ...
- Asp.Net使用加密cookie代替session验证用户登录状态 源码分享 欢迎拍砖
小论坛地址: http://rayyu.5d6d.com/thread-9444-1-1.html 正文: 首先 session 和 cache 拥有各自的优势而存在. 他们的优劣就不在这里讨论了. ...
- 仿qq邮箱实现php+mysql动态用户登录
仿qq邮箱实现php+mysql动态用户登录 1.大体思路 在前端输入用户名密码通过form表单提交到后台进性判断,如果数据库中该用户名和密码,则进行转跳,否者将该用户名密码插入数据库然后再进行转跳. ...
- ASP.NET MVC使用Authorize过滤器验证用户登录
ASP.NET MVC使用Authorize过滤器验证用户登录.Authorize过滤器首先运行在任何其它过滤器或动作方法之前,主要用来做登录验证或者权限验证. 示例:使用Authorize过滤器实现 ...
- php mysql用户登录_php mysql实现用户登录功能的代码示例
接着上次的php mysql添加用户的功能代码,今天来学习下php实现用户登录与注销的功能,通过跟踪session会话来保存用户的登陆状态. 1,登录页面 login.php 用户登录_www.# 用 ...
最新文章
- chrome浏览器不能录音:Uncaught TypeError: Cannot read property ‘getUserMedia‘ of undefined解决方法
- 9种蔬菜吃不对胜似砒霜
- 用了Dapper之后通篇还是SqlConnection,真的看不下去了
- 搞了多年管理软件,总算说清楚了什么是好软件
- 马云创造的就业机会多还是毁掉的就业机会多?
- 高效管理CrossOver容器里的程序
- freemarker 如何获得list的索引值
- 常用计算机硬件故障检查方法,电脑硬件常见的故障检测及处理方法
- 7-3 单词首字母大写
- 怎样搭建企业内部知识库
- abupy文件结构功能
- ubuntu 下stl obj ply 3dx fbx等各种格式转pcd方法
- Android Studio3.0没有Launch Standalone SDK Manager
- python -- 魔术方法
- [转]物理学家称曲率驱动或可实现10倍光速飞行
- Bloxorz I bfs
- 面试突击MySQL聚簇索引和非聚簇索引有什么区别?
- TokenGazer评级 | Bancor:经济模型架设具备创新 未来发展存在较多挑战
- 运营商数据:苹果用户流失 华为魅族势头强劲
- 翻牌游戏(dfs/状压/暴力)