`
hao861002
  • 浏览: 86457 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

jdbc复习第三天

阅读更多


JDBC事务并发产生的问题和事务隔离级别

1,脏读(dirty read),读取到了没有提交的数据。
2,不可重复读(UnPrpeatable Read),两次读取到了不同的数据,就是要保持在同一时间点上两次读取到的数据相同,不能够使查询数据时进行改变。
3,幻读(phantom),在两次查询同一时间点数据时,数据数量发生改变,要保持在同一时间点上两次读取到的数据相同。

事务隔离级别

TRANSACTION_NONE不使用事务。
TRANSACTION_READ_UNCOMMITTED 可以读取为提交数据。
TRANSACTION_READ_COMMITTED可以避免脏读,不能够读取没提交的数据,最常用的隔离级别  大部分数据库的默认隔离级别
TRANSACTION_REPEATABLE_READ可以避免脏读,重复读取,
TRANSACTION_SERIALIZABLE可以避免脏读,重复读取和幻读,(事务串行化)会降低数据库效率

以上的五个事务隔离级别都是在Connection类中定义的静态常量,使用setTransactionIsolation(int level) 方法可以设置事务隔离级别。

JDBC2.0新特性

可滚动结果集(可双向滚动),这种结果集不但可以双向滚动,相对定位,绝对定位,并且可以修改数据信息。

滚动特性
next(),此方法是使游标向下一条记录移动。
previous() ,此方法可以使游标上一条记录移动,前提前面还有记录。
absolute(int row),可以使用此方法跳到指定的记录位置。定位成功返回true,不成功返回false,返回值为false,则游标不会移动。
afterLast() ,游标跳到最后一条记录之后。
beforeFirst() ,游标跳到第一条记录之前。(跳到游标初始位)
first(),游标指向第一条记录。
last(),有彪指向最后一条记录。
relative(int rows) ,相对定位方法,参数值可正可负,参数为正,游标从当前位置向下移动指定值,参数为负,游标从当前位置向上移动指定值。

TYPE_FORWARD_ONLY ,该常量指示指针只能向前移动的 ResultSet 对象的类型。

TYPE_SCROLL_INSENSITIVE ,该常量指示可滚动但通常不受其他的更改影响的 ResultSet 对象的类型。
TYPE_SCROLL_SENSITIVE ,该常量指示可滚动并且通常受其他的更改影响的 ResultSet 对象的类型。
         
要使用可滚动结果集时,要在Statement创建时指定参数,才可以使用
Statement st=null;
st=con.createStatement(ReusltSet.TYPE_SCROLL_INSENSITIVE,ResuleSet.CONCUR_UPDATABLE)

ResultSet结果集中,先使用moveToInsertRow(),将游标移到和结果集结构类似的传冲去中
然后可以使用updateXxx(int column,columnType value)方法来更新指定列数据,再使用insertRow() 方法插入记录,最后将游标指回原位,moveToCurrentRow() 。

能否使用可更新结果集,要看使用的数据库驱动是否支持,还有只能用于单表且表中有主键字段(可能会是联合主键),不能够有表连接,会取所有非空字段且没有默认值。

能否使用JDBC2.0 ResultSet的新特性要看数据库驱动程序是否支持。

批处理更新
Statement
addBatch(String sql), 方法会在批处理缓存中加入一条sql语句
executeBatch() ,执行批处理缓存中的所有sql语句。

PreparedStatement

addBatch() 将一组参数添加到此 PreparedStatement 对象的批处理命令中。
executeBatch() 将一批命令提交给数据库来执行,如果全部命令执行成功,则返回更新计数组成的数组。
PreparedStatement中使用批量更新时,要先设置好参数后使用addBatch()方法加入缓存。
注意:批量更新中只能使用更新或插入语句

execute(String sql),这个方法的返回值是boolean类型,如果返回true就表示sql是一个select语句,可以通过getResultSet()获得结果集,如果是false,sql就是DML语句或者是DDL语句。

分享到:
评论

相关推荐

    达内学习用的jdbc与struts笔记.pdf

    - 第三天:可能涉及视图层的JSP和Struts标签库的使用,以及如何处理表单提交。 - 第四天:可能讨论了异常处理、国际化、Tiles框架集成等高级主题。 Struts框架的工作流程: - 用户通过浏览器发起请求。 - 请求被...

    java语言程序设计 进阶版 第十版 复习题答案

    本书《Java语言程序设计 进阶版 第十版》提供的复习题及其答案,旨在帮助读者巩固并深化对Java语言的理解。下面将详细讨论复习题中涉及的一些关键知识点。 1. **面向对象编程**:Java是一种面向对象的语言,复习题...

    hibernate达内五天复习笔记.pdf

    - 第三天可能深入到对象状态的转换和生命周期管理,以及如何处理事务。 - 第四天可能讲解了HQL的使用,包括查询、更新、删除等操作。 - 第五天可能涉及了高级主题,如性能优化、缓存机制、Cascading和Lazy ...

    SCWCD第三轮复习

    进行SCWCD的第三轮复习,意味着考生正在对这些关键知识点进行深入巩固和准备。 Servlet是Java平台上用于开发动态Web应用的基础,它扩展了HTTP服务器的功能,允许程序员编写处理HTTP请求的Java代码。Servlet生命周期...

    JAVA书本复习题答案整合

    3. **异常处理**:Java异常处理是编程中不可忽视的一部分,复习题可能涉及try-catch-finally语句块的使用、自定义异常、以及如何有效捕获和处理异常。答案将展示正确的异常处理策略,防止程序在运行时崩溃。 4. **...

    数据库系统概论+第四版复习

    通过深入学习《数据库系统概论》第四版的复习资料,可以全面掌握数据库理论与实践,为数据库相关的考试或实际工作打下坚实基础。对于备考者来说,理解和应用这些知识点,不仅能够帮助通过考试,更能为未来在IT行业中...

    java web开发复习

    ### Java Web 开发复习知识点详解 #### 一、Tomcat 的简单配置 ##### 1.1 context.xml 配置 **知识点概述**:`context.xml` 文件主要用于配置 Tomcat 的上下文参数,如数据源等。 **详细说明**: - **路径**:`...

    数据库总复习题和答案

    由于资料中没有明确提及第3章内容,可以推测可能涵盖了数据库设计的概念,如需求分析、概念设计(ER模型)、逻辑设计(转换为关系模式)以及物理设计。这些阶段对于创建一个高效、可靠的数据库至关重要。 第4章 ...

    Java SE 复习资料

    1. **基础语法**:这是学习Java的第一步,包括数据类型(如基本类型和引用类型)、变量、运算符、控制结构(如if-else、switch、for、while循环)、方法、数组等。理解这些概念对于编写任何Java程序都是至关重要的。...

    Java web编程技术期末复习.zip

    4. **JSP标签库**:学习JSTL和其他第三方标签库,如EL(Expression Language)用于简化数据访问,JSTL用于执行常见的JSP任务,如迭代、条件判断等。 5. **MVC设计模式**:理解Model-View-Controller模式在Java Web...

    数据库系统复习总结

    数据库系统复习总结 本资源摘要信息将对数据库系统的基本概念、数据库管理系统、数据模型、数据库设计、数据库恢复、事务处理等方面进行详细的总结和解释。 一、数据库系统的基本概念 * 数据库系统是长期存储在...

    JAVA期末复习试题

    第三部分:专题训练 “JAVA复习题3.doc”可能包含特定主题的深度练习,如: 1. **设计模式**:单例模式、工厂模式、装饰器模式等常见设计模式的理解与实现。 2. **Java EE**:Servlet、JSP、JDBC在Web开发中的应用...

    太原理工大学数据库复习大纲

    此外,还会讲解数据库设计的基本原则,如范式理论,包括第一范式(1NF)、第二范式(2NF)、第三范式(3NF)和BCNF(Boyce-Codd范式)。 3. **SQL语言**:SQL(结构化查询语言)是用于管理和处理关系数据库的标准...

    smbms超市订单管理系统(Java课设源码).zip

    2022-11-01:第三天。完成整个用户管理模块。学习到了小黄鸭调试法 —— 将自己的逻辑重新复述一遍,在此过程中找到漏洞 2022-11-02:第四天。用户管理模块:添加用户, 删除模块实现 bookStore 2022-11-08:第一天。...

    达内 corejava课程源码及每日课程复习文档

    Java标准库和许多第三方库都广泛使用注解。 11. **Lambda表达式**:自Java 8起,引入了函数式编程的概念,Lambda表达式使得编写简洁的匿名函数成为可能,简化了多线程和事件处理等场景的代码。 12. **Stream API**...

    jsp期末考试复习资料

    3. **Tomcat 服务器端口号**: - Tomcat 默认的端口号是 8080。这意味着可以通过 `http://localhost:8080/` 来访问部署在本地 Tomcat 服务器上的应用。 #### 二、JSP 标签与内置对象 4. **JSP 标签分类**: - JSP ...

    天津理工大学华信软件学院Java框架复习题带答案

    Java框架复习题主要涉及到了MyBatis和SpringMVC两大框架,以及相关的事务管理和数据库操作概念。下面是对这些知识点的详细解释: 1. MyBatis中的`@Param`注解: `@Param`用于为方法参数命名,这样在动态SQL中可以...

    ACCP 4.0第一学期Java结业考试复习题集(一)

    【ACCP 4.0第一学期Java结业考试复习题集】主要涵盖了Java编程和数据库交互的基本知识,以及Swing GUI应用的实现。这是一份针对北大青鸟ACCP 4.0课程第一学期学生的结业考试复习资料,旨在检验学生对Java语言和...

    北大青鸟 S1 java总复习资料

    3. **集合框架**: 复习List、Set、Map接口以及它们的实现类,如ArrayList、LinkedList、HashSet、HashMap等,理解它们的区别和应用场景,学会在实际开发中选择合适的集合类型。 4. **IO流**: 深入理解输入/输出流的...

Global site tag (gtag.js) - Google Analytics