JDBC的Statement
一、Statement
1.Statement对象,用于执行静态sql语句并返回其生成的结果的对象。
2.在建立连接后,需要对数据库进行访问,执行命令或是sql语句,可以通过
(1).Statement【存在sql注入】
(2).PreparedStatement[预处理]
(3).CallableStatement[存储过程]
3.Statement对象执行sql语句,存在sql注入风险。
package com.jun.jdbc.Statement;import java.io.FileInputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Properties;
import java.util.Scanner;/***statement sql注入*/
public class Statement01 {public static void main(String[] args) throws Exception {Scanner scanner = new Scanner(System.in);//用户输入管理员的姓名和密码System.out.println("请输入姓名");String admin_name = scanner.nextLine();//不能使用next,遇到空格或’会结束System.out.println("请输入密码");String admin_pwd = scanner.nextLine();Properties properties = new Properties();properties.load(new FileInputStream("src\\mysql.properties"));//获取到相关值String user = properties.getProperty("user");String password = properties.getProperty("password");String driver = properties.getProperty("driver");String url = properties.getProperty("url");Class.forName(driver);Connection connection = DriverManager.getConnection(url, user, password);//得到StatementStatement statement = connection.createStatement();//sql语句String sql ="select name,pwd from admin where name='"+admin_name+"' and pwd='"+admin_pwd+"'";ResultSet resultSet = statement.executeQuery(sql);if (resultSet.next()){//假如查询有记录,即管理员存在System.out.println("登录成功");}else{System.out.println("登录失败");}//关闭流resultSet.close();statement.close();connection.close();}
}
JDBC的Statement相关推荐
- jdbc执行Statement接口的步骤
jdbc执行Statement接口的步骤如下: 1)驱动注册程序: Class.forName(com.mysql.jdbc.Driver); 2)获取连接对象: Connection conn = ...
- Java JDBC 使用Statement 产生sql注入问题
#Java JDBC 使用Statement 产生sql注入问题 Statement 对象用于执行静态SQL语句并返回其生成的结果对象 Statement 对象执行SQL语句,存在SQL注入风险 代码 ...
- 关于jdbc中Statement
关于jdbc中Statement 一. PreparedStatement 接口继承 Statement , PreparedStatement 实例包含已编译的 SQL 语句:Statement每次 ...
- JDBC(一)——statement对象、PreparedStatement对象
文章目录 1. 数据库驱动 2. JDBC 3. 第一个JDBC程序 4. statement对象 4.1 简述 4.2 CRUD操作 4.3 代码实现 5. PreparedStatement对象 ...
- JDBC中Statement与PreparedStatement的区别
http://www.blogjava.net/redcoatjk/archive/2012/07/20/383583.html 1. statement每次执行sql语句,相关数据库都要执行sql语 ...
- jdbc操作mysql延时操作_关于jdbc通过Statement和PrepareStatement进行数据库批处理操作,以提供程序效率...
前言 关于程序执行延时过长,很大部分来源于数据建立连接延时及连接池上限等到可用连接演示,如果能减少与数据库建立连接的次数,无疑提高了系统的执行效率,关于这一点可以将相关的频繁的sql操作以批处理的方式 ...
- 由数据库对sql的执行说JDBC的Statement和PreparedStatement
1.每一种数据库都会尽最大努力对预编译语句提供最大的性能优化.因为预编译语句有可能被重复调用.所以语句在被DB的编译器编译后的执行代码被缓存下来,那么下次调用时只要是相同的预编译语句就不需要编译,只要 ...
- JDBC通过Statement执行查询操作
原理: ResultSet:结果集合,封装了使用JDBC进行查询的结果 1. 调用Statement对象的 2. ResultSet返回的实际就是一张数据表,有一个指针指向数据表的 ...
- JDBC中Statement接口提供的execute、executeQuery和executeUpdate之间的区别
Statement 接口提供了三种执行 SQL 语句的方法:executeQuery.executeUpdate 和 execute.使用哪一个方法由 SQL 语句所产生的内容决定. 方法execut ...
最新文章
- 将TVM集成到PyTorch
- InheritParasitic.js
- MATLAB之GUI学习经典举例
- poj 2151 Check the difficulty of problems
- 关于新手的一个bug,pycharm和IDea的ctrl+C和ctrl+V不起作用
- 01-07 Linux三剑客-grep
- kux格式怎么转换 kux完美转换成MP3音频的技巧分享
- Hans Berger脑电图之父的人生摘要
- 格雷斯音频大篷车无线音箱回顾
- Linux查看电脑启动时间,几种常用的「查看Linux开机时间」的命令
- stm32实验报告心得体会_stm32实训心得体会.docx
- python获取发送到手机的短信,使用python将短信更新发送到手机
- linux日志管理工具logrotate配置
- 【机器学习】手写数字识别学习笔记(对三篇文件进行分析记录)
- 系分 - 操作系统 - 嵌入式
- 在设备树中时钟的简单使用
- 【32最小系统板】pid循迹小车(铁丝循迹)
- 一个游戏程序员必须要读的书[转]
- 程序员容易读错的IT专业术语词典
- 卸载Windows服务命令sc delete失效
热门文章
- 【电气专业知识问答】问:双重化保护配置的基本要求及适用范围是什么?
- 【华为OD机试 2023】 最多几个直角三角形(C++ Java JavaScript Python)
- 使用javassist增强ValueObject对象功能——给ValueObject属性设置Get和Set方法
- 将Appsec添加到敏捷中:安全案例,邪恶用户案例和Abuse(r)案例
- 关于windows开机进入自启动程序非资源管理器的问题
- 【机器学习】ROC曲线与PR曲线
- 外挂基础知识入门教学|工具下载
- Tomcat的服务器介绍
- c语言 字符串和数组指针,C语言数组与指针一本道来
- python opencv绘制直方图