一、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相关推荐

  1. jdbc执行Statement接口的步骤

    jdbc执行Statement接口的步骤如下: 1)驱动注册程序: Class.forName(com.mysql.jdbc.Driver); 2)获取连接对象: Connection conn = ...

  2. Java JDBC 使用Statement 产生sql注入问题

    #Java JDBC 使用Statement 产生sql注入问题 Statement 对象用于执行静态SQL语句并返回其生成的结果对象 Statement 对象执行SQL语句,存在SQL注入风险 代码 ...

  3. 关于jdbc中Statement

    关于jdbc中Statement 一. PreparedStatement 接口继承 Statement , PreparedStatement 实例包含已编译的 SQL 语句:Statement每次 ...

  4. JDBC(一)——statement对象、PreparedStatement对象

    文章目录 1. 数据库驱动 2. JDBC 3. 第一个JDBC程序 4. statement对象 4.1 简述 4.2 CRUD操作 4.3 代码实现 5. PreparedStatement对象 ...

  5. JDBC中Statement与PreparedStatement的区别

    http://www.blogjava.net/redcoatjk/archive/2012/07/20/383583.html 1. statement每次执行sql语句,相关数据库都要执行sql语 ...

  6. jdbc操作mysql延时操作_关于jdbc通过Statement和PrepareStatement进行数据库批处理操作,以提供程序效率...

    前言 关于程序执行延时过长,很大部分来源于数据建立连接延时及连接池上限等到可用连接演示,如果能减少与数据库建立连接的次数,无疑提高了系统的执行效率,关于这一点可以将相关的频繁的sql操作以批处理的方式 ...

  7. 由数据库对sql的执行说JDBC的Statement和PreparedStatement

    1.每一种数据库都会尽最大努力对预编译语句提供最大的性能优化.因为预编译语句有可能被重复调用.所以语句在被DB的编译器编译后的执行代码被缓存下来,那么下次调用时只要是相同的预编译语句就不需要编译,只要 ...

  8. JDBC通过Statement执行查询操作

    原理: ResultSet:结果集合,封装了使用JDBC进行查询的结果      1. 调用Statement对象的      2. ResultSet返回的实际就是一张数据表,有一个指针指向数据表的 ...

  9. JDBC中Statement接口提供的execute、executeQuery和executeUpdate之间的区别

    Statement 接口提供了三种执行 SQL 语句的方法:executeQuery.executeUpdate 和 execute.使用哪一个方法由 SQL 语句所产生的内容决定. 方法execut ...

最新文章

  1. 将TVM集成到PyTorch
  2. InheritParasitic.js
  3. MATLAB之GUI学习经典举例
  4. poj 2151 Check the difficulty of problems
  5. 关于新手的一个bug,pycharm和IDea的ctrl+C和ctrl+V不起作用
  6. 01-07 Linux三剑客-grep
  7. kux格式怎么转换 kux完美转换成MP3音频的技巧分享
  8. Hans Berger脑电图之父的人生摘要
  9. 格雷斯音频大篷车无线音箱回顾
  10. Linux查看电脑启动时间,几种常用的「查看Linux开机时间」的命令
  11. stm32实验报告心得体会_stm32实训心得体会.docx
  12. python获取发送到手机的短信,使用python将短信更新发送到手机
  13. linux日志管理工具logrotate配置
  14. 【机器学习】手写数字识别学习笔记(对三篇文件进行分析记录)
  15. 系分 - 操作系统 - 嵌入式
  16. 在设备树中时钟的简单使用
  17. 【32最小系统板】pid循迹小车(铁丝循迹)
  18. 一个游戏程序员必须要读的书[转]
  19. 程序员容易读错的IT专业术语词典
  20. 卸载Windows服务命令sc delete失效

热门文章

  1. 【电气专业知识问答】问:双重化保护配置的基本要求及适用范围是什么?
  2. 【华为OD机试 2023】 最多几个直角三角形(C++ Java JavaScript Python)
  3. 使用javassist增强ValueObject对象功能——给ValueObject属性设置Get和Set方法
  4. 将Appsec添加到敏捷中:安全案例,邪恶用户案例和Abuse(r)案例
  5. 关于windows开机进入自启动程序非资源管理器的问题
  6. 【机器学习】ROC曲线与PR曲线
  7. 外挂基础知识入门教学|工具下载
  8. Tomcat的服务器介绍
  9. c语言 字符串和数组指针,C语言数组与指针一本道来
  10. python opencv绘制直方图