对象关系映射-复习
J2EE期末复习

1、ORM 有什么好处?( )A).能进行关系对象的映射B).具有控制器功能C).能在服务器端保存客户端状态D).向DTO传递数据2、在使用property标签时,如果要显示标签的代码,需要设置下面哪个属性的属性值?( )A).defaultB).valueC).escapeD).id3、以下哪一种检索策略利用了外连结查询?( )A).立即检索B).延迟检索C).迫切左外连结检索D).迫切右外连结检索4、如果你不能确定你要寻找的对象的持久化标识符,那么你需要使用查询,使用Session 的什么方法?( )A).createQuery()B).query()C).queryAll()D).queryObject()5、HQL查询语句from Cat as cat,不仅仅返回Cat的实例,而且还返回____的实例。
( )A).Cat 父类B).Cat 子类C).Cat 实现接口D).Cat 兄弟类6、下面哪些子句不支持算数表达式?( )A).compute by 和order byB).compute by 和insert byC).order by 和group byD).insert by 和group by7、使用Hibernate 的QBC 查询,要使用SQL 中的类似select count(*) from tablename 方法求出记录数,必须使用哪一个类?( )A).RestrictionsB).ProjectionsC).CriteriaD).Criteron8、Struts2中默认的主题是哪一种?( )A).simpleB).xhtmlC).css_xhtmlD).ajax9、在Hibernate 中,关于数据库的方言,下面哪个说法是正确的?( )A).可以不写数据库方言B).数据库方言没有作用,可以随便写C).有通用的数据库方言可以使用D).数据方言对应于每个数据库,主要用于产生SQL 语句数据方言对应于每个数据库10、在JEE企业级开发中,SSH框架中Struts主要是完成Web的MVC中的哪个角色?( )A).C(控制器)和V(视图)B).M (模型)和C(控制器)C).只有C(控制器)D).V(视图)和M(模型)11、在Struts2的包配置中,下面哪个属性是必须指定的?( )A).namespaceB).extendsC).nameD).abstract12、通过实现下面哪个接口,可以很容易地实现一个拦截器类的编写?( )A).ActionB).InterceptorC).AbstractInterceptorD).MethodInterceptor13、Action运行期间所有用到的数据都保存在下面哪个对象中?( )A).RequestB).SessionC).ResponseD).ActionContext14、在使用SSH进行JEE企业级开发中,通常把模板文件放置在/WEB-INF目录下的原因是?( )A).因为模板文件不能直接访问,为了防止用户直接访问模板文件,所以放在/WEB-INF目录下,让这些文件直接访问不到。
JSP复习

1、JSP内置对象page和pageContext有什么不同?答:page对象代表正在运行的由JSP文件产生的类对象,而pageContext对象一般被用来设置及获取当前页面运行的一些属性。
2、简述JavaBean通常应该具备的三个基本特征?答:作为一个JavaBean,它通常应具备以下三个基本特征:1)没有参数的构造函数;2)私有的属性;3)操作属性值的get/set方法。
3、简述Servlet的生命周期,并说出Servlet和CGI的区别。
答:Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service()方法,service()方法自动运行与请求对应的doXXX方法(doGet,doPost)等,服务器决定将实例销毁的时候调用destroy()方法。
Servlet处于服务器进程中,它通过多线程方式运行其service()方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于Servlet。
4、请描述Struts 1 Action在MVC中所扮演的角色和作用。
答:Struts Action实际扮演的是传统Servlet的角色,起着控制器的作用。
5、请描述使用servlet、jsp、JavaBean技术实现MVC的系统的实际开发流程和响应客户端请求的过程。
答:Servlet负责接收客户端请求;调用业务逻辑Bean,为JSP画面准备要显示的数据,执行画面跳转。
6、JSP有哪些动作?分别是什么?答:(1)jsp:include表示在页面被请求的时候引入一个文件。
(2)jsp:useBean表示寻找或者实例化一个JavaBean。
(3)jsp:setProperty表示设置JavaBean的属性。
(4)jsp:getProperty表示输出某个JavaBean的属性。
(5)jsp:forward表示把请求转到一个新的页面。
映射与函数知识点总结

映射与函数知识点总结一、映射与函数的概念1.映射的定义:将一个集合中的每个元素都对应到另一个集合中的一些元素的规律称为映射。
对于给定的两个集合A和B,如果每个元素a∈A都有一个元素b∈B与之对应,那么就称集合A到集合B的映射。
记作f:A→B。
2.函数的定义:函数是一种特殊的映射,它满足每个元素a∈A只能对应一个元素b∈B的规律。
对于给定的两个集合A和B,如果每个元素a∈A都有唯一的元素b∈B与之对应,那么就称集合A到集合B的函数。
记作f:A→B。
3.定义域和值域:函数f的定义域是指所有可能作为函数输入的数的集合,通常用符号D(f)表示;函数f的值域是指函数所有可能的输出的数的集合,通常用符号R(f)表示。
二、映射与函数的性质1.单射:也称为一一对应,指当对于集合A中的不同元素a1和a2,它们在集合B中的对应元素f(a1)和f(a2)也不相同。
换句话说,每个元素a∈A都对应着集合B中唯一的元素。
2.满射:也称为映满函数,指函数的值域与集合B相同,即函数的所有可能的输出都在集合B中。
3.双射:即同时满足单射和满射的函数,也称为一一映射。
4.奇函数和偶函数:如果对于函数f的定义域中的每一个实数x,都有f(-x)=-f(x)成立,则称函数f是奇函数;如果对于函数f的定义域中的每一个实数x,都有f(-x)=f(x)成立,则称函数f是偶函数。
5.反函数:如果函数f的定义域和值域都是实数集,且对于函数f中的每一对实数(x,y),都有y=f(x),则存在一个函数g,使得对于函数g中的每一对实数(y,x),都有x=g(y)。
这样的函数g称为函数f的反函数。
三、映射与函数的应用1.函数关系式:映射与函数可以描述实际问题中的各种关系,如线性函数、二次函数、指数函数、对数函数等。
通过分析函数关系式,我们可以了解函数的性质和特点,从而应用到各种实际问题中。
2.函数的图像:通过绘制函数的图像,可以直观地表达函数的变化规律,了解函数的增减性、奇偶性、周期性等。
ORM框架的简单介绍

ORM框架的简单介绍1. 什么是ORM?对象关系映射(Object Relational Mapping,简称ORM)模式是⼀种为了解决⾯向对象与关系数据库存在的互不匹配的现象的技术。
简单来说,将程序中的兑现⾃动持久化到关系数据库中。
那么,到底如何实现持久化呢?⼀种简单的反感是采⽤硬编码的⽅式(jdbc操作sql⽅式),为每⼀种可能的数据库访问操作提供单独的⽅法:这种⽅案存在以下的不⾜:1. 持久化层缺乏弹性。
⼀旦出现业务需求的变更,就必须修改持久化层的接⼝。
2. 持久化层同时与域模型与关系数据库模型绑定,不管域模型还是关系数据库模型发⽣变化,都要修改持久化层的相关程序代码,增加了软件的维护难度。
ORM提供了实现持久化层的另⼀种模式,它采⽤映射元数据来描述对象关系的映射,使得ORM中间件能在任何⼀个应⽤的业务逻辑层和数据库层之间充当桥梁。
Java典型的ORM框架有个:Hibernate,mybatits,speedframeworkORM的⽅法论基于三个核⼼原则:简单:以最基本的形式建模数据传达性:数据库结构被任何⼈都能理解的语⾔⽂档化精准性:基于数据模型创建正确标准化了的结构ORM框架:为了解决⾯型对象与关系数据库存在的互不匹配的现象的框架。
概括起来 : 对象关系映射(Object Relational Mapping,简称ORM)模式是⼀种为了解决⾯向对象与关系数据库存在的互不匹配的现象的技术。
简单来说,将程序中的兑现⾃动持久化到关系数据库中。
那么,到底如何实现持久化呢?⼀种简单的反感是采⽤硬编码的⽅式(jdbc操作sql⽅式),为每⼀种可能的数据库访问操作提供单独的⽅法。
这种⽅法存在很多缺陷,所有使⽤ORM框架(为了解决⾯型对象与关系数据库存在的互不匹配的现象的框架)来解决。
2.为什么使⽤ORM?当我们实现⼀个应⽤程序时(不使⽤O/R Mapping),我们可能会写特别多数据访问层的代码,从数据库保存、删除、读取对象信息,⽽这些代码都是重复的。
Struts+herbinate+Spring--复习要点

5、给出如下映射文件Kcb.hbm.xml中下划线处的说明。
<hibernate-mapping> <class name="org.model.Kcb" table="KCB"> <id name="kch" type="ng.String"> <column name="KCH" length="3" /> <generator class="assigned" /> </id> <property name="kcm" type="ng.String"> <column name="KCM" length="12" /> </property> <property name="kxxq" type="ng.Short"> <column name="KXXQ" /> </property> <property name="xs" type="ng.Integer"> <column name="XS" /> </property> <property name="xf" type="ng. Integer"> <column name="XF" /> </property> </class> </hibernate-mapping>
软件系统数据库设计中的对象关系映射(OR Mapping)设计

由于对象之间的关系反映了具体的商业规则,因此将对 象映射到关系数据库时,必须保证对象之间的关系。
(2)在关系数据库中实现关联关系的基本思路 在关系数据库中主要是通过使用外键来实现关联关系。外 键允许将表中的某一行与其它表中的行相关联。 实现一对一或一对多关系,仅仅需要在表中加入另一个表 的主键
在ORMapping技术中不仅要解决对象在纵向方面的继承关 系需要被映射至数据库,对象之间在横向的的关联关系也需 要映射至数据库
(2)对象之间的关系总的可以分为
继承(Inheritance) 关联(association) 依赖(Dependency) 聚集(aggregation) 组合(composition)
8、将整个类层次映射为单个数据库表的示例
(1)该方法的优点:实现简单并且支持多态--对象角色发生变 化,或存在多重角色时;报表操作实现简单,因为表中包含 了所有信息。 详细内容请见文档 (2)该方法的缺点 中的说明 增加类层次中的耦合,类层次中任何类的属性的增加会导 致表的变更 如果在某个子类属性的修改错误会影响到整个层次结构, 而不仅仅是该子类;同时也会浪费了大量的数据库空间。
12、各种关联关系的实现示例—请见文档 (1)“1对1”关联关系
(2)“1对多”关联关系
(3)“多对多”关联关 系
本讲的简要回顾
1、子曰:“学而不思则罔,思而不学则殆。” “学而时习之”
2、子曰:“知之者不如好之者,好之者不如乐之者”
3、子曰:“三人行,必有我师焉”
4、子曰:“我非生而知之者,好古,敏以求之者也”
9、每个具体子类映射成单个数据库表
(1)优点:报表操作实现简单,因为 表中包含了具体子类的所有信息。 (2)缺点 类的修改会导致相对应的表及其 子类所对应表的更改 角色的更改会造成 ID 的重新赋值 (因为不同子类的ID可能重复) 难以在支持多重角色时,保持数 据的完整性
java复习题1-模拟试卷

java复习题1-模拟试卷2013级研究生《C++、JAVE程序设计》模拟试卷(2013—2014学年第一学期)一、单项选择题(30分,每小题1分)1.编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( )。
A. javaB. .classC. htmlD. .exe2.为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( )。
A. static void method( )B. public void method( )C. final void method( )D. abstract void method( )3.关于选择结构下列哪个说法正确?()A.if语句和 else语句必须成对出现B.if语句可以没有else语句对应C.switch结构中每个case语句中必须用break语句D.switch结构中必须有default语句4.关于对象成员占用内存的说法哪个正确?()A.同一个类的对象共用同一段内存B、同一个类的对象使用不同的内存段,但静态成员共享相同的内存空间C.对象的方法不占用内存D.以上都不对5.下列说法哪个正确?A.不需要定义类,就能创建对象B.对象中必须有属性和方法C.属性可以是简单变量,也可以是一个对象D、属性必须是简单变量6.关于方法main()的说法哪个正确?()A.方法main()只能放在公共类中B main()的头定义可以根据情况任意更改C.一个类中可以没有main()方法D.所有对象的创建都必须放在main()方法中7.构造函数何时被调用?()A、创建对象时B、类定义时C、使用对象的方法时D、使用对象的属性时8.抽象方法:()A、可以有方法体B、可以出现在非抽象类中C、是没有方法体的方法D、抽象类中的方法都是抽象方法9.关于继承的说法正确的是:()A、子类将继承父类所有的属性和方法。
JAVAEEWEB高级编程期末考试复习资料

JAVAEEWEB⾼级编程期末考试复习资料(⼀)1.简述Servlet⼯作原理。
Servlet⼯作原理:Servlet运⾏在Web服务器上的Web容器⾥。
Web容器负责管理Servlet。
它装⼊并初始化Servlet,管理Servlet的多个实例,并充当请求调度器,将客户端的请求传递到Servlet,并将Servlet的响应返回给客户端。
Web容器在Servlet的使⽤期限结束时终结该Servlet。
服务器关闭时,Web容器会从内存中卸载和除去Servlet。
2.Servlet与Applet的异同.相似之处:(1)它们不是独⽴的应⽤程序,没有main()⽅法。
(2)它们不是由⽤户调⽤,⽽是由另外⼀个应⽤程序(容器)调⽤。
(3)它们都有⼀个⽣存周期,包含init()和destroy()⽅法。
不同之处:(1)Applet运⾏在客户端,具有丰富的图形界⾯。
(2)Servlet运⾏在服务器端,没有图形界⾯。
3.EJB怎样和容器交互,其组件有哪⼏种类型?n EJB通过以下三种机制与容器交互①回调⽅法:回调⽅法是EJB组件实现的,通过部署标记或在部署⽂件中声明的特定⽅法,当容器要执⾏创建EJB实例,结束事务等操作时,它将调⽤这些⽅法来通知该EJB 组件。
②EJBContext:每个EJB都会得到⼀个EJBContext对象,它是对容器的直接引⽤,通过它可以获取环境信息。
③Java命名和⽬录接⼝(JNDI):这是java平台的标准扩展,⽤于访问命名系统,如LDAP、NetWare、⽂件系统等。
n EJB组件可分为三种主要类型:①会话Bean:代表检索或存储数据以满⾜⽤户请求这样的操作;②实体Bean:代表⼀种数据集,可以访问这些数据集来满⾜⽤户请求;③消息驱动Bean:相当于⼀个实现了某些业务逻辑的异步消息接收者。
4.什么是JDBC技术?①JDBC是⼀组API,定义了⽤来访问数据源的标准Java类库,使⽤这个类库可以以⼀种标准的⽅法、⽅便地访问数据库资源。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、在Hibernate中,下列说法正确的有()。
【选三项】A.Hibernate是一个开放源代码的对象关系映射框架B.Hibernate对JDBC进行了轻量级的对象封装C.Hibernate可以大大减少操作数据库的工作量D.Hibernate提供了数据查询机制,但没有提供恢复机制2、关于Hibernate,下列说法错误的是()。
A.Hibernate是一个对象-关系映射工具B.在MVC模式中,Hibernate属于控制层C.Hibernate在JDBC的方式上进行封装,以简化JDBC方式繁琐的编码工作D.在Hibernate中,可以通过xml格式的配置文件保存对象-关系的映射信息3、在Hibernate中,下列关于SessionFactory说法正确的有()。
【选两项】A.它是线程安全的B.它不是线程安全的C.它是轻量级的D.一个SessionFactory实例对应一个数据存储源4、在Hibernate中,下列关于Session说法正确的有()。
【选三项】A.它是线程安全的B.它不是线程安全的C.它是轻量级的D.Session也被称为持久化管理器,它提供了和持久化相关的操作5、在Hibernate中,下列关于Transaction说法正确的有()。
【选三项】A.事务Transaction为应用程序指定以原子操作单元为范围的对象B.在对数据库进行增加、修改和删除操作时一定要加上TransactionC.在对数据库进行查询操作时一定要加上TransactionD.获得Transaction的方法:Transaction tr = session.beginTransaction();6、在Hibernate中,如果数据库是MySql或者SQLServer,则generator属性值不可以使用()。
A.hiloB.nativeC.sequenceD.indentity7、在Hibernate中,如果数据库是Oracle或者DB2,则generator属性值不可以使用()。
A.hiloB.nativeC.sequenceD.Indentity8、在Hibernate中,下列哪个选项不属于Session的方法()。
A.loadB.saveC.openD.delete9、在Hibernate中,generator属性值如果是native,则表示()。
A.由Hibernate自动以自增的方式生成标识符,每次增量为1B.由Hibernate自动以自增的方式生成标识符,每次增量为自定义C.根据底层数据库对自动生成标识符的支持来选择。
D.由Java应用程序负责生成标识符10、Hibernate增加数据的时候,可以调用session的()方法。
【选两项】A.saveB.updateC.addD.saveOrUpdate11、Hibernate对JDBC访问数据库的代码进行了封装,从而大大简化了数据访问层的重复性代码,它是针对三层架构中()的解决方案。
A.表现层B.业务逻辑层C.持久化层D.数据库系统12、Hibernate是一个优秀的Java持久化层解决方案,那么数据的持久化指的是()。
A.数据在程序退出后就不复存在B.数据在程序退出后以文件等形式保存在存储设备中C.数据的内容是不变的,处于静态中D.数据的内容是变化的13、下列选项不属于持久化的是()。
A.将对象转换为字符串的形式通过网络传输,在另一端接收到该字符串后能将对象还原B.将程序数据从数据库中读取出来C.从XML配置文件中读取程序的配置信息D.将程序数据保存为文件14、使用Hibernate 技术实现数据库持久化时,下列()不在Hibernate配置文件中。
A.数据库连接信息B.数据库类型(dialect)C.show_sql参数D.数据库表和实体的映射信息15、在Hibernate中,inverse属性值为()时,会标识被控方。
A.allB.falseC.trueD.none16、在Hibernate中,如果需要标识主控方,则inverse属性值应为()。
A.allB.falseC.trueD.none17、在Hibernate中,从性能方面考虑,inverse属性值通常设置为()。
A.allB.falseC.trueD.none18、Hibernate通过映射文件中的<generator>子元素来设定标识符生成器,下列选项哪些是Hibernate提供的内置实现()。
【选三项】A.hiloB.nativeC.assignD.indentity19、三层结构是一种典型的应用软件分层结构,这三层分别是()。
【选三项】A.表述层B.业务逻辑层C.控制层D.数据层20、持久化技术封装了数据访问的细节,为大部分业务逻辑提供了面向对象的API。
数据持久化具有以下3个方面的特点,分别是()。
【选三项】A.通过持久化技术能够减少访问数据库中数据的次数,提供应用程序速度(?????)B.提高代码的可重用性C.松耦合,使持久化的实现不依赖于底层数据库及上层业务逻辑D.具有更好的可扩展性21、在ORM中,面向对象概念中的对象与面向关系概念中的()相对应。
A.表B.表的行C.表的列D.表中行的数据22、一般情况下,关系数据模型和对象模型之间有哪些匹配关系()。
【选两项】A.表对应对象B.记录对应对象C.表的字段对应类方法D.表之间的参考关系对应类之间的依赖关系23、在Hibernate中,一个持久化类的实例可能存在的状态有哪些()。
【选三项】A.瞬态B.持久态C.隔离态D.游离态24、在Hibernate的映射文件中,id节点的property元素的()表示指定类的属性映射的表的字段名。
A.nameB.typeC.columnD.lazy25、在Hibernate的实体类映射文件中,class节点下必须有一个id节点,其中unsaved-value属性的默认值为()。
A.nullB.noneC.tureD.false26、下列选项关于Configuration的说法不正确的是()。
A.Configuration类的构造方法用于将默认路径下的hibernate.cfg.xml(或hibernate.properties)配置文件中的配置信息读入到内存中B.Configuration对象用于配置并启动HibernateC.获得Configuration的方法:Configuration config= new Configuration();D.Hibernate应用通过Configuration实例指定对象-关系映射文件的位置或者动态配置Hibernate的属性27、在Hibernate中,当cascade属性值为()时,表示不进行级联操作。
A.allB.noC.noneD.delete28、在Hibernate中,如果需要进行级联删除,则cascade属性值可为()。
【选两项】A.allB.save-updateC.noneD.delete29、在Hibernate中,要想在删除某个客户数据的同时删除该客户对应的所有订单数据,下列方法可行的有()。
【选两项】A.配置客户和订单关联的cascade属性为save-updateB.配置客户和订单关联的cascade属性为allC.设置多对一关联的inverse属性为trueD.设置多对一关联的inverse属性为false30、在Hibernate中,<set>元素有一个cascade属性,如果希望Hibernate 级联保存集合中的对象,则cascade属性应该取什么值()。
A.noneB.saveC.save-updateD.delete31、在Hibernate中,Customer类中有一个Set类型的orders属性,用于存放Order订单对象,在Customer.hbm.xml文件中,可以用()元素映射orders属性。
A.<set>B.<one-to-many>C.<many-to-one>D.<property>32、在Hibernate中,下列一对多关联的配置中,存在哪些错误()。
【选两项】<set name="orders" inverse="false" cascade="true"><one-to-many class="com.scce.pojo.Order"column="customer_id" /></set>A.inverse属性不可以设置为falseB.cascade属性不可以设置为trueC.class="com.scce.pojo.Order"应为type="com.scce.pojo.Order" D.column属性不可以在<one-to-many>节点内设置33、在Hibernate的HQL查询中,下列说法正确的是()。
A.可以调用用户自定义函数B.不可以调用用户自定义函数C.支持子查询D.支持分页查询34、在Hibernate的HQL查询中,下列说法不正确的是()。
A.在Hibernate3中,可以使用update、delete子句B.在Hibernate3中,不可以使用update、delete子句C.HQL是基于SQL的D.HQL提供了更多面向对象的封装35、在Hibernate的HQL查询中,setMaxResults(3)方法中参数值3指的是()。
A.从第3条记录开始B.从第4条记录开始C.查询3条记录D.查询4条记录36、在Hibernate的HQL查询中,setFirstResults(3)方法中参数值3指的是()。
A.从第3条记录开始B.从第4条记录开始C.查询3条记录D.查询4条记录37、下面代码的执行效果是()。
String hql = "from TblStudent s order by s.score asc";Query query = session.createQuery(hql);query.setFirstResult(0);query.setMaxResults(5);return query.list();A.返回分数最高的5个学生B.返回分数最高的6个学生C.返回分数最低的5个学生D.返回分数最低的6个学生38、在Hibernate的HQL查询中,下列说法不正确的是()。
A.HQL子句本身的大小写没有差异,但类名和属性名必须区分大小写B.HQL支持where子句C.HQL支持as子句D.where、as关键字区分大小写39、在Hibernate的HQL查询中,有数据库表(dept)对应的对象名称为Dept,下列HQL写法正确的有()。