PreparedStatement与 事务处理

本文介绍了PreparedStatement相对于Statement的优点,如防止SQL注入、提高效率和预加载特性,并展示了使用PreparedStatement执行SQL的不同方式。同时,文章详细解释了数据库事务处理,包括默认的自动提交模式以及如何设置手动提交和回滚事务。此外,还提及了使用Properties类从文件中读取数据库连接配置以简化代码维护。
摘要由CSDN通过智能技术生成

在基本访问数据库的步骤中提到了用Statement去执行SQL语句。这里介绍Statement的子类PreparedStatement
PreparedStatement(预处理执行语句)相比其父类Statement主要有以下几个优点:
●可以防止SQL注入
●在特定的驱动数据库下相对效率要高
●不需要频繁编译。因为已经预加载了
它有三种执行方式:
●pstm.executeUpdate()执行更新语句, 例如insert, update, delete语句, 返回受影响的行数
●pstm.executeQuery()执行查询语句, 返回得到的结果集
●pstm.execute()可以执行任意的SQL语句,如果数据库返回的第一 个结果是果集,则方法返回
true,如果返回的数字,即受影响行数或者没有返回值,则方法返回false

我们发现和Statement用法类似,在PreparedStatement中我们可以设定参数,并且可以防止SQL注入的攻击
例子
4:使用Statement访问数据库
PreparedStatement ps = conn. prepareStatement(sql);
//4.2:赋值
ps.setInt(1,2);
5:使用ResultSet或者int 接收访问数据库的反馈结果
ResultSet rs = ps. executeQuery();

事务处理
默认情况下,当我们获取一个conn连接时,这个连接默认是自动提交的,也就是说,我们每执行一条sq|l语句, 均当作一个完整的独立的事务 被执行,每一个statement execute()方法的调用都是如同一条新的begin transaction命令开始,并由一条commit命令 来提交结束。我们可以通过connection的getAutoCommit

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值