PreparedStatement 的用法 | 学习笔记

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 快速学习 PreparedStatement 的用法。

开发者学堂课程【JDBC数据库开发入门PreparedStatement 的用法】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/29/detail/634


PreparedStatement 的用法


内容介绍

一、PreparedStatement 的强大之处

二、PreparedStatement 防 SQL 攻击

三、查询数据库

四、得到 connection

五、如何得到 Preparedstatement 对象


一、PreparedStatement 的强大之处

1.防 SQL 攻击

2.提高代码的可读性、可维护性

3.提高效率!


二、PreparedStatement防SQL攻击

1.登录

2.使用 username 和 password 去查询数据

3.若查出结果集说明正确!返回 true

4.若查出不出结果,说明用户名或密码错误,返回 false。


三、查询数据库

1.得到 connection

2.得到 statement

3.得到 Resultset

4.对 Resultset 进行判断:rs.next() 返回的是什么,就返回什么


四、得到 connection

(1)准备四大参数

String driverclassName = "com.mysql.jdbc.Driver";

String url = jdbc:mysql : // localhost : 3306/mnydb3";

String mysqlUsername = "root";

String mysqlPassword = "123";

(2)加载驱动类

Class.forName (driverclassName) ;

(3)得到 Connection

connection con = DriverManager.getConnection(url,mysqlusername,mysqlPasswrd)

(4)得到 Statement

Statement stmt =con.createstatement ();

(5)给出sql语句,调用stmt的executeQuery( ),得到Resultset

String sql = "select * from t_user where username=" +username+" and password="+password+";system.out.println (sql);

Reaultset rs = stmt-executeQuery (sql);

return rs.next();

@Test

public void fun1() throws Exception {

//select * from t_user where username='a' or 'a'='a iand password='a' or 'a'='a'

String username ="a' or 'a'='a";

String password ="a' or 'a'='a";

boolean bool = login ( username,password);

system.out.println (bool) ;}

五、如何得到 Preparedstatement 对象

1.给出 SQL 模板:所有的参数使用?来替代

string sql = "select * from t_user where username=? and password=?" ;

2.调用 Connection 方法,得到 PreparaedStatement

PreparedStatement pstmt = con.preparcstatoment(aql);

3.调用pstmt的setXxx()系列方法 sql 模板中的?赋值!

为参数赋值

Pstmt.setString (1. username) ;//给第1个问号赋值,值为 username

pstmt.setstring (2,password) ; //给第2个问号赋值,值为 password

pstmt.setstring (3.“Xxx");

Resultset rs = pstmt.executeQuery( );//调用查询方法,向数据库发送查询语句

4.调用 pstmt 的 executeUpdate[) 或 executeQuery(),但它的方法都没有参数。

            </div>
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
STM32F103标准外设库——SysTick系统定时器(八)
STM32F103标准外设库——SysTick系统定时器(八)
1626 0
STM32F103标准外设库——SysTick系统定时器(八)
|
人工智能 搜索推荐 大数据
VR技术在教育与培训中的应用
虚拟现实(VR)技术作为一种先进的交互式技术,已经被广泛应用于游戏、娱乐等领域。然而,其在教育与培训中的应用也越来越受到关注。本文将探讨VR技术在教育与培训中的应用,揭示其优势和挑战,并探讨未来发展趋势。
575 4
麒麟系统mate-indicators进程占用内存过高问题解决
【10月更文挑战第7天】麒麟系统mate-indicators进程占用内存过高问题解决
1348 2
|
9月前
|
机器学习/深度学习 编解码 自动驾驶
YOLOv11改进策略【模型轻量化】| 替换骨干网络为MoblieNetV1,用于移动视觉应用的高效卷积神经网络
YOLOv11改进策略【模型轻量化】| 替换骨干网络为MoblieNetV1,用于移动视觉应用的高效卷积神经网络
342 16
YOLOv11改进策略【模型轻量化】| 替换骨干网络为MoblieNetV1,用于移动视觉应用的高效卷积神经网络
|
9月前
|
算法 安全 大数据
【算法合规新时代】企业如何把握“清朗·网络平台算法典型问题治理”专项行动?
在数字化时代,算法推动社会发展,但也带来了信息茧房、大数据杀熟等问题。中央网信办发布《关于开展“清朗·网络平台算法典型问题治理”专项行动的通知》,针对六大算法问题进行整治,明确企业需落实算法安全主体责任,建立健全审核与管理制度,并对算法进行全面审查和备案。企业应积极自查自纠,确保算法合规透明,防范风险,迎接新机遇。
|
9月前
|
数据采集 监控 搜索推荐
深度解析淘宝商品详情API接口:解锁电商数据新维度,驱动业务增长
淘宝商品详情API接口,是淘宝开放平台为第三方开发者提供的一套用于获取淘宝、天猫等电商平台商品详细信息的应用程序接口。该接口涵盖了商品的基本信息(如标题、价格、图片)、属性参数、库存状况、销量评价、物流信息等,是电商企业实现商品管理、市场分析、营销策略制定等功能的得力助手。
|
9月前
|
API 图形学 开发者
unity 动态添加 EventTrigger
在 Unity 中动态添加 EventTrigger 的原理是利用 Unity 事件系统和 API 创建、配置并绑定事件触发器。EventTrigger 组件允许为游戏对象添加多种交互事件,如点击、拖拽等。通过 `AddComponent&lt;EventTrigger&gt;()` 方法创建组件实例,并使用 `EventTrigger.Entry` 定义事件类型和回调函数。示例代码展示了如何为 Image 组件添加指针进入和离开的事件监听器,分别改变其颜色。
|
11月前
|
域名解析 负载均衡 安全
DNS技术标准趋势和安全研究
本文探讨了互联网域名基础设施的结构性安全风险,由清华大学段教授团队多年研究总结。文章指出,DNS系统的安全性不仅受代码实现影响,更源于其设计、实现、运营及治理中的固有缺陷。主要风险包括协议设计缺陷(如明文传输)、生态演进隐患(如单点故障增加)和薄弱的信任关系(如威胁情报被操纵)。团队通过多项研究揭示了这些深层次问题,并呼吁构建更加可信的DNS基础设施,以保障全球互联网的安全稳定运行。
|
12月前
|
供应链 安全 区块链
深入探索区块链技术在金融科技中的革新应用####
本文旨在探讨区块链技术如何重塑金融科技领域,通过分析其核心特性及实际应用案例,揭示该技术提升金融交易透明度、降低成本并增强安全性的潜力。不同于传统摘要仅概述研究范围与结论,本部分将简要预览文中关键论点,激发读者兴趣,为深入阅读铺垫基础。 ####
353 0
|
存储 索引
打造个人知识管理系统:从信息收集到知识应用
【9月更文挑战第10天】在信息爆炸的时代,如何高效地管理和利用信息成为现代人面临的一大挑战。本文将介绍如何构建一个个人知识管理系统,包括信息收集、整理、存储和检索的全过程。我们将探讨使用数字工具进行信息管理的方法,并分享一些实用的技巧和策略。无论你是学生、职场人士还是终身学习者,这些方法都将帮助你更好地管理知识和提升学习效率。
423 10