JDBC和sql注入

本文介绍了JDBC,它是Java连接数据库的标准,包括其作用、好处和四个核心对象。详细阐述了JDBC操作步骤,并对比了PreparedStatement和Statement的区别,强调了PreparedStatement在防止SQL注入上的优势。接着解释了SQL注入的概念、原理和危害,并通过实例展示了如何防止SQL注入,最后总结了学习JDBC和SQL注入防护的重要性。
摘要由CSDN通过智能技术生成

JDBC介绍

JDBC全称是Java Database Connectivity(java数据库连接),是java连接数据库的标准和规范

JDBC的作用

用于执行SQL语句的Java API(Java语言通过JDBC可以操作数据库)。

JDBC的好处

  • 使用简单,只需要会调用JDBC中的方法即可。
  • 使用同一套Java代码,进行少量的修改就可以访问其他的JDBC支持的数据库。

JDBC四个核心对象

  • DriverManager:驱动管理(驱动的注册,打开连接)
  • Connection:表示与数据库创建的连接(控制连接,处理事务)
  • PreparedStatement:设置参数,执行sql语句
    :PreparedStatement和Statement的联系与区别?
    联系:两者都是处理器对象,都是负责执行SQL语句,PreparedStatement是Statement的子接口,拥有更丰富的API
    区别:PreparedStatement可以防止SQL注入,Statement不可以
  • ResultSet:结果集(封装了查询语句中返回的所有数据)

JDBC操作步骤

  1. 导入驱动包

JDBC会用到的包:

  • java.sql:JDBC访问数据库的基础包,在JavaSE中的包。如:java.sql.Connection

  • javax.sql: JDBC访问数据库的扩展包

导入成功效果图
在这里插入图片描述

  1. 加载驱动

第一种方式

     //版本8.xxx    com.mysql.cj.jdbc.Driver
     //版本5.xxx    com.mysql.jdbc.Driver
     Class.forName("com.mysql.cj.jdbc.Driver"); //只加载一次(推荐使用)

第二种方式

//     DriverManager.registerDriver(new Driver());//加载了两次,Driver里面有静态代码块,new了之后类加载完就加载了一次,外面的api方法又加载了一次

第三种方式

  //3.不显示加载驱动类(jar包里面有默认路径,也就是第一种)

就是如果所示这个依赖包的配置文件,有的jar包没有该文件
在这里插入图片描述
在这里插入图片描述

  1. 获得连接
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/jdbc?serverTimezone=UTC", "root", "root");
  1. 获取预处理器对象(获得执行sql语句的对象)
PreparedStatement preparedStatement = connection.prepareStatement("insert into t_user(id,name) values (?,?)");
  1. 设置参数
//            setInt(第几个参数,值);
        preparedStatement.setInt(1,1);
        preparedStatement.setString(2,"杜甫");

        preparedStatement.setInt(1,2
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值