MySQL_(Java)使用JDBC创建用户名和密码校验查询方法
2023-09-14 08:57:05 时间
MySQL_(Java)使用JDBC向数据库发起查询请求 传送门
MySQL数据库中的数据,数据库名garysql,表名garytb,数据库中存在的用户表
通过JDBC对MySQL中的数据用户名和密码校验查询,当数据库中存在该用户且账号密码相匹配,则返回true,否则返回false
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class JDBC01 { public static void main(String[] args) throws SQLException { //selectAll(); System.out.println(selectByUernamePassword("Gary","123")); } public static void selectAll() throws SQLException { //注册驱动 使用驱动连接数据库 Connection con = null; Statement stmt = null; ResultSet rs = null; try { Class.forName("com.mysql.jdbc.Driver"); //String url ="jdbc:mysql://localhost:3306/garysql"; //指定编码查询数据库 String url ="jdbc:mysql://localhost:3306/garysql?useUnicode=true&characterEncoding=UTF8&useSSL=false"; String user = "root"; String password = "123456"; //建立和数据库的连接 con = DriverManager.getConnection(url,user,password); //数据库的增删改查 stmt = con.createStatement(); //返回一个结果集 rs =stmt.executeQuery("select * from garytb"); while(rs.next()) { //System.out.println(rs.getString(1)+","+rs.getString(2)+","+rs.getString(3)); System.out.println(rs.getString("id")+","+rs.getString("username")+","+rs.getString("password")); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { if(rs!=null) rs.close(); if(stmt!=null) stmt.close(); if(con!=null) con.close(); } } public static boolean selectByUernamePassword(String username,String password) throws SQLException { Connection con=null; Statement stmt = null; ResultSet rs = null; try { Class.forName("com.mysql.jdbc.Driver"); String url ="jdbc:mysql://localhost:3306/garysql?useUnicode=true&characterEncoding=UTF8&useSSL=false"; con = DriverManager.getConnection(url,"root","123456"); stmt =con.createStatement(); String sql = "select * from garytb where username = '"+username+"' and password = '"+password+"'"; rs = stmt.executeQuery(sql); if(rs.next()) { return true; }else { return false; } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { if(rs!=null) rs.close(); if(stmt!=null) stmt.close(); if(con!=null) con.close(); } return false; } }
注意:直接使用该字符串对数据库信息查询时会产生sql注入的危险
String sql = "select * from garytb where username = '"+username+"' and password = '"+password+"'";
//校验用户 public static boolean selectByUernamePassword(String username,String password) throws SQLException { Connection con=null; Statement stmt = null; ResultSet rs = null; try { Class.forName("com.mysql.jdbc.Driver"); String url ="jdbc:mysql://localhost:3306/garysql?useUnicode=true&characterEncoding=UTF8&useSSL=false"; con = DriverManager.getConnection(url,"root","123456"); stmt =con.createStatement(); String sql = "select * from garytb where username = '"+username+"' and password = '"+password+"'"; //System.out.println(sql); rs = stmt.executeQuery(sql); if(rs.next()) { return true; }else { return false; } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { if(rs!=null) rs.close(); if(stmt!=null) stmt.close(); if(con!=null) con.close(); } return false; }
我们可以在selectByUernamePassword(String username,String password)方法中输出该SQL语句
发现or后半段的条件永远是成立的!
解决此方法可查看我的另一篇博文 使用preparestatement解决SQL注入的问题 传送门
相关文章
- MySQL 密码重置指南(mysql密码重置)
- 数据表MySQL数据表回滚恢复:实现快速且准确(回滚mysql)
- MySQL中添加用户并设置密码(mysql添加用户密码)
- MySQL:修改用户密码的简单方法(Mysql修改用户密码)
- MySQL数据导出的简单操作(怎么将mysql数据导出)
- 的迁移从MySQL到Oracle的数据库迁移(mysql到oracle)
- MySQL中轻松获取自增ID(mysql获取自增值)
- 程序MySQL与Java Web程序互联关系完美呈现(mysql连接javaweb)
- 深入浅出Java配置MySQL数据库(java配置mysql)
- MySQL中处理二进制数据的技术(mysql二进制数据)
- MySQL如何找回密码(mysql找回密码)
- 快速恢复丢失的MySQL数据文件方法简介(mysql数据文件恢复)
- MySQL空字段查询简明指南(mysql查询字段为空)
- 如何在Linux系统中重置MySQL密码(linux重置mysql)
- 修改MySQL密码的6步指南(mysql密码怎么改)
- MySQL远程使用:掌握基础知识,远程操作Mysql数据库。(mysql远程使用)
- Top 10 Rows from MySQL A Quick Guide to Retrieving Data(mysql前十条数据)
- MySQL中最佳实践:设计合理的字段名(mysql 字段名)
- MySQL批量执行多条语句的方法(c mysql多条语句吗)
- 开发效率C语言与MySQL结合提升开发效率(c mysql增加)
- 用cmd命令实现MySQL数据库备份(cmd命令mysql备份)
- MYSQL收费了 了解MySQL开源版的最新政策(mysql不再免费了吗)
- MySQL连接不允许使用p参数设置密码(mysql不允许-p密码)
- MySQL生命版下载为数据维护注入灵魂(mysql下载生命版本的)
- MySQL密码无法登录解决方法(mysql 不能登录密码)
- 如何解决 MySQL 数据库不能关联删除的问题(mysql不能关联删除)
- MySQL是否支持事务解析MySQL的事务处理能力(mysql不支持事物吗)