JavaWEB 篇一 JDBC 技术

本文介绍了原生JDBC操作数据库的基本流程,包括加载驱动、获取连接、使用PreparedStatement和Statement的区别。强调了PreparedStatement在性能和安全性上的优势。同时,详细阐述了事务的概念,事务的ACID属性,并给出了处理事务的步骤。还讨论了数据库隔离级别,解释了脏读和幻读问题,指出防止脏读和幻读的相应隔离级别。
摘要由CSDN通过智能技术生成

目录

1-1 说下原生 jdbc 操作数据库流程

1-2 什么要使用 PreparedStatement?

3.在JDBC应用中,在任何时候不要使用Statement原因:

1-3:说说事务的概念,在 JDBC 编程中处理事务的步骤。

事物概念

事务处理步骤:

1-4 JDBC 的脏读是什么?哪种数据库隔离级别能防止脏读?

1-5 什么是幻读,哪种隔离级别可以防止幻读?


1-1 说下原生 jdbc 操作数据库流程

第一步:Class.forName()加载数据库连接驱动

第二步:DriverManager.getConnection()获取数据连接对象

第三步:根据SQL获取sql会话对象,有两种方式Statement、PreparedStatement;

第四步:执行SQL处理结果集,执行SQL前如果有参数值就设置参数值setXXX();

第五步:关闭结果集、会话结束、关闭连接

1-2 什么要使用 PreparedStatement?

1.PreparedStatement接口继承Statement,PrepaerdStatement实例包含已编译的SQL语句,所以其执行速度要快于Statement对象

2.作为Statement的子类,PreparedStatement继承了Statement的所有功能。三种方法execute,executeQuery和executeUpdate已被更改以使之不再需要参数

3.在JDBC应用中,在任何时候不要使用Statement原因:

  • 一、代码的可读性和可维护性。Statement需要不断地拼接,而PreparedStatement不会。

  • 二、PreparedStatement尽量大可能提高性能。DB有缓存机制,相同的预编译语句再次被调用不会再次需要编译

  • 三、最重要的一点是极大地提高了安全性。Statement容易被SQL注入,而PreparedStatement传入的内容不会和sql语句发生任何匹配关系

1-3:说说事务的概念,在 JDBC 编程中处理事务的步骤。

事物概念

  • 1.事物是作为单个逻辑单元执行的一系列操作

  • 2.一个逻辑工作单元必须有四个属性,称为原子性、一致性、隔离性和持久性(ACID)属性,只有这样才能成为一个事物

事务处理步骤:

  • 1-conn.setAutoComit(false);设置提交方式为收工提交

  • 2-conn.commit()提交事务

  • 3-出现异常,回滚coon.rollback();

1-4 JDBC 的脏读是什么?哪种数据库隔离级别能防止脏读?

当我们使用事物时,有可能会出现这样的情况,有一行数据刚更新,与此同时另一个查询读到了这个刚更新的值,这样就导致了脏读,因为更新的数据还没有进行持久化,更新这行数据的业务可能会进行回滚,这样这个数据就是无效的。数据库的TRANSACTIONREADCOMMINED,TRANSACTIONREPEATABLEREAD,和TRANSACTION_SERIALIZABLE隔离级别可以防止脏读

1-5 什么是幻读,哪种隔离级别可以防止幻读?

幻读是指一个事物多次执行一条查询返回的却是不同的值。假设一个事物正根据某个条件进行数据查询,然后另一个事物插入了一行满足这个查询条件的数据。之后这个事物再次执行了这条查询,返回的结果集会包含刚插入的那条新数据。这行数据被称为幻行,而这种现象就叫做幻读。只有TRANSACTION_SERIALIZABLE隔离级别才能防止幻读。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xinyi_java

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值