[计算机软件及应用]Oracle面试题.doc_第1页
[计算机软件及应用]Oracle面试题.doc_第2页
[计算机软件及应用]Oracle面试题.doc_第3页
[计算机软件及应用]Oracle面试题.doc_第4页
[计算机软件及应用]Oracle面试题.doc_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

(1) 在关系R中,代数表达式 3 4(R) 表示 ( ) A. 从R中选择值为3的分量小于第4个分量的元组组成的关系 B. 从R中选择第3个分量值小于第4个分量的元组组成的关系 C. 从R中选择第3个分量的值小于4的元组组成的关系 D. 从R中选择所有元组组成的关系 (2) 下面那些内容通常不属于Oracle数据库管理员的职责() A.创建新用户 B. 创建数据库对象 C.安装Oracle软件 D. 操纵数据库数据的应用程序开发 (3) 在Oracle 10G中,下面的命令快为什么会失败,选择一个最佳答案() run connect target sys/oracleocp10g; backup database including current controlfile(); A. 不能作为SYS进行连接,必须作为SYSDBA进行连接 B. 命令块中不能出现CONNECT关键字 C. 命令块中缺少ALLOCATE CHANNEL 命令 D.以上都不正确 (4)下面那些内容通常不属于Oracle数据库管理员的职责() A.创建新用户 B.创建数据库对象 C.安装Oracle软件 D.操纵数据库数据的应用程序开发 (5)Hibernate中关于使用HQL语句描述不正确的是() A.是一种符合对象语言的查询语句 B.能够避免使用 sql 的情况下依赖数据库特征的情况出现 C.能够根据 OO 的习惯去进行实体的查询 D.理解SQL的人很难理解HQL (6)在使用JDBC连接到数据源过程中,我们使用了以下getConnection方法调用: Connection conn=DriverManager.getConnection( jdbc:odbc:thin:host:1521:mydb”, “scott”, “tiger”);则() A该连接字符串是错误的 B该语句建立了一个到本地ODBC数据源的连接 C该语句建立了一个到本地Oracle数据库的连接 D该语句建立了一个到本地JDataStore数据库的连接 (7)试图创建一个表空间,但是却收到无法为这个表空间创建数据文件的错误信息,希望创建的数据文件的大小为3GB,同时为表空间指定了SMALLFILE选项,指定驻留数据文件的操作系统目录经验证属于与Oracle相同的用户,并且该用户具有完整的读/写权限,作为SYSTEM登录数据库,而硬盘上具有足够的磁盘空间,那么出现错误的原因可能是什么() A指定SALLFILE选项时,不能在Oracle数据库内创建大于2GB的文件 B操作系统无法创建大于2GB的文件 C必须为数据文件规范指定WITH OVERWRITE选项 D必须为数据文件规范指定REUSE选项 (8) Hibernate中关于使用HQL语句描述不正确的是() A.是一种符合对象语言的查询语句 B.能够避免使用 sql 的情况下依赖数据库特征的情况出现 C.能够根据 OO 的习惯去进行实体的查询 D.理解SQL的人很难理解HQL (9)下列哪个术语描述了栈(Stack)类使用List的内部实例实现。() A关联 B特化 C泛化 D组装 (10)有关系模式A(C,T,H,R,S),其中各属性的含义是:C:课程 T:教员 H:上课时间 R:教室 S:学生 根据语义有如下函数依赖集:F=CT,(H,R)C,(H,T)R,(H,S)R 现将关系模式A分解为两个关系模式A1(C,T),A2(H,R,S),则其中的A1的规范化程度达到 A. 1NF B.2NF C.3NF D.BCNF (11).在Oracle 10G中,下列哪个进程负责实现 Automatic Shared Memory Management () A. MMAN 进程 B. MMON进程 C. MMNL进程 D. PMON进程 (12) .在Oracle 10G中,下列哪一个选项不是PGA的一部分() A.绑定信息 B.分析信息 C.会话变量 D.排序空间 (13).在Oracle 10G中,下列那些内容是创建数据库所必须的,选择一个最佳答案() A. 操作系统根用户(针对Unix/Linux系统)或Administrator(针对Windows系统)的口令 B. 运行DBCA的权限 C. RAM的大小不少于SGA的大小 D. 以上都不是 (14).在Oracle 10G中,如何能够减少一个索引段所占有的空间() A.聚结这个索引 B.缩小这个索引 C.重构这个索引 D.使用CASCADE选项缩小这个索引表 (15) .在Oracle 10G中,Database Control是一种多层WEB应用程序,哪一层负责窗口管理() A.dbconsole 中间层 B.数据库层内的过程 C.客户浏览 D. OC4J应用程序运行时环境 (16) 在Oracle 10G中,下列那些内容是创建数据库所必须的,选择一个最佳答案() A.操作系统根用户(针对Unix/Linux系统)或Administrator(针对Windows系统)的口令 B.运行DBCA的权限 C.RAM的大小不少于SGA的大小 D.以上都不是 (17) .有关系模式A(C,T,H,R,S),其中各属性的含义是: C:课程 T:教员 H:上课时间 R:教室 S:学生 根据语义有如下函数依赖集: F=CT,(H,R)C,(H,T)R,(H,S)R 关系模式A的规范化程度最高达到_ A 1NF B 2NF C 3NF D BCNF (18) .在Oracle 10G中,如何能够减少一个索引段所占有的空间() A聚结这个索引 B缩小这个索引 C重构这个索引 D使用CASCADE选项缩小这个索引表 (19) .在Oracle 10G中,闪回存在外键关系的两个表的最佳方法是什么() A先闪回子表,然后再闪回父表 B先闪回父表,然后再闪回子表 C在一个操作中闪回这两个表 D没有其他办法,闪回操作不保护外键约束 (20) 在Oracle 10G中,AWR快照在何时生成() A每隔一个小时 B每隔十分钟 C根据要求决定 D根据要求定期生成 (21) .在Oracle 10G中,打开数据库时,下列那些文件必须被同步,选择一个最佳答案() A数据文件、联机重做日志文件以及控制文件 B参数文件和口令文件 C所有多元化控制文件副本 D不需要同步任何文件,SMON进程会在打开数据库之后通过实例恢复来同步所有文件 (22) .在Oracle 10G中,如果已经创建了一个数据库,但是无法使用Database Control进行连接,这是什么原因,选择一个最佳答案() A没有通过操作系统的身份验证,或者没有进行口令文件身份验证 B没有运行脚本创建Database Control CGrid Control是Database Control的必备条件 D没有被许可使用Database Control (23) .在Oracle 10数据库中,如果需要以秒为单位记录日期/时间值,下列那种数据类型的列适合存储这个信息() A TIME B DATETIME C DATE或TIMESTAMP D 因为Oracle的内部数据类型只能存储日期和时间,必须开发一种自定义的数据类型 实现 (24) .在Oracle 10G中,如何连接ASM实例() A只使用操作系统身份验证 B只使用口令文件身份验证 C只使用数据字典身份验证 D以上选项都不正确 (25).在Oracle 10G中,当在执行一条多记录更新语句时会违反某个约束,那会出现什么情况,选择一个最佳答案() A违反约束的更新会被回滚,这条语句的剩余部分则保持不变 B整条语句都会被回滚 C整个事务都会被回滚 D取决于是否执行了alter session enable resumable (26) .在Oracle 10G中,自动工作负荷库(简写AWR)被存储在哪个位置() A存储在SYSAUX表空间内 B储在SYSTEM表空间内 C在系统全局区内 D我们可以在数据库创建阶段选择AWR的存储位置,随后还可以重新定位这个位置 (27)在关系模式R(U,F)中,X,Y,Z是U中属性,则多值依赖的传递律是 ( ) A如果XY,YZ,则XZ B如果XY,YZ,则XYZ C如果XZ,YZ,则XYZ D如果XY,YZ,则XZ-Y (28) .数据库中全体数据的整体逻辑结构描述称为 ( ) A存储模式 B内模式 C外模式 D右外模式 (29) .在使用JDBC连接到数据源过程中,我们使用了以下getConnection方法调用: Connection conn=DriverManager.getConnection( jdbc:odbc:thin:host:1521:mydb”, “scott”, “tiger”);则() A该连接字符串是错误的 B该语句建立了一个到本地ODBC数据源的连接 C该语句建立了一个到本地Oracle数据库的连接 D该语句建立了一个到本地JDataStore数据库的连接 (30) 物理结构设计的任务是设计数据库的( ) A存储格式 B存取方法 C存储结构与存取方法 D存储模式 (31)分布式数据库两阶段提交协议是指( ) A加锁阶段、解锁阶段 B扩展阶段、收缩阶段 C获取阶段、运行阶段 D表决阶段、执行阶段 (32) 在Oracle 10G中,创建一个新的用户帐户时,如果没有指定TEMPORAAY TABLESPACE ,那么该参数在这个用户被创建时具有怎样的值() A SYSTEM B TEMP C NULL D数据库默认的临时表空间 (33)在以下的DBMS中,可用于UNIX和Windows操作系统的是( ) A SQLServer 2000 B foxpro C Sybase D access (34) 在Oracle 10G中,下列哪种文件可以被视为非关键的() A临时数据文件 B撤销数据文件 C复用的控制文件 D以上所有文件 (35) 在Oracle 10G中,用户如何改变其有效的配置文件() A ALTER USER SET PROFILE=NewProfile B ALTER SYSTEM SET PROFILE=NewProfile C ALTER SESSION SET PROFILE=NewProfile D用户无法改变其有效的配置文件 (36)在Oracle 10G中,RDBMS实例能够访问ASM文件之前,ASM实例必须位于哪一种模式中() A NOMOUNT模式 B MOUNT模式 C OPEN模式 D MOUNT或者OPEN模式 1. 解释冷备份和热备份的不同点以及各自的优点解答:热备份针对归档模式的数据库,在数据库仍旧处于工作状态时进行备份。而冷备份指在数据库关闭后,进行备份,适用于所有模式的数据库。热备份的优点在于当备份时,数据库仍旧可以被使用并且可以将数据库恢复到任意一个时间点。冷备份的优点在于它的备份和恢复操作相当简单,并且由于冷备份的数据库可以工作在非归档模式下,数据库性能会比归档 模式稍好。(因为不必将archive log写入硬盘)2. 你必须利用备份恢复数据库,但是你没有控制文件,该如何解决问题呢?解答:重建控制文件,用带backup control file 子句的recover 命令恢复数据库。 3. 如何转换init.ora到spfile?解答:使用create spfile from pfile 命令.4. 解释data block , extent 和 segment的区别(这里建议用英文术语) 解答:data block是数据库中最小的逻辑存储单元。当数据库的对象需要更多的物理存储空间时,连续的data block就组成了extent . 一个数据库对象拥有的所有extents被称为该对象的segment.5. 给出两个检查表结构的方法 解答:1、DESCRIBE命令 2、 DBMS_METADATA.GET_DDL 包6. 怎样查看数据库引擎的报错解答:alert log.7. 比较truncate和delete 命令解答:两者都可以用来删除表中所有的记录。区别在于:truncate是DDL操作,它移动HWK,不需要 rollback segment .而Delete是DML操作, 需要rollback segment 且花费较长时间.8. 使用索引的理由解答:快速访问表中的data block9. 给出在STAR SCHEMA中的两种表及它们分别含有的数据解答:Fact tables 和dimension tables. fact table 包含大量的主要的信息而 dimension tables 存放对fact table 某些属性描述的信息10. FACT Table上需要建立何种索引?解答:位图索引(bitmap index)11. 给出两种相关约束?解答:主键和外键12. 如何在不影响子表的前提下,重建一个母表解答:子表的外键强制实效,重建母表,激活外键13. 解释归档和非归档模式之间的不同和它们各自的优缺点解答:归档模式是指你可以备份所有的数据库 transactions并恢复到任意一个时间点。非归档模式则相反,不能恢复到任意一个时间点。但是非归档模式可以带来数据库性能上的少许提高.14. 如何建立一个备份控制文件?解答:Alter database backup control file to trace.15. 给出数据库正常启动所经历的几种状态 ?解答:STARTUP NOMOUNT 数据库实例启动STARTUP MOUNT - 数据库装载STARTUP OPEN 数据库打开16. 哪个column可以用来区别V$视图和GV$视图?解答: INST_ID 指明集群环境中具体的某个instance 。17. 如何生成explain plan? 解答: 运行utlxplan.sql. 建立plan 表针对特定SQL语句,使用 explain plan set statement_id = tst1 into plan_table 运行utlxplp.sql 或 utlxpls.sql察看explain plan18. 如何增加buffer cache的命中率?解答:在数据库较繁忙时,适用buffer cache advisory 工具,查询v$db_cache_advice . 如果有必要更改,可以使用 alter system set db_cache_size 命令19. ORA-01555的应对方法?解答:具体的出错信息是snapshot too old within rollback seg , 通常可以通过增大rollback seg来解决问题。当然也需要察看一下具体造成错误的SQL文本20. 解释$ORACLE_HOME和$ORACLE_BASE的区别?解答:ORACLE_BASE是oracle的根目录,ORACLE_HOME是oracle产品的目录21. 如何判断数据库的时区?解答:SELECT DBTIMEZONE FROM DUAL;22. 解释GLOBAL_NAMES设为TRUE的用途解答:GLOBAL_NAMES指明联接数据库的方式。如果这个参数设置为TRUE,在建立数据库链接时就必须用相同的名字连结远程数据库23。如何加密PL/SQL程序?解答:WRAP24. 解释FUNCTION,PROCEDURE和PACKAGE区别解答:function 和procedure是PL/SQL代码的集合,通常为了完成一个任务。procedure 不需要返回任何值而function将返回一个值在另一方面,Package是为了完成一个商业功能的一组function和 proceudre的集合25. 解释TABLE Function的用途解答:TABLE Function是通过PL/SQL逻辑返回一组纪录,用于普通的表/视图。他们也用于pipeline和ETL过程。26. 举出3种可以收集three advisory statistics解答:Buffer Cache Advice, Segment Level Statistics, Timed Statistics27. Audit trace 存放在哪个oracle目录结构中? 解答:unix $ORACLE_HOME/rdbms/audit Windows the event viewer28. 解释materialized views的作用 解答:Materialized views 用于减少那些汇总,集合和分组的信息的集合数量。它们通常适合于数据仓库和DSS系统。29. 当用户进程出错,哪个后台进程负责清理它解答: PMON30. 哪个后台进程刷新materialized views? 解答:The Job Queue Processes.31. 如何判断哪个session正在连结以及它们等待的资源? 解答:V$SESSION / V$SESSION_WAIT32. 描述什么是 redo logs解答:Redo Logs 是用于存放数据库数据改动状况的物理和逻辑结构。可以用来修复数据库.33. 如何进行强制LOG SWITCH?解答:ALTER SYSTEM SWITCH LOGFILE;34. 举出两个判断DDL改动的方法? 解答:你可以使用 Logminer 或 Streams35. Coalescing做了什么?解答:Coalescing针对于字典管理的tablespace进行碎片整理,将临近的小extents合并成单个的大extent.36. TEMPORARY tablespace和PERMANENT tablespace 的区别是?解答:A temporary tablespace 用于临时对象例如排序结构而 permanent tablespaces用来存储那些真实的对象(例如表,回滚段等)37. 创建数据库时自动建立的tablespace名称? 解答:SYSTEM tablespace.38. 创建用户时,需要赋予新用户什么权限才能使它联上数据库。解答:CONNECT39. 如何在tablespace里增加数据文件?解答:ALTER TABLESPACE ADD DATAFILE SIZE 40. 如何变动数据文件的大小?解答:ALTER DATABASE DATAFILE RESIZE ;41. 哪个VIEW用来检查数据文件的大小?解答: DBA_DATA_FILES42. 哪个VIEW用来判断tablespace的剩余空间解答:DBA_FREE_SPACE43. 如何判断谁往表里增加了一条纪录?解答:auditing 44. 如何重构索引?解答: ALTER INDEX REBUILD;45. 解释什么是Partitioning(分区)以及它的优点。解答:Partition将大表和索引分割成更小,易于管理的分区。46. 你刚刚编译了一个PL/SQL Package但是有错误报道,如何显示出错信息?解答:SHOW ERRORS47. 如何搜集表的各种状态数据?解答: ANALYZEThe ANALYZE command.48. 如何启动SESSION级别的TRACE解答: DBMS_SESSION.SET_SQL_TRACE ALTER SESSION SET SQL_TRACE = TRUE;49. IMPORT和SQL*LOADER 这2个工具的不同点解答:这两个ORACLE工具都是用来将数据导入数据库的。区别是:IMPORT工具只能处理由另一个ORACLE工具EXPORT生成的数据。而SQL*LOADER可以导入不同的ASCII格式的数据源50。用于网络连接的2个文件?解答: TNSNAMES.ORA and SQLNET.ORA1.Hashtable和HashMap有什么区别? 2.你怎么理解 MVC模式? 3.SQLServer中左联接查询用left join,Oracle中用什么? 4.SQLServer 中的数据库,在Oracle中对应的是什么? 5.如果SQLServer中有两个数据库,那么让你把这两个 数据库对应到Oracle中,你应该怎么做? 6.有两个页面a.jsp和b.jsp,要从a.jsp传值到 b.jsp有几种方法?分别是什么? 7.有三个页面,a.jsp,b.jsp和c.jsp,流程 是:a.jsp-b.jsp-c.jsp,其中a.jsp中提交的数据要在c.jsp中访问,用最简单的方法怎么做?注意不能放在 session里 8.映射是什么?你怎么理解映射? 9.Hibernate 中:不看数据库,不看XML文件,不看查询语句,怎么样能知道表结构? 10.SQLServer支持集群 吗? 11.为什么要用MVC?我从JSP页面直接访问数据库不是更简单吗,为什么非要先提交到控制器再做处 理? 12.在struts中,假设有一个对数据库中一张表的增删改查的操作,你是写一个action还是写 多个action?为什么? 13.struts中的actionform有什么好处? 14.用 过Hibernate吗,用它有什么好处? 15.通常所说的web应用程序分3层,即MVC,如果我想分4 层,应该怎么分? 1.Hashtable和HashMap有什么区别? a.Hashtable 是继承自陈旧的Dictionary类的,HashMap继承自AbstractMap类同时是Java 1.2引进的Map接口的一个实现。 b. 也许最重要的不同是Hashtable的方法是同步的,而HashMap的方法不是。这就意味着, 虽然你可以不用采取任何特殊的行为就可以在一个 多线程的应用程序中用一个Hashtable, 但你必须同样地为一个HashMap提供外同步。一个方便的方法就是利用Collections类的静态的synchronizedMap()方法, 它创建一个线程安全的Map对象,并把它作为一个封装的对象来返回。这个对象的方法可以让你同步访问潜在的HashMap。 这么做的结果就是当你不需要同步时,你不能切断Hashtable中的同步(比如在一个单线程的应用程序中), 而且同步增加了很多处理费用。 c.第三点不同是,只有HashMap可以让你将空值作为一个表的条目的key或value。 HashMap中只有一条记录可以是一个空的key,但任意数量的条目可以是空的value。 这就是说,如果在表中没有发现搜索键,或者如果发现了搜索键,但它是一个空的值,那么get()将返回null。 如果有必要,用containKey()方法来区别这两种情况。 d.HashMap去掉了Hashtable的contains方法,保留了 containsValue和containsKey方法 e.Hashtable中hash数组默认大小是11,增加的方式是 old*2+1。HashMap中hash数组的默认大小是16,而且一定是2的指数 2.你怎么理解MVC 模式? MVC是SUN早期提出的model2开发模式,强制的把视图控制和模型层分开 不仅实现了功能模块和显示模块的分离,同时它 还提高了应用系统的可维护性、可扩展性、可移植性和组件的可复用性 3.SQLServer中左联接查询用 left join,Oracle中用什么? 左连接:select(nvl(a.c,0)-nvl(b.c,0) from a,b where a.id(+)=b.id 右连接:select(nvl(a.c,0)-nvl(b.c,0) from a,b where a.id=b.id(+) 自连接:select(nvl(a.c,0)-nvl(b.c,0) from a,b where a.id(+)=b.id(+) 说明:加号写在左就是左连接,写在右就是右连接,看加号的方法来定 4.SQLServer 中的数据库,在Oracle中对应的是什么? 表空间 5.如果SQLServer中有两个数据库, 那么让你把这两个数据库对应到Oracle中,你应该怎么做? 在Oracle中建一个用户,对应两个表空间 6.有 两个页面a.jsp和b.jsp,要从a.jsp传值到b.jsp有几种方法?分别是什么? a:最常用的方法是用form中的 text,,然后在b.jsp页面中这样获取 String username=request.getParameter(username); b:直接在Url地址栏里面输入第一 个页面的地址,在后加问号,然后把要传的参数及值写在后面,如有多个用&隔开,然后在下一页面用 request.getParameter(参数名)来获取,例如: 在b.jsp中可用这样获取:String username=request.getParameter(username);String username=request.getParameter(password); c:在form中放hidden, 如:,获取方法同上 说明:传值的方 法有很多种,以上是最常用最简单的几种方式,当然,如果传的值有中文的话,需另做处理 6.有三个页面,a.jsp,b.jsp和c.jsp,流 程是:a.jsp-b.jsp-c.jsp,其中a.jsp中提交的数据要在c.jsp中访问,用最简单的方法 怎么做?注意不能放在session里 用隐藏表单域,即在b.jsp页面中用N个hidden把上一页面提交过来的信息保存下来,然后和当前一 起提交,再到c.jsp里面获取 说明:尽量不要用session和少用session 7.jsp 和servlet有什么区别? a:servlet是在java代码里面放html,jsp是在html里面放java代码(最后运行的时候服务 器会把JSP解析成servlet) b:servlet是一个java类,有自己的映射,而jsp不是 说明:区别太多8.映 射是什么?你怎么理解映射? 映射即别名,通过别名可以访问 9.Hibernate中:不看数据 库,不看XML文件,不看查询语句,怎么样能知道表结构? 看表结构对应的类文件,比如UserInfo表对应的UserInfo.java文件 10.SQLServer支持集群吗? 支持,但是是属于热备份类型,不能做负载平衡。不过符合你 的条件。 首先系统做集群,数据库文件放到磁盘阵列里,双机或多机共同访问磁盘阵列,就可以了 IIS可以做集群后负载平衡。 11.为 什么要用MVC?我从JSP页面直接访问数据库不是更简单吗,为什么非要先提交到控制再做处理? MVC各施其职,互不干涉 在MVC模式中,三个层各施其职,所以如果一旦哪一层的需求发生了变化, 就只需要更改相应的层中的代码而不会影响到其它层中的代码。 有利于开发中的分工 在MVC模式中,由于按层把系统开,那么就能更好的实现开发中的分工。网页设计人员可以进行开发视图层中的JSP, 对业务熟悉的开发人员可开发业务层,而其它开发人员可开发控制层。 有利于组件的重用 分层后更有利于组件的重用。如控制层可独立成一个能用的组件,视图层也可做成通用的操作界面 说明:这个好处就太多了! 12.在 struts中,假设有一个对数据库中一张表的增删改查的操作,你是写一个action还是写多个action?为什么? 写一个action,让这个action继承自DispatchAction,然后在struts-config.xml中给这个action映射加一参 数,parameter=method 这个在提交到这个action中时,会根据传来的参数中method的值来执行相应的action的方法,比 如,http:/localhost:8080/login.do?method=doLogin 这个提交到action的时会自动找方法名叫doLogin的方法,参数返回值原来一样ActionForward 13.struts 中的actionform有什么好处? struts的actionform其实不好,里面有一堆属性,虽然可以自动填充,但是你会发现,在很多情况下(比如你用到Hibernate) 你还要需要自动写一个数据库表的映射类,通常是domain.UserInfo.java,这样就和strutsform中的属性重复,所以他很多余, struts1.1版本,保留了actionform,struts1.2中已经有了新的LazyValidatorForm,但仍然保留了原有的 actionform, 而在struts 2.0中已经把actionform去掉了 下面是解决方法 a: 把actionform换成DynaActionForm ,和原来不同的是在dynaActionForm可以domain.UserInfo.java的一个实例做为他的一个属性 这样你就不需要在里面写一堆的get,set方法,只是在页面上绑定稍有不同 b: 把actionform换成org.apache.struts.validator.LazyValidatorForm,这样你完全不用写你的 actionform这个类,直接在xml里面做 相应配置,当然也可以加上验证框架 警告:这个问题是陷阱,实际上struts的actionform很不好,非常麻烦,用久了你会发现他其实是多余的,所以这个问题你应该说他的坏处, 和怎么把actonform去掉14.用过Hibernate吗,用它有什么好处? Hibernate的最大的好处就是简化数据库的操作,允许你的代码以对象模式来访问数据库内容, 比如通常我们找一个User的资料需要select出所需要的资料,而通过hibnate我们可以把这个User的资料作为一个对象来看待 ,通过User.getName()或者User.getId()等操作来获得,这样就完全统一了上层JAVA或者C#等OO语言中对于数据库的非OO操 作的不和谐了. 另外对于复杂的表和表之间的关联我们也不用去使用复杂的Select等SQL来操作,而使用对象可以方便获得, 比如多对多关系某用户属于的部门的名称,虽然底层数据库使用了3个表的主键关联操作, 但是我们可以通过User.getDep().getName()来简单的获得,这个就是持久化对象的好处了 说明:好处太多,只能在用的过程中慢慢体会 只能说一个字:爽 15.通常所说的web应用程序分3层, 即MVC,如果我想分四层,应该怎么分? 加一个Hibernate数据持久层1、表:table1(FId,Fclass,Fscore),用最高效最简单的SQL列出各班成绩最高的列表,显示班级,成绩两个字段。 select fclass,max(fscore) from table1 group by fclass,fid2、有一个表table1有两个字段FID,Fno,字都非空,写一个SQL语句列出该表中一个FID对应多个不同的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论