PreparedStatement 、Connection接口和Statement接口

PreparedStatement

在这里插入图片描述
基本用法
在这里插入图片描述
PreparedStatement提供的功能:
1、允许sql语句中使用?占位符,表示参数
2、支持预编译功能
3、在一定程序上可以避免sql注入漏洞

查询所有的姓yan,年龄18岁以上男学生
在这里插入图片描述

Connection接口
  • Statement createStatement() 创建用于执行SQL语句的Statement对象
  • PreparedStatement prepareStatement(String sql)创建PrepareStatement对象,用于实现数据库的动态访问
  • 参数:sql —— 是SQL的INSERT,UPDATE和DELETE语句,或是无返回结果的语句
  • prepareCall(sql):创建执行存储过程的callableStatement对象
  • void close() 结束Connection对象对数据库的连接。强调:数据库连接属于稀有资源,必须保证及时关闭
  • boolean isClose() 测试是否已经关闭Connection对象对数据库的连接
  • setAutoCommit(boolean autoCommit):设置事务是否自动提交
  • commit() :在链接上提交事务
  • rollback() :在此链接上回滚事务
Statement接口

Statement接口用于执行静态的SQL语句,并将SQL语句的执行结果返回

  • ResultSet executeQuery(String sql) :执行SQL查询语句,返回满足条件的结果集。注意:ResultSet中并不是存储数据,而是存储一个行指针。所以必须在关闭之前操作ResultSet。如果连接关闭在访问ResultSet则异常
    参数:sql —— 是SQL的SELECT语句

  • int executeUpdate(String sql) :执行SQL数据更新语句,返回值为结果集中的记录数
    参数:sql —— 是SQL的INSERT,UPDATE和DELETE语句,或是无返回结果的语句

  • boolean execute(String sql) :执行任意SQL语句。如果第一个结果是ResultSet,则返回true;否则如果是整数型,则返回false。参数:sql —— 可以是任何SQL语句

  • void close() :关闭当前的Statement对象

  • 通过Connection接口建立Statement对象,可以使用executeQuery()方法对数据库表中存储的数据进行查询以及使用executeUpdate()方法进行插入、修改和删除记录的操作。必须保证关闭Connection,一般建议关闭Statement

  • addBatch(String sql) :把多条sql语句放到一个批处理中

  • executeBatch():向数据库发送一批sql语句执行。

三种Statement类
  • Statement:由createStatement创建,用于发送简单的静态SQL语句(不带参数)
  • PreparedStatement :继承自Statement接口,由preparedStatement创建,用于发送含有一个或多个参数的SQL语句。PreparedStatement对象支持预编译,反复执行一个只是参数不同的sql语句时,比Statement对象的效率更高,并且可以防止SQL注入,所以我们一般都使用PreparedStatement
  • CallableStatement:继承自PreparedStatement接口,由方法prepareCall创建,用于调用存储过程。

Statement和PreparedStatement的区别

  • Statement只能处理静态SQL; ​
  • PreparedStatement既能处理静态sql也能处理动态sql,它继承了Statement的特点
  • 站在预处理角度: PreparedStatement适合做连续多次结构相同的sql语句,有优势.
  • Statement适合做连续多次不同结构的sql语句,有优势.
  • Sql注入漏洞,最终的解决方案还是需要通过编码实现
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值