实现简单的登录功能

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement; public class JDBCFindAll { private static final String jdbcName="com.mysql.jdbc.Driver";
private static final String url="jdbc:mysql://127.0.0.1:3306/emp_dept";
private static final String user="root";
private static final String password="123456";
/*
* 一个类(DriverManeger)四个接口(Connection、PreparedStatement、ResultSet、Statement)
* */
public static void main(String[] args) {
// TODO Auto-generated method stub
Connection conn=null;
try {
Class.forName(jdbcName);
conn=DriverManager.getConnection(url, user, password);
//登录的操作 String usr="aaawfwfwfwfw' or 1 #"; //sql注入的风险
String pwd="334343343434"; String sql="select id,usr,pwd from user where usr='"+usr+"' and pwd='"+pwd+"'";
Statement st=conn.createStatement();
ResultSet rs=st.executeQuery(sql);
if(rs.next()){
System.out.println("登录成功!进入主页面!");
}else{
System.out.println("用户名或密码错误!登录失败!");
} } catch (Exception e) {
e.printStackTrace();
} finally {
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
} }

其中下面标红部分存在sql注入风险

在sql语句显示如下图:

查询结果如下图:(显示了所有的查询结果)

在这种情况下用户在不知道用户名和密码的情况下,轻易登录成功。所以不要用Statement 接口,用Preparedstatement接口。

最新文章

  1. mybatis高级(3)_延迟加载_深度延迟_一级缓存_二级缓存
  2. 关于activity的启动模式
  3. IOS
  4. java.lang.ClassCastException: android.widget.RelativeLayout cannot be cast to android.widget.TextView
  5. 测试 IE 浏览器兼容性 VirtualBox + modern.ie
  6. Css3炫酷总结使用
  7. 五个新知识:微软SHA2补丁,亚信专业工具,微软官方文档,使用过期签名(附官方推荐链接),注意使用具有UAC的CMD
  8. HttpWebRequest上传文件(Excel等)
  9. MySql事务无法回滚的原因
  10. 关于php析构函数__destruct()的问题
  11. 【NOIP2014】Day1题解+代码
  12. loadView 再思考
  13. 关于中值滤波算法,以及C语言实现(转)
  14. 笔记+R︱信用风险建模中神经网络激活函数与感知器简述
  15. [矩形并-扫描线-线段树]Picture
  16. String.length()和String.getBytes().length
  17. maven在windows及linux环境下安装
  18. LOJ 2550 「JSOI2018」机器人——找规律+DP
  19. rqalpha探究 1 setup.py
  20. 导出函数__declspec(dllexport)

热门文章

  1. [LeetCode] 212. 单词搜索 II
  2. Springboot+Jedis+Ehcache整合
  3. postman中x-www-form-urlencoded与form-data的区别
  4. 53. Maximum Subarray (JAVA)
  5. XIB约束布局问题(button)
  6. 20140919-FPGA-有效观察设计中的差分信号
  7. 十、S3C2440 开发资源
  8. ubuntu16.04 配置tomcat开机启动
  9. ESP8266-01
  10. Python---协程---重写多线程