`

部分面试题

 
阅读更多

Object对象的方法有哪些:

equals() 、getClass()、hashcode()、notify()、notifyAll()、toString()、wait()、finalize()

 

ResultSet有哪些类型:

1、    最基本的ResultSet。 
之所以说是最基本的ResultSet是因为,这个ResultSet他起到的作用就是完成了查询结果的存储功能,而且只能读去一次,不能够来回的滚动读取。这种结果集的创建方式如下:  

Statement st = conn.CreateStatement 
ResultSet rs = Statement.excuteQuery(sqlStr); 

由于这种结果集不支持,滚动的读去功能所以,如果获得这样一个结果集,只能使用它里面的next()方法,逐个的读去数据。  

2、    可滚动的ResultSet类型。 
这个类型支持前后滚动取得纪录next()、previous(),回到第一行first(),同时还支持要去的ResultSet中的第几行 absolute(int n),以及移动到相对当前行的第几行relative(int n),要实现这样的ResultSet在创建Statement时用如下的方法。 

Statement st = conn. createStatement (int resultSetType, int resultSetConcurrency)  
ResultSet rs = st.executeQuery(sqlStr) 

其中两个参数的意义是:  
resultSetType 是设置 ResultSet 对象的类型可滚动,或者是不可滚动。取值如下:  
       ResultSet.TYPE_FORWARD_ONLY 只能向前滚动  
       ResultSet.TYPE_SCROLL_INSENSITIVE 和 Result.TYPE_SCROLL_SENSITIVE 这两个 方法都能够实现任意的前后滚动,使用各种移动的 ResultSet 指针的方法。二者的区别在于前者对于修改不敏感,而后者对于修改敏感。  
resultSetConcurency 是设置 ResultSet 对象能够修改的,取值如下:  
       ResultSet.CONCUR_READ_ONLY 设置为只读类型的参数。  
       ResultSet.CONCUR_UPDATABLE 设置为可修改类型的参数。  
所以如果只是想要可以滚动的类型的 Result 只要把 Statement 如下赋值就行了。  

Statement st = conn.createStatement(Result.TYPE_SCROLL_INSENITIVE, 
                          ResultSet.CONCUR_READ_ONLY); 
ResultSet rs = st.excuteQuery(sqlStr) ;  

用这个 Statement 执行的查询语句得到的就是可滚动的 ResultSet 。  



3、    可更新的ResultSet 
这样的ResultSet对象可以完成对数据库中表的修改,但是我知道ResultSet只是相当于数据库中表的视图,所以并不时所有的ResultSet只要设置了可更新就能够完成更新的,能够完成更新的ResultSet的SQL语句必须要具备如下的属性: 
    a 、只引用了单个表。 
    b 、不含有join或者group by子句。 
    c 、那些列中要包含主关键字。 
    具有上述条件的,可更新的ResultSet可以完成对数据的修改,可更新的结果集的创建方法是:  

Statement st = createstatement(Result.TYPE_SCROLL_INSENSITIVE,Result.CONCUR_UPDATABLE)  



4、    可保持的ResultSet 
正常情况下如果使用Statement执行完一个查询,又去执行另一个查询时这时候第一个查询的结果集就会被关闭,也就是说,所有的Statement的查询对应的结果集是一个,如果调用Connection的commit()方法也会关闭结果集。可保持性就是指当ResultSet的结果被提交时,是被关闭还是不被关闭。JDBC2.0和1.0提供的都是提交后ResultSet就会被关闭。不过在JDBC3.0中,我们可以设置ResultSet是否关闭。要完成这样的ResultSet的对象的创建,要使用的Statement的创建要具有三个参数。如下:

Statement st=createStatement(int resultsetscrollable,int resultsetupdateable,int resultsetSetHoldability)

  ResultSet rs = st.excuteQuery(sqlStr);

  前两个参数和两个参数的createStatement方法中的参数是完全相同的,这里只介绍第三个参数:

  resultSetHoldability表示在结果集提交后结果集是否打开,取值有两个:

  ResultSet.HOLD_CURSORS_OVER_COMMIT:表示修改提交时,不关闭数据库.

  ResultSet.CLOSE_CURSORS_AT_COMMIT:表示修改提交时ResultSet关闭.

 

最后:当使用ResultSet的时候,当查询出来的数据集记录很多,有一千万条的时候,那rs所指的对象是否会占用很多内存,如果记录过多,那程序会不会把系统的内存用光呢 

不会的,ResultSet表面看起来是一个记录集,其实这个对象中只是记录了结果集的相关信息,具体的记录并没有存放在对象中,具体的记录内容知道你通过next方法提取的时候,再通过相关的getXXXXX方法提取字段内容的时候才能从数据库中得到,这些并不会占用内存,具体消耗内存是由于你将记录集中的数据提取出来加入到你自己的集合中的时候才会发生,如果你没有使用集合记录所有的记录就不会发生消耗内存厉害的情况。

 

List和Set的区别:

List和Set都是接口。他们各自有自己的实现类,有无顺序的实现类,也有有顺序的实现类。
最大的不同就是List是可以重复的。而Set是不能重复的。
List适合经常追加数据,插入,删除数据。但随即取数效率比较低。
Set适合经常地随即储存,插入,删除。但是在遍历时效率比较低。
分享到:
评论

相关推荐

    oracle部分面试题oracle部分面试题

    oracle 部分面试题 Oracle 部分面试题涵盖了多个方面的知识点,包括数据查询、数据分析、数据处理等。下面是对每个面试题的详细解释和知识点总结: 面试题一(厦门) 题目:找出忘记填写性别的员工 知识点: * ...

    多套C++面试题(里面有华为等公司部分面试题)

    以下是一些可能出现在“多套C++面试题(里面有华为等公司部分面试题)”中的关键知识点详解: 1. **C++基础**: - **对象生命周期**:理解构造函数与析构函数,了解静态成员和常量成员的区别。 - **指针与引用**:...

    软件工程师学习文档+部分面试题

    在“软件工程师学习文档+部分面试题”这个压缩包中,包含了丰富的学习资源和面试问题,旨在帮助有志于成为软件工程师的人士提升技能并顺利通过面试。以下将详细解析这些资源可能涵盖的知识点。 首先,软件工程师是...

    js基础部分面试题.docx

    js基础部分面试题.docx

    js基础部分面试题.pdf

    js基础部分面试题.pdf

    java部分面试题答案.7z

    这份“java部分面试题答案.7z”压缩包文件包含了多个关键领域的面试专题及其答案,涵盖了从基础到高级的Java技术,包括并发编程、消息中间件、Spring框架、分布式协调服务Zookeeper、微服务Spring Cloud、垃圾收集器...

    oracle部分面试题-DBA数据库管理员JAVA程序员架构师必看.pdf

    【Oracle部分面试题解析】 面试题一关注的是在Oracle数据库中找出忘记填写性别的员工。这里给出了两种方法: 1. 使用`NOT IN`子句: ```sql SELECT id, name FROM emp1 e WHERE e.id NOT IN (SELECT id FROM ...

    2023年软件工程师部分面试题答案.doc

    2023年软件工程师部分面试题答案.doc

    js基础部分面试题 (2).docx

    js基础部分面试题 (2).docx

    js基础部分面试题 (2).pdf

    js基础部分面试题 (2).pdf

    hibernate部分面试题,自己总结的哦。

    hibernate部分面试题,自己总结的哦。有些是应付考试用的,有的是工作需要,有的是工作和面试都需要的,所以要分清楚后掌握。以及掌握的程度。

    vue2.x与vue3.相关的部分面试题

    vue2.x与vue3.相关的部分面试题

    程序员java面试题汇总(通关宝典).zip

    程序员java面试题汇总 【资源介绍】 适宜人群:准备跳槽的初/中/高级 Java 程序员 想要查漏补缺的人 想要不断完善和扩充自己 Java 技术栈的人 Java 面试官 资源分为十九个模块,分别是: Java ...MySql部分面试题等等等

    Mysql数据库部分面试题.doc

    - 设计合理的数据库模式,如范式理论、主键和外键的使用,也是面试的重要部分。 在面试中,对这些概念的理解和实际应用能力都是评估候选人技能的关键点。熟悉并能够解释这些知识点,以及如何在实际问题中应用它们...

    java企业面试题大全(18个文档)

    8、Java框架部分面试题.pdf。9、java面接.pdf。10、JAVA面试题集锦1.pdf。11、JAVA面试题集锦2.pdf。12、java算法面试题.pdf。13、程序员面试宝典.pdf。14、代码与编程题.pdf。15、各大公司面试题.pdf。16、数据库...

    CoreJava部分面试题专家总结(jAVA面试必看).doc

    Core Java 面试题专家总结 本文档总结了 Core Java 面试中常见的问题和答案,涵盖了 Java 企业级应用、软件测试生命周期、系统设计工具、Web 容器、异常处理、Hibernate 等多个方面的知识点。 1. J2EE 是什么?它...

    牛客大数据面试题集锦+答案,共523道,46W+字。大厂必备

    以后会慢慢把Java相关的面试题、计算机网络等都加进来,其实这不仅仅是一份面试题,更是一份面试参考,让你熟悉面试题各种提问情况,当然,项目部分,就只能看自己了,毕竟每个人简历、实习、项目等都不一样。面试题...

    互联网公司Java面试题及核心知识点

    相关技术领域的大厂面试题及详解,由于纸质书籍篇幅有限,部分面试题的解答会以电子版 的形式呈现。 适用人群:本资源适合具备一定Java编程基础的程序员和软件开发者,尤其是那些需要处理并发问题或开发高并发应用...

    微软面试题(很动脑哦!附答案、解析及英文原版)

    2. **部分题的具体分析**:此文档提供了对部分面试题的深度解析,有助于求职者理解解题思路,学习如何从不同角度解决问题。分析通常会涵盖最佳实践、常见陷阱和优化策略,这对于提升面试表现至关重要。 3. **面试题...

    骆昊JAVA面试题全集2018博客文章整理

    以下是部分面试题和知识点的详细解释: 1. **面向对象的特征**: - **抽象**:抽象是提取对象共性的过程,包括数据抽象和行为抽象。它关注对象的属性和行为,而不涉及具体实现。 - **继承**:继承允许子类从父类...

Global site tag (gtag.js) - Google Analytics