JDBC连接mysql数据库操作
一.创建所需对象,并进行初始化
Connection connection=null;
Statement statement=null;
PreparedStatement pst;
ResultSet rs=null;
二.加载mysql驱动
Class.forName("com.mysql.jdbc.Driver");
三.创建链接(url为数据库连接,root帐号,pwd密码)
connection=DriverManager.getConnection(url,root,pwd);
四.创建statement一般创建为预编形的即PreparedStatement,如果使用Statement会引起sql注入攻击,首先是一般的Statement:
statement=connection.createStatement();
String sql="select * from user where username='"+username+"'"+"and password='"+password+"'";
rs=statement.executeQuery(sql);if(rs.next()){response.getWriter().print("connection is ok");}else {response.getWriter().print("用户名密码错误");}
五.测试:1.输入正确帐号="张三",密码=1234;获得效果
2.输入错误帐号=12312,密码=1231234' or '1'='1;获得效果,并将sql语句打印出来
3.总结:这句sql相当与( select * from user)一般的stament会因为sql拼接的问题,可能会被恶意攻击,攻击者可以无需帐号密码即可登录,可甚至可以删除你的数据库。
六.使用PreparedStatement防止sql注入,增强安全性,而且他比statement的效率更高,因为它是预先编译好的sql语句,使用?来代表参数,通过pst.setString方法将值传入,
第一个参数代表是第几个?的位置(从1开始),第二个参数代表是参数值。
String sql="select * from user where username=? and password=?";pst=connection.prepareStatement(sql);pst.setString(1, username);pst.setString(2, password);System.out.println(pst.toString());rs=pst.executeQuery();if(rs.next()){response.getWriter().print("connection is ok");}else {response.getWriter().print("用户名密码错误");}
七.测试:输入错误帐号=12312,密码=1231234' or '1'='1(sql注入方法能否正常登录)
八.总结,为什么能防止sql,看打印出来的sql语句便可以知道,预编译的语句在执行时会自动转义一些字符,从而防止sql注入
转载于:https://www.cnblogs.com/hckblogs/p/7701184.html
JDBC连接mysql数据库操作相关推荐
- jdbc mysql增删改查_使用JDBC连接MySQL数据库操作增删改查
更多精彩内容欢迎访问我的个人博客皮皮家园:http://www.zhsh666.xyz或者http
- JDBC连接MySQL数据库及演示样例
JDBC是Sun公司制定的一个能够用Java语言连接数据库的技术. 一.JDBC基础知识 JDBC(Java Data Base Connectivity,java数据库连接)是一种用 ...
- jaba窗体连接mysql增删改查_知识实现——Java使用jdbc连接MySql数据库,实现增删改查...
Java使用jdbc连接MySql数据库,实现增删改查 首先,导入MySql连接数据库的jar包,我用的是 mysql连接jar包 DB类,用于获得数据库连接 import java.sql.Driv ...
- JDBC连接MySQL数据库及示例
JDBC是Sun公司制定的一个可以用Java语言连接数据库的技术. 一.JDBC基础知识 JDBC(Java Data Base Connectivity,java数据库连接)是一种用 ...
- java jdbc 连接mysql数据库 实现增删改查
好久没有写博文了,写个简单的东西热热身,分享给大家. jdbc相信大家都不陌生,只要是个搞java的,最初接触j2ee的时候都是要学习这么个东西的,谁叫程序得和数据库打交道呢!而jdbc就是和数据库打 ...
- java mysql教程基于_java基于jdbc连接mysql数据库功能实例详解
本文实例讲述了java基于jdbc连接mysql数据库的方法.分享给大家供大家参考,具体如下: 一.JDBC简介 Java 数据库连接,(Java Database Connectivity,简称JD ...
- mysql分页查询出租房屋信息_分页查询信息(使用jdbc连接mysql数据库实现分页查询任务)...
分页查询信息 使用jdbc连接mysql数据库实现分页查询任务 通过mysql数据库提供的分页机制,实现商品信息的分页查询功能,将查询到的信息显示到jsp页面上. 本项目时一个简单的运用eclipse ...
- java JDBC连接MySQL数据库调用存储过程进行查询
java JDBC连接MySQL数据库调用存储过程进行查询 主程序代码 工具类 文件信息 存储过程 结果截图 主程序代码 package Mysql;import util.JDBCUtils; im ...
- JDBC连接MySQL数据库,访问数据库信息完成登录功能——保姆级详细教程(附所有java和jsp源代码)
目录 前言 JDBC的介绍 通过JDBC连接MySQL数据库 导入mysql驱动 连接数据库 连接数据库 判断连接是否成功 使用数据库实现登录 获取前端表单的用户输入 判断用户名和密码为空 查询表 判 ...
最新文章
- 全方位复盘GNN,12位大神寄望2021年大爆发
- 【django之admin,单例模式】
- 毛笔日常保养注意事项
- GIS中常用的高程系
- st7735屏幕移植-高清图片显示
- android9 apk自动安装功能,Android自动安装APK
- Child returned status 1问题解决
- 极客时间马哥教育-云原生训练营第一周作业-20221016
- VOT 数据集下载toolkit
- 【前端】Qt简明教程
- STM32CubeIDE配置使用
- EARTH DATA网站注册走过的坑
- 龙芯平台OsTools-Gmac更新
- 【UI学习】Android github开源项目,酷炫自定义控件(View)汇总
- Android消息机制(Handler机制) - 线程的等待和唤醒
- 2018年终个人总结
- How to Write a Spelling Corrector
- XDOJ例题及答案第八更 密码编译 密码强度 排序2 排序3 排序算法比较器 判断奇偶性 平均数 气温波动 亲和数 求交错序列前N项和 求平均值求奇数的和
- 自制Kindle电子书转化的实用技巧
- varnish 简单应用
热门文章
- SAP C4C Opportunity和SAP ERP Sales流程的集成
- linux内核5.4,Linux Kernel 5.4 RC8 发布,一切都很正常
- 如果要用thinkphp框架_php需要改哪些配置,thinkPHP框架动态配置用法实例分析
- html实体转化字符串 php_PHP htmlentities() 函数
- 求根节点到叶节点数字之和Python解法
- Python的注释方式
- android 权限管理框架,Android 运行时权限管理最佳实践
- Linux非系统盘挂载,[转载] Linux mount 挂载分区、硬盘
- oracle删除unique key,概述Oracle Unique约束
- python 列表解析式_python列表解析式,字典解析式,集合解析式和生成器