Hibernate+MyBatis内部测试笔试题
mybatis选择题题库
mybatis选择题题库含解答共20道1. 问题:MyBatis是一种什么类型的持久层框架?- a. ORM框架- b. MVC框架- c. AOP框架- d. IoC容器答案:a. ORM框架2. 问题:在MyBatis中,#{param}和${param}的区别是什么?- a. #{param}用于设置预编译参数,${param}用于字符串替换- b. #{param}用于字符串替换,${param}用于设置预编译参数- c. 两者没有区别- d. #{param}和${param}不能同时使用答案:a. #{param}用于设置预编译参数,${param}用于字符串替换3. 问题:MyBatis中的动态SQL是通过哪个标签实现的?- a. \<if>- b. \<choose>- c. \<foreach>- d. \<sql>答案:b. \<choose>4. 问题:MyBatis中,一对一关联关系的映射是通过哪个元素实现的?- a. \<one-to-one>- b. \<resultMap>- c. \<association>- d. \<many-to-one>答案:c. \<association>5. 问题:MyBatis的缓存机制默认是开启的吗?- a. 是- b. 否答案:a. 是6. 问题:MyBatis中的批量插入操作通常使用哪个元素?- a. \<batch>- b. \<foreach>- c. \<insert>- d. \<update>答案:b. \<foreach>7. 问题:在MyBatis中,如果想要返回自增主键,可以使用哪个属性?- a. keyProperty- b. useGeneratedKeys- c. generatedKey- d. returnGeneratedKeys答案:b. useGeneratedKeys8. 问题:MyBatis中的逆向工程是通过哪个工具生成的?- a. MyBatis Generator- b. Hibernate Tools- c. Spring Roo- d. Apache Maven答案:a. MyBatis Generator9. 问题:MyBatis中的拦截器是通过哪个接口实现的?- a. Interceptor- b. MapperInterceptor- c. MyBatisInterceptor- d. Plugin答案:a. Interceptor10. 问题:MyBatis中的动态数据源切换是通过哪个技术实现的?- a. AOP- b. 注解- c. ThreadLocal- d. 注入答案:c. ThreadLocal11. 问题:在MyBatis中,如果需要返回多个查询结果集,可以使用哪个元素?- a. \<select>- b. \<resultMap>- c. \<association>- d. \<resultSets>答案:d. \<resultSets>12. 问题:MyBatis中的懒加载是通过什么机制实现的?- a. AOP- b. 代理模式- c. 工厂模式- d. 观察者模式答案:b. 代理模式13. 问题:在MyBatis中,#{}, ${}, <![CDATA[]]> 的作用分别是什么?- a. #{}, ${}都是用于设置预编译参数,<![CDATA[]]>用于包裹动态SQL- b. #{}, ${}都是用于字符串替换,<![CDATA[]]>用于设置预编译参数- c. #{}, ${}都是用于字符串替换,<![CDATA[]]>用于包裹动态SQL- d. #{}, ${}都是用于设置预编译参数,<![CDATA[]]>用于字符串替换答案:a. #{}, ${}都是用于设置预编译参数,<![CDATA[]]>用于包裹动态SQL14. 问题:在MyBatis中,如果使用注解方式配置SQL语句,可以使用哪个注解?- a. @Query- b. @Sql- c. @Statement- d. @Select答案:d. @Select15. 问题:MyBatis的架构中,SqlSession的作用是什么?- a. 用于执行SQL语句- b. 用于映射Java对象和数据库记录- c. 用于管理数据库连接- d. 用于配置数据源答案:a. 用于执行SQL语句16. 问题:在MyBatis中,#{}和${}的主要区别是什么?- a. #{}用于预处理参数,${}用于直接替换字符串- b. #{}用于直接替换字符串,${}用于预处理参数- c. #{}用于动态SQL,${}用于设置预处理参数- d. #{}和${}在MyBatis中没有区别答案:a. #{}用于预处理参数,${}用于直接替换字符串17. 问题:MyBatis的二级缓存是默认开启的吗?- a. 是- b. 否答案:b. 否18. 问题:在MyBatis中,如何配置全局的参数映射器(TypeHandler)?- a. 在全局配置文件中配置- b. 在Mapper接口中配置- c. 在Mapper XML 文件中配置- d. 在数据库连接配置中配置答案:a. 在全局配置文件中配置19. 问题:在MyBatis中,#{param}和${param}的作用范围是什么?- a. #{param}只能用于设置预编译参数,${param}只能用于字符串替换- b. #{param}和${param}在MyBatis中没有区别- c. #{param}和${param}都可以用于设置预编译参数和字符串替换- d. #{param}只能用于字符串替换,${param}只能用于设置预编译参数答案:c. #{param}和${param}都可以用于设置预编译参数和字符串替换20. 问题:在MyBatis中,如何配置Mapper接口的方法参数映射?- a. 在Mapper接口方法上使用@Param注解- b. 在Mapper XML 文件中使用\<parameter>元素- c. 在全局配置文件中使用\<parameterMap>元素- d. 在Mapper接口方法上直接使用参数名答案:a. 在Mapper接口方法上使用@Param注解。
软件开发mybatis技术(习题卷1)
软件开发mybatis技术(习题卷1)第1部分:单项选择题,共76题,每题只有一个正确答案,多选或少选均不得分。
1.[单选题]ResultMap中映射到列结果的字段或者属性的是A)columnB)propertyC)javaTypeD)jdbcType答案:B解析:2.[单选题]在使用Spr ingMVC的项目中,进行服务器端验证,用什么注解可以实现正则匹配A)@SizeB)@PatternC)@MaxD)@Past答案:B解析:3.[单选题]mybatis配置文件的根标签是:A)mapperB)configurationC)htmlD)xml答案:B解析:4.[单选题]使用一对多的标签是()A)associationB)collectionC)OneToManyD)ManyToOne答案:B解析:5.[单选题]在Mybatis 注册Mappers信息时添加配置为:A)<mapper resource="dao.EmpDaoMapper.xml"></mapper>B)<mapper resource="dao\EmpDaoMapper.xml"></mapper>C)<mapper resource="dao/EmpDao"></mapper>D)<mapper resource="dao/EmpDaoMapper.xml"></mapper>答案:D解析:6.[单选题]映射文件的<mapper namespace=””>配置可以是任意字符串吗?A)可以,但只能通过完全限定名调用D)不可以,这样映射文件就找不到对应的接口类答案:A解析:7.[单选题]Mybatis中< select >标签的作用A)添加B)修改C)删除D)查询答案:D解析:8.[单选题]Mybatis是如何将sql执行结果封装为目标对象并返回的A)idB)使用sql列的别名C)resultTypeD)resultMap答案:B解析:9.[单选题]下面对Spring中Bean的注入说法正确的是A)Bean根据注入方式不同可以分为构造方法注入和自动装载B)使用构造方法注入构造对象的同时,完成依赖关系的建立C)在关系的对象很多时,使用构造方法注入更适合D)构造方法通过constructor-index属性来指定,在该标签下要指定索引的位置答案:B解析:10.[单选题]每个基于 MyBatis 的应用都是以一个() 的实例为中心的A)SqlSessionFactoryB)SqlSessionC)SessionD)SqlSessionFactoryBuilder答案:A解析:11.[单选题]在MyBatis中,使用jdbc方式返回主键自增的值需要设置<insert>标签的什么属性( )A)idB)parameterTypeC)keyPropertyD)useGeneratedKeys答案:D解析:12.[单选题]下列不属于Spring MVC控制器的是?A)前端控制器(dispatcherServlet)B)请求到处理器映射(handlerMapping)C)视图解析器(ViewResolver)D)处理器适配器(ConntrllerAdapter)13.[单选题]MyBatis中用于表示返回结果类型的属性名称是A)resultTypeB)parameterTypeC)collectionD)returnType答案:A解析:14.[单选题]关于AspectJ注解的介绍,说法错误的是A)@Aspect用于定义一个切面B)@Pointcut用于定义切入点表达式C)@Before用于定义前置通知,相当于BeforeAdviceD)@After用于定义后置通知,相当于AfterReturningAdvice答案:D解析:15.[单选题]在下划线处填写正确代码实现重定向@RequestMapping("/toJump") public String skipTest(){ return "_______:/jump.do"; }A)skipB)forwardC)redirectD)to答案:C解析:16.[单选题]Spring的核心机制是( )A)依赖注入B)数据访问C)AOPD)声明式事务答案:A解析:17.[单选题]使用()标签注入Properties集合元素A)B)C)<list>D)<map>答案:A解析:18.[单选题]<result column="loc" property="loc"/>标签中” property”的作用A)配置对应表中的列名B)配置对应的实体类C)配置对应的测试类D)配置对应的实体类中的成员变量答案:D解析:19.[单选题]以下代码是哪种( )注入方式<bean id="student" class="com.mhys.bean.Student"> <!-- name:属性B)构造方法注入C)set注入D)表达式spel方式注入答案:C解析:20.[单选题]使用()标签注入数组元素A)<import>B)<list>C)<autowire>D)<factory-bean>答案:B解析:21.[单选题]关于@RestController控制器说明正确的是?A)是Spring的内容注解B)是Spring的路径注解C)是Spring的控制器注解D)@Controller 注解更强大答案:C解析:22.[单选题]Mybatis的表关联的映射描述错误的是()A)一对一关联B)一对多关联C)多对多关联D)以上都不对答案:D解析:23.[单选题]在Spring中, 以下代码属于( )注入方式<bean id="student" class="com.mhys.bean.Student"> <!--name:属性名 value:属性值 --> </property></bean>A)p命名空间注入B)构造方法注入C)set注入D)表达式spel方式注入答案:C解析:24.[单选题]下列注解限制必须为一个不大于指定值得数字是?A)@Max(value)B)@Min(value)C)@DecimalMax(value)D)@DecimalMin(value)答案:C解析:25.[单选题]MVC中M是A)ModelD)ModelAndView答案:A解析:26.[单选题]以下哪个属性是<bean>标签的名称标识?A)idB)nameC)classD)factory-bean答案:B解析:27.[单选题]mybatis指定配置文件的根元素使用的是什么A)<sqlMapConfig>B)<configration>C)<setting>D)<environments>答案:B解析:28.[单选题]SpringMVC处理响应时,默认采用的是下列( )方式进行A)重定向B)转发C)先重定向,然后转发D)先转发,然后重定向答案:B解析:29.[单选题]Mybatis 会不会为程序员在运行期自动生成SQL执行?A)不会B)会C)可能会D)不确定答案:A解析:30.[单选题]下列限制只能为false的标签是?A)@AssertFalseB)@NullC)@DecimalMin(value)D)@IsFalse答案:A解析:31.[单选题]Maven项目的主配置文件是()A)pom.xmlB)web.xmlC)mysql-config.xmlD)application.xml32.[单选题]MVC中v是A)ModelB)ViewC)ControllerD)ModelAndView答案:B解析:33.[单选题]Spring的优势不包括以下哪个选项( )。
Hibernate内部测试-笔试试卷
《使用Hibernate开发租房系统》内部测试-笔试试卷一、选择题(共25题,每题4分,满分100分)1.下面不属于持久化的是()。
A.把对象转换为字符串的形式通过网络传输,在另一端接收到这个字符串后能把对象还原出来B.把程序数据从数据库中读出来C.从XML配置文件中读取程序的配置信息D.把程序数据保存为文件2.下面()不属于关系—对象映射的映射信息。
A.程序包名到数据库库名的映射B.程序类名到数据库表名的映射C.实体属性名到数据库表字段的映射D.实体属性类型到数据库表字段类型的映射3.下面()不是Hibernate 映射文件中包含的内容。
(选两项)A.数据库连接信息B.Hibernate 属性参数C.主键生成策略D.属性数据类型4.下面的程序执行后没有报错,但数据总保存不到数据库,最可能的原因是()。
public static void main(String[] args) {SessionFactory sf =new Configuration().configure().buildSessionFactory();Session session = sf.openSession();Medal medal = new Medal();medal.setOwner("Shen Baozhi");medal.setSport("Table Tennis-Women's Singles");medal.setType("Gold Medal");session.save(user);session.close();}A.配置文件配置有误B.没有在配置文件中包含对映射文件的声明C.映射文件配置有误D.没有开启事务5.下列属于多对一关系的是()。
(选两项)A.书和作者B.手机和生产厂家C.用户和发布的出租信息D.士兵和班长6.下面是某系统中的两个实体类,依此可以得知()。
hibernatemybatis内部测试笔试题
ACCP7.0内部测试学期: Y2 模块:Java考试时间: 50分钟总分数:100分注意:1、请勿在试卷上留下笔迹2、交卷时试题和答案均要上交《使用Hibernate开发租房系统》内部测试笔试题一、选择题(共25题,每题2.5分,选择一项或多项,漏选错选不得分)1.在Hibernate中,以下关于主键生成器说法错误的是()。
A.increment可以用于类型为long、short或byte的主键B.identity用于如SQL Server、DB2、MySQL等支持标识列的数据库C.sequence用于如Oracle、SQL Server等支持序列的数据库D.native由Hibernate根据底层数据库自行判断采用何种主键生成策略,是由使用的数据库生成主键的值2.在Hibernate中,关于脏检查和刷新缓存说法正确的是()。
A.当事务提交时,会发生脏检查B.Session的flush( )方法是刷新缓存的方法C.在执行Session的commit( )方法之前不会调用Session的flush( )方法D.编写代码时,调用commit( )方法之前要调用flush( )方法3.使用HQL查询所有部门信息,以下正确的是()。
A.from DeptB.select * from cn.jbit.demo.entity.DeptC.select Dept from cn.jbit.demo.entity.Dept dD.select d from Dept d4.关于Query接口的list( )和iterate( )方法,说法正确的是()。
A.执行list( )方法,查询所有符合条件的记录B.执行iterate( )方法,查询所有符合条件的记录C.执行list( )方法,查询出所有符合条件的主键值D.执行iterate ( )方法,查询出所有符合条件的主键值5.在HQL中,关于Query接口绑定参数的方法,说法正确的是()。
Hibernate笔试题
1) 在三层结构中,数据访问层承担的责任是(B)〔选一项〕a) 定义实体类b) 数据的增删改查操作c) 业务逻辑的描述d) 页面展示和控制转发2) 下面关于数据持久化概念的描述,错误的是(D〔选择一项〕a) 保存在内存中数据的状态是瞬时状态b) 持久状态的数据在关机后数据依然存在c) 数据可以由持久状态转换为瞬时状态d) 将数据转换为持久状态的机制称为数据持久化3) 下面关于Hibernate的说法,错误的是(C)〔选择一项〕a) Hibernate是一个“对象-关系映射”的实现b) Hibernate是一种数据持久化技术c) Hibernate是JDBC的替代技术d) 使用Hibernate可以简化持久化层的编码4) Hibernate配置文件中,不包含下面的(AB)〔选择二项〕a) “对象-关系映射”信息b) 实体间关联的配置c) show_sql等参数的配置d) 数据库连接信息5) 在Hibernate关系映射配置中,inverse属性的含义是(B)。
〔选择一项〕a) 定义在<one-to-many>节点上,声明要负责关联的维护b) 声明在<set>节点上,声明要对方负责关联的维护c) 定义在<one-to-many>节点上,声明对方要负责关联的维护d) 声明在<set>节点上,声明要负责关联的维护6) 在使用了Hibernate的系统中,要想在删除某个客户数据的同时删除该客户对应的所有订单数据,下面方法可行的是(B。
〔选择一项〕a) 配置客户和订单关联的cascade属性为save-updateb) 配置客户和订单关联的cascade属性为allc) 设置多对一关联的inverse属性为trued) 设置多对一关联的inverse属性为false7) 下面一对多关联的配置中,存在哪些错误(BD)。
<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>节点内设置8) 执行下面的hql查询,关于返回值的说法,正确的是(B)。
《MyBatis数据持久化框架》笔试题库
《MyBatis数据持久化框架》笔试题库1. 在MyBatis中,开发Mybatis不需要下列哪些步骤添加Mybatis核心包配置mybatis配置文件mybatis-config.xml配置全局属性、数据源和实体包的别名实现静态列表html页面(正确答案)2. 在MyBatis中对JDBC访问数据库的代码进行封装,从而大大简化了数据访问层的重复性代码,它是针对三层架构中()的解决方案表现层业务逻辑层持久化层(正确答案)数据库系统3. 在MyBatis中,关于log4j日志级别不包含以下那种update(正确答案)ERRORTRACEDEBUG4. 在MyBatis中,操作数据库的核心类是()SqlSessionFactorySqlSession(正确答案)SessionSqlSessionFactoryBuilder5. 在MyBatis中,将以下划线命名的数据库列映射到Java对象的驼峰命名属性的配置是什么()sqlSessionFactorypropertymapUnderscoreToCamelCase(正确答案)jdbcType6. 在MyBatis中,查询列前缀属性为propertyjavaTypeColumnPrefix(正确答案)ColumnBefore7. Mybaits中的前身是()IBATIS(正确答案)BeginClintonApache8. 在MyBatis中对结果集的配置使用的标签是以下()<result><resultMap>(正确答案)<map><collection>9. 在MyBatis中,删除具有主从关系的主表记录时会出现删除异常,可以使用什么解决方式()【选两项】设置从表的删除时规则为“置为NULL”(正确答案)设置主表的删除时规则为“置为NULL”设置从表的删除时规则为“置为级联”(正确答案)设置主表的删除时规则为“置为级联”10. 在MyBatis中,执行以下代码生成结果变量result代表的含义是什么intresult=userMapper.deleteUserById(id);()删除消耗时间删除数据字段数量数据删除受影响的行数(正确答案)数据库剩余数据行数11. 在MyBatis数据库操作时,需要编写()和对应的xml文件,其中xml文件中编写的是对应Sql语句接口和抽象方法(正确答案)普通类和普通方法抽象类和抽象方法普通类和抽象方法12. 在MyBatis中,@SelectKey(statement="select last_insert_id()",keyProperty="id",resultType=Long.class, before=false)注解的作用是什么()返回值为最后一次插入数据的id值(正确答案)查询数据库中最大的id值查询当前数据库中id的数量查询数据库中是否存在相同id13. 在MyBatis中,以下哪项不属于xml映射文件标签resultMapparameter(正确答案)include14. 在MyBatis中用于表示返回结果类型的属性名称是resultType(正确答案)parameterTypecollectionreturnType15. 在MyBatis中用于表示输入类型的属性名称是resultTypeparameterType(正确答案)collectionreturnType16. 在 MyBatis 的配置文件中,通过()标签来设置实体类的别名propertiessettingstypeAliases(正确答案)dataSource17. 在MyBatis中,以下哪项不属于Mybatis全局配置文件中的标签propertiesdata(正确答案)typealiases18. 在MyBatis中,以下哪项不属于resultMap的自动映射级别NONEPARTIALFULLANY(正确答案)19. 在MyBatis中,以下说法错误的是Mapper接口方法名和mapper.xml中定义的每个sql的id可以不同(正确答案)Mapper接口方法的输入参数类型和mapper.xml中定义的每个sql 的parameterType 的类型相同Mapper接口方法的输出参数类型和mapper.xml中定义的每个sql的resultType的类型相同Mapper.xml文件中的namespace即是mapper接口的类路径20. 在MyBatis中,用于取出由数据库内部生成主键的属性是()keyPropertyuseGeneratedKeys(正确答案)keyColumndataBaseid21. 在MyBatis中,更新数据的Mapper.xml的标签是什么InsertSelectUpdate(正确答案)Delete22. 在MyBatis中,使用jdbc方式返回主键自增的值需要设置<insert>标签的什么属性()idparameterTypekeyPropertyuseGeneratedKeys(正确答案)23. 在Mybatis中实现DML操作的标签有哪些()【选三项】<insert>(正确答案)<update>(正确答案)<delete>(正确答案)<provider>24. 在Mybatis中接口方法中只有一个参数时,在映射器XML可用的参数是什么(){param}{param0}{arg0}(正确答案){arg1}25. 在Mybatis中接口绑定的方式有哪两种【选两项】注解绑定(正确答案)直接绑定XML里面写SQL绑定(正确答案)XML里面写方法绑定26. 在mapper中如何传递多个参数【选两项】使用占位符的思想(正确答案)使用数组传递使用map集合作为参数来装载(正确答案)无法实现27. 在Mybatis中,设置自动生成主键后通过什么属性获取自动生成的(主)键值设置resultMap设置useGeneratedKeys设置keyProperty(正确答案)设置Property28. 在Mybatis的ORM映射中,表中的列名需要和()进行映射?类名类中的属性名(正确答案)类的包名id29. 在Mybatis中,Mapper接口的方法名需要和Mapper对应XML文件中的()对应标签名id(正确答案)参数名parameterType30. 在MyBatis中,以下关于MyBatis集合类型参数的处理,说法错误的是()当参数为Collection接口,转化为Map,Map的Key为collection当参数类型为List接口时,除了collection的值外,list作为key如果参数为数组,也会转化为Map,Map的key为array如果参数为数组,也会转化为Map,Map的key为list(正确答案)31. 在MyBatis中,以下哪项不属于MyBatis的API SqlSessionFactoryBuilderSqlSessionFactoryExecutor(正确答案)SqlSession32. 在使用MyBatis的select标签查询客户(customer)的电话信息时,如果客户实体中电话的属性名为mobile,而客户表所对应的字段名为phone,则正确的写法是()select phone from customerselect mobile from customerselect mobile as phone from customerselect phone as mobile from customer(正确答案)33. 在MyBatis中,<collection>标签支持的属性值以及属性的作用和<association>标签完全相同,分别有哪些()【选两项】resultTypecolumnPrefix(正确答案)property(正确答案)parameterType34. 在MyBatis中,子标签<association>配置已经有的结果集时使用哪个属性()propertyjavaTyperesultType(正确答案)columnPrefix35. 在MyBatis中,以下不属于<association>标签嵌套查询常用属性的是()show(正确答案)selectcolumnfetchType36. 在Mybatis中使用collection标签来解决一对多关联,哪项不属于其属性properties(正确答案)ofTypecolumnselect37. 在 MyBatis 中,配置结果映射时,使用()标签实现1对多的关联many-oneone-manyassociationcollection(正确答案)38. 在 MyBatis 中,配置结果映射时,使用()标签实现多对1的关联many-oneone-manyassociation(正确答案)collection39. 在MyBatis中,.映射一对一使用的标签是many-oneone-manyassociation(正确答案)collection40. 在mybatis中,映射一对多时使用的常用属性是实体对象ConnectionResultSetList(正确答案)41. 在Mybatis中,Mapper.xml中用于设置返回值类型和结果字段映射关系的是accociationselectresultMap(正确答案)constructor42. 在MyBatis中,mybatis指定配置文件的根元素使用的是什么<sqlMapConfig><configration>(正确答案)<setting><environments>43. 在MyBatis中,<foreach>标签可以实现对象遍历的用法,适用对象不包括下列哪一个()数组MapListMath(正确答案)44. 在MyBatis中,以下属于choose标签内部标签的是【选两项】when(正确答案)selectotherwise(正确答案)if45. 在MyBatis中,以下不属于Mybatis动态sql标签的是?trimforeachsetthan(正确答案)46. 在Myabtis的XML映射文件中,除了常见的增删改查标签之外,还有哪些标签【选两项】codeparametersinclude(正确答案)selectKey(正确答案)47. 在MyBatis中,以下哪个属性作用为:当trim元素包含内容时,会把内容中匹配的前缀字符串去掉prefixprefixOverrides(正确答案)suffixsuffixOverrides48. 在MyBatis中,以下哪项不属于Mybatis动态sql标签ifchoosewhenget(正确答案)49. 在MyBatis中,实现对象遍历标签是foreach(正确答案)ifchoosetrim50. 在MyBatis中,以下不属于MyBatis动态标签的是【选两项】forwhen(正确答案)set(正确答案)while51. 在 MyBatis 动态 SQL 中,没有使用下列()标签for(正确答案)ifchoosewhere52. 下列关于Mybatis的描述错误的是()mybatis可以实现全自动的数据库操作,大大简化了开发工作量(正确答案) mybatis虽然实现了ORM,但是需要自己编写SQL语句mybatis内部其实是封装了jdbc进行数据库操作mybatis不仅支持sql,还能支持存储过程53. 在MyBatis中,<foreach>标签不包含以下哪些属性()【选两项】indexofitem(正确答案)index(正确答案)trim54. 在Mybatis中的foreach使用时,用于对应循环数据的别名属性是()closeitem(正确答案)collectionend55. 在MyBatis中,主要用于更新时的mybatis动态sql标签是Choose(when/otherwise)Set(正确答案)WhereForeach56. 在Mybatis中,想实现批量删除的动态sql的标记可选择choose(when/otherwise)setwhereforeach(正确答案)57. 在MyBatis中,动态SQL标签<choose>标签中最少可以有几个<when>标签()1(正确答案)23以上都不对58. 在MyBatis中,动态SQL标签<choose>标签中关于<otherwise>标签描述正确的是()<otherwise>标签可以有0个(正确答案)<otherwise>标签只能有1个<otherwise>标签可以有2个以上都不对59. 在MyBatis中,以下不属于Mybatis的动态标签的是()<if><while>(正确答案)<choose><where>60. 在MyBatis中,动态SQL标签<if>判断String类型的字段是否为空字符串的正确用法是()<if test="userName != null and userName != '' "></if>(正确答案)<if test="userName != null userName != '' "></if><if test="userName != null or userName != '' "></if><if test="userName != null || userName != '' "></if>61. 在MyBatis中,为实现批量输入和动态更新可以使用以下哪个动态SQL标签()<foreach>(正确答案)<if><choose><set>62. 在Mybatis中,当接口功能方法有多个参数时,可使用如下哪个注解为参数进行指定名称@set@Map@Param(正确答案)@value63. 在MyBatis中,二级缓存的默认效果有哪些()【选两项】二级缓存默认是关闭的(正确答案)映射语句文件中所有的insert语句、update语句和delete语句会刷新缓存(正确答案)缓存永远不会被回收如果没有设置刷新时间间隔,缓存会随时刷新64. 在以下场景中,不推荐使用二级缓存的是()以更新数据为主的应用中,查询业务较少(正确答案)以查询为主的应用中,尽可能少的更新操作查询业务绝大多数都是对单表进行操作的应用可以按业务划分对表进行分组时,关联表非常少65. 在MyBatis中,关于mybatis缓存的描述错误的是()一般提到Mybatis缓存的时候,都是指二级缓存一级缓存默认会启用一级缓存不能控制二级缓存不能控制(正确答案)66. 在MyBatis中,一般提到Mybatis缓存的时候指的是()二级缓存(正确答案)一级缓存本地缓存三级缓存67. 在MyBatis中,配置Mybatis Generator时,要求不会生成Examp相关的方法,需要设置targetRuntime为什么()Mybatis3Simple(正确答案)Mybatis3Mybatis3x以上都不对68. 在MyBatis中,使用MyBatis Generator自动工具生成的文件不包含()Entity(正确答案)DAO类SqlMap.xmlMapper XML69. 在MyBatis中,配置Mybatis Generator时,<table>标签可以配置几个()0个1个或多个(正确答案)仅能设置1个必须设置多个70. 在MyBatis中,MyBatis注解中怎么给参数一个名字()@Param("C11")(正确答案)@SelectOptions@Results71. 在MyBatis中,配置Mybatis Generator时,要生成数据库内所有表<table>标签中的tableName应该设置成什么()!#%(正确答案)$72. 在MyBatis中,以下Mybatis核心接口中用于设置入参设置是哪一个()ParameterHandler(正确答案)ResultSetHandlerExecutorStatementHandler73. 在MyBatis中,创建日志插件时应该通过拦截哪一个接口来完成ParameterHandlerResultSetHandlerStatementHandlerExecutor(正确答案)74. 在MyBatis中,Mybatis允许使用插件来拦截的核心接口有哪些()【选三项】Executor(正确答案)ParameterHandler(正确答案)ResultSetHandler(正确答案)ResultSet75. 在MyBatis中,以下哪项是可能造成JavaBean中字段与数据库列无法映射的原因【选两项】字段与数据库列名不一致(正确答案)没有对应的getter/setter方法(正确答案)未导入jar包项目搭建出错76. 下列关于Mybatis说法正确的是()【选两项】mybatis不能处理多表关联查询mybatis可以实现批量数据操作(正确答案)mybatis的一级缓存默认开启的(正确答案)mybatis不能针对视图进行操作77. 在MyBatis中,SqlSessionFactory sqlMapper = new SqlSessionFactoryBuilder ().build(resourceAsStream);这行代码代码主要做了哪些事呢,以下说法错误的是主要就涉及到了三个类SqlSessionFactoryBuilder、XMLConfigBuilder、XPathParser Build方法首先都是用XML配置文件构建一个XMLConfigBuilder类,XMLConfigBuilder通过parse方法返回一个Configuration配置类Configuration设置到SqlSessionFactory默认实现DefaultSqlSessionFactory的configuration属性并返回创建SqlSessionFactory对象是通过SqlSessionFactoryBuilder的build方法,他会返回它的默认实现类SqlSessionFactory(正确答案)78. 在MyBatis中,使用select映射查询含有部门详细信息的员工信息,下列关于返回类型的说法,正确的是()只能是resultType只能是resultMap(正确答案)可以是resultType或resultMap以上说法都不正确79. 在MyBatis中,以下不属于Mybatis优秀特性的是()支持自定义SQL查询支持存储过程支持高级映射支持XML注解(正确答案)80. 在MyBatis中,JDBC编程有哪些不足之处,Mybatis是如何解决这些问题的,描述正确的是()【选两项】mybatis替代了jdbc实现数据库操作将SQL语句配置在mapper.xml文件中与java代码分离(正确答案)mybatis避免了和数据库的直接连接Mbatis自动将SQL执行结果映射到java对象(正确答案)81. 在数据库操作中,事务的特性不包括下列原子性一致性高效性(正确答案)持久性82. 在MyBatis中,以下双方属于多对多关系的是权限-角色(正确答案)用户-银行卡用户-手机号学生-语文成绩83. 在MyBatis中,在使用MyBatis的时候,除了可以使用@Param注解来实现多参数不同类型入参,还可以用()传递多个参数值用Map对象可以实现传递多参数值(正确答案)用List对象可以实现传递多参数值用数组的方式传递用Set集合的方式传递84. 在MyBatis中,不属于MyBatis二级缓存默认效果有哪些映射语句文件中的所有select语句会被缓存映射语句文件中的所有insert、update、delete语句会刷新缓存缓存会使用LRU算法收回未设置缓存时间间隔,缓存会以任意时间顺序刷新(正确答案)85. 在MyBatis中,关于MyBatis映射器,说法错误的是()映射器定义了数据访问接口映射器是接口映射器中的方法是抽象方法,需要实现(正确答案)映射器类似于DAO接口,但仅需声明其中的方法,编程人员无须编码实现86. 在MyBatis中,以下哪项不属于MyBatis框架的优点易于上手和掌握解除sql与程序代码的耦合不支持级联更新(正确答案)提供xml标签,支持编写动态sql87. 在MyBatis中,以下属于MyBatis缓存级别的是【选两项】一级缓存(正确答案)二级缓存(正确答案)三级缓存无缓存88. 在MyBatis中,Mybatis的表关联的映射描述错误的是()一对多时可以使用collection标签进行关联映射多对一时可以使用association标签进行关联映射一对一时可以使用association标签进行关联映射mybatis不能处理多对多关联(正确答案)89. 在MyBatis中,mapper.xml的SQL语句中的占位符${}和#{}描述错误的是()一般会采用#{},#{}在mybatis中,最后会被解析为?,其实就是Jdbc的PreparedStatement中的?占位符,它有预编译的过程,可以防止SQL注入#{}中的变量名可以任意,如果入参类型是pojo,比如是Student类那么#{name}表示取入参对象Student中的name属性${}取对象的属性使用的是OGNL(Object Graph Navigation Language)表达式${}不会做类型解析,但不存在SQL注入的风险(正确答案)90. 在MyBatis中,MyBatis是那一层的框架业务逻辑层表示层持久层(正确答案)数据库层91. 在MyBatis中,关于MyBatis中传递多参数的情况,如果参数封装成Java Bean,应该怎么获取属性值通过#{参数名.属性名}通过#{arg0}来获得通过#{arg1}来获得通过#{成员属性}来获得(正确答案)92. 在MyBatis中,关于MyBatis中传递多参数的情况,如果参数封装成了Student 类,那么在Mapper.xml中获取数据,应该怎么操作条件获取数据可以通过#{属性名}来获得(正确答案)条件获取数据可以通过#{arg0}来获得条件获取数据可以通过#{arg1}来获得条件获取数据可以通过#{属性名}或者#{arg0}来获得93. 在MyBatis中,以下对MyBatis主配置文件描述错误的是()它主要提供数据库连接信息引用sql映射文件在其中定义具体的sql映射信息(正确答案)在其中定义了影响MyBatis行为的设置及其相关的属性信息94. 在MyBatis中,什么是DAO模式数据库访问对象(正确答案)关系对象对象持久化业务逻辑处理95. 在MyBatis中,持久层设计要考虑的范畴有哪些【选两项】数据存储逻辑分离(正确答案)数据访问底层实现的分离(正确答案)界面操作的易用性UI设计和数据库搭配96. 在MyBatis中,MyBatis如何执行批处理使用BatchExecutor完成批处理(正确答案)使用SimpleExecutor完成批处理任一executor均可实现无法进行批处理97. 在MyBatis中,不同的XML映射文件,id是否可以重复任何情况都不能重复不管陪不配置namespace,id均不可以重复如果配置namespace,id可以重复(正确答案)以上均不对98. 在MyBatis 中,映射器是中最重要、最复杂的组件,它由一个接口和对应的XML 文件(或注解)组成。
hibernate考试题及答案
hibernate考试题及答案一、单选题(每题2分,共10分)1. Hibernate中的对象状态有以下几种?A. 瞬时态B. 持久态C. 游离态D. 以上都是答案:D2. Hibernate中哪个接口负责事务管理?A. SessionB. TransactionC. SessionFactoryD. Configuration答案:B3. 在Hibernate中,以下哪个注解用于指定类与表的映射关系?A. @EntityB. @TableC. @ColumnD. @Id答案:A4. Hibernate中的延迟加载技术是通过以下哪个接口实现的?A. SessionB. CriteriaC. QueryD. StatelessSession答案:D5. Hibernate中,以下哪个是正确的主键生成策略?A. IDENTITYB. SEQUENCEC. AUTOD. 以上都是答案:D二、多选题(每题3分,共15分)1. Hibernate中支持的关联关系有哪些?A. 一对一B. 多对一C. 多对多D. 一对多答案:A, B, C, D2. 在Hibernate中,哪些是有效的缓存策略?A. 一级缓存B. 二级缓存C. 查询缓存D. 会话缓存答案:A, B, C3. Hibernate中,哪些是有效的查询方式?A. HQL查询B. SQL查询C. Criteria查询D. Query查询答案:A, B, C, D4. Hibernate中,以下哪些是有效的集合映射类型?A. SetB. ListC. BagD. Map答案:A, B, C, D5. 在Hibernate中,以下哪些是有效的事务管理策略?A. 声明式事务B. 编程式事务C. 自动提交事务D. 手动提交事务答案:A, B三、判断题(每题1分,共5分)1. Hibernate是一个半自动ORM框架。
(错误)2. Hibernate支持多数据库方言。
MyBatis试题
MyBatis试题
在使⽤MyBatis的时候,除了可以使⽤@Param注解来实现多参数⼊参,还可以⽤()传递多个参数值。
(选择⼀项)
A.⽤Map对象可以实现传递多参数值
B.⽤List对象可以实现传递多参数值
C.⽤数组的⽅式传递
D.⽤Set集合的⽅式传递
正确答案是A
除了@Param外。
多参数还可以是Map。
因为:深⼊Mybatis源码发现,Mybatis参数类型就是Map,是通过Key,value进⾏传值
(选择⼆项)
A:JDBC
B:MANAGED
C:POOLED
D:JNOI
正确答案是AB
MyBatis有两种事务管理器类型是JDBC和MANAGED
(选择⼀项)
A:SqlSessionFactoryBuilder实例的最佳作⽤域是⽅法范围,也就是定义为本地⽅法变量既可
B:SqlSessionFactory实例的⽣命周期应该在整个应⽤的执⾏期间都存在
C:SqlSession实例时线程不安全的,因此其⽣命周期应该是请求或⽅法范围
D:SqlSession实例通常定义为⼀个类的静态变量
正确答案是D
⼀般SqlSession实例不提倡定义为⼀个类的静态变量,只因为SqlSession是线程不安全,实例不能共享的;⽽SqlSessionFactory实例建议定义为静态变量。
(选择⼆项)
A:_int
B:Integer
C:int
D:String
正确答案是AC。
Hibernate机试试卷1
《使用Hibernate开发租房系统》内测机试(三)题目:图书信息管理系统一、语言和环境A、实现语言JavaB、环境要求JDK1.6、MyEclipse、Tomcat7.*、Oracle11g二、功能要求使用Hibernate实现图书信息管理功能,Oracle11g作为后台数据库,该系统包括查看图书信息列表和新增图书信息两大功能,具体要求如下:打开图书信息列表页面,以列表方式显示所有图书信息,列表使用隔行变色样式,并实现分页功能。
程序运行界面如图-1所示。
图-1在图书信息列表页面下面,有新增图书超链接,进入新增图书信息页面。
如图-2所示。
在新增图书页面中,图书类别设置为下拉列表选项,下拉列表的值为“选择所属分类、计算机/软件、小说/文摘、杂项”,默认下拉列表框显示为“选择所属分类”。
图-2点击“增加图书”按钮后。
提交表单时使用JavaScript对图书的名称、作者以及购买时间和图书分类进行验证,如图-3,图-4所示。
图-3图-4图书信息填写完整后,点击增加按钮,进行图书信息增加,显示添加后的图书信息,列表右上方显示“添加图书信息成功”的提示语句。
如图-5所示。
图-5三、数据库设计数据库表名称及要求:四、具体要求及推荐实现步骤1、建立数据表BookManage,创建序列,添加测试数据(至少3条)2、使用MyEclipse创建Web项目BookManage,导入数据库驱动包和Hibernate的jar包,在源文件夹中创建3个包:entity包用于存放持久化类,dao包用于存放数据访问接口和实现类,biz包用于存放业务逻辑接口和实现类,web包用于存放Servlet类。
3、创建持久化类和对应的映射文件A、编写BookManage表对应的持久化类BookManageB、编写持久化类的映射文件BookManage.hbm.xml4、创建DAO接口及其实现类。
在实现类中使用Hibernate完成相关数据库操作。
软件开发mybatis技术(习题卷4)
软件开发mybatis技术(习题卷4)第1部分:单项选择题,共76题,每题只有一个正确答案,多选或少选均不得分。
1.[单选题]为了防止出现select * from dept where的查询语句,描述正确是:A)去掉1=1B)改成where 1=0C)改成<where><where>的格式D)删除where答案:C解析:2.[单选题]<association javaType="entity.Dept" property="dept" column="deptno">标签中” property”的作用A)配置对应表中的列名B)配置对应的实体类C)配置对应的测试类D)配置对应的实体类中的成员变量答案:D解析:3.[单选题]MyBatis是那一层的框架A)业务逻辑层B)表示层C)持久层D)数据库层答案:C解析:4.[单选题]applicationContext.xml配置文件中开启注解方式管理AOP事务的是A)</property>B)<context:component-scan base-package="com.mhys"></context:component-scan>C)<tx:annotation/>D)<tx:annotation-driven/>答案:D解析:5.[单选题]以下哪些列类型不属于数值型数据A)doubleB)integerC)setD)float答案:C解析:6.[单选题]Mybatis中使用自动映射就是通过()让Mybatis自动将值匹配到对应字段上D)id答案:C解析:7.[单选题]在Mybatis中,下列关于ResultType说法错误的是()A)resultType表示返回值类型为:完整类名或别名,也允许使用基本的数据类型,包括String 、 int类型B)resultType和resultMap的数据结构是一样的,都是Map结构C)如果PoJo的属性名与SQL语句查询出来的字段名不一致的话,也可使用resultType来进行结果的自动映射D)resultType和resultMap不能同时使用答案:C解析:8.[单选题]以下配置代码中错误在那一行? <bean id="userService"class="erService"></bean><bean id="orderService"class="com.mhys.demo.order.OrderService"></bean><bean id="myAdvice"class="com.mhys.demo.advice.MyAdvice"></bean> --1<aop:config><aop:pointcut expression="execution(* com.mhys.demo..*Service.add*(..))"id="pointCut"/> --2<aop:aspect ref="userService"> --3<aop:after method="afterAdvice" pointcut-ref="pointCut"/>--4</aop:aspect></aop:config>A)1B)2C)3D)4答案:C解析:9.[单选题]在Spring中,<context:component-scan base-package="com.mhys.demo"></context:component-scan>,该配置的作用是( )A)开启事务代理B)开启注解扫描C)配置前置通知D)配置后置通知答案:B解析:10.[单选题]对Spring事务管理说明错误的是?A)事务就是对一系列的数据库操作B)Spring的声明式事务通常是指在配置文件中对事务进行配置声明C)它是通过SpringMvc Proxy帮你做代理,自己不用额外的写代码,只要在Spring配置文件中声明即可D)使用TransactionMananger进行管理,可以通过Spring的注入来完成答案:C解析:11.[单选题]关于@PostConstruct说法错误的是?A)在方法上加该注解会在项目启动的时候执行该方法B)可用于加载数据字典C)可用于定时任务D)在方法上加该注解会在项目结束的时候执行该方法答案:DA)</property>B)<context:component-scan base-package="com.mhys"></context:component-scan>C)</property>D)</property>答案:B解析:13.[单选题]使用jdbc方式返回主键自增的值需要设置<insert>标签的什么属性()A)idB)parameterTypeC)keyPropertyD)useGeneratedKeys答案:D解析:14.[单选题]使用MyBatis Generator自动工具生成的文件不包含( )A)EntityB)DAO类C)SqlMap.xmlD)Mapper XML答案:A解析:15.[单选题]( )什么是MybatisA)“半自动化”的orm实现B)“全自动化”的orm实现C)“无自动化”的orm实现D)容器框架答案:A解析:16.[单选题]在Spring AOP中,<aop:after-returning method="afterReturningAdvice"pointcut-ref="pointCut"/>以上配置中afterReturningAdvice是指( )A)前置增强方法B)环绕增强方法C)后置增强方法D)异常增强方法答案:C解析:17.[单选题]JdbcTemplate常用的删除方法A)insertB)updateC)deleteD)query答案:B解析:C)基础支撑层D)表现层答案:D解析:19.[单选题]在Spring MVC中,以下关于视图解析器配置文件,横线处应该填写( ) <beanclass="org.springframework.web.servlet.view.InternalResourceViewResolver"> </property></property></bean>A)*/B)prefixC)srefixD)答案:B解析:20.[单选题]一对多的关联查询,实体类Dept和Emp类描述正确的是:A)private List<Dept>deptsB)private List<Emp>emps;C)private Emp empD)private Dept dept答案:B解析:21.[单选题]关于Spring 的事务隔离说明错误的是?A)ISOLATION_DEFAULT:用底层数据库的设置隔离级别,数据库设置的是什么我就用什么;B)SOLATIONREADUNCOMMITTED:未提交读,最低隔离级别、事务未提交前,就可被其他事务读取(会出现幻读、脏读、不可重复读);C)ISOLATIONREADCOMMITTED:提交读,一个事务提交后才能被其他事务读取到(会造成幻读、不可重复读),SQL server 的默认级别;D)ISOLATION_SERIALIZABLE:序列化,代价最高最可靠的隔离级别,该隔离级别能防止脏读、不可重复读、幻读。
Spring,hibernate,struts的面试笔试题(含答案)
组成 Spring 框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。每个模块的功能如下:
பைடு நூலகம்
☆ 核心容器:核心容器提供 Spring 框架的基本功能。核心容器的主要组件是 BeanFactory,它是工厂模式的实现。BeanFactory 使用控制反转 (IOC) 模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。
工作机制:
Struts的工作流程:
在web应用启动时就会加载初始化ActionServlet,ActionServlet从
struts-config.xml文件中读取配置信息,把它们存放到各种配置对象
当ActionServlet接收到一个客户请求时,将执行如下流程.
-(1)检索和用户请求匹配的ActionMapping实例,如果不存在,就返回请求路径无效信息;
☆ Spring MVC 框架:MVC 框架是一个全功能的构建 Web 应用程序的 MVC 实现。通过策略接口,MVC 框架变成为高度可配置的,MVC 容纳了大量视图技术,其中包括 JSP、Velocity、Tiles、iText 和 POI。
Spring 框架的功能可以用在任何 J2EE 服务器中,大多数功能也适用于不受管理的环境。Spring 的核心要点是:支持不绑定到特定 J2EE 服务的可重用业务和数据访问对象。毫无疑问,这样的对象可以在不同 J2EE 环境 (Web 或 EJB)、独立应用程序、测试环境之间重用。
4. 说下Hibernate的缓存机制
1. 内部缓存存在Hibernate中又叫一级缓存,属于应用事物级缓存
2. 二级缓存:
a) 应用及缓存
b) 分布式缓存
软件开发mybatis技术(习题卷2)
软件开发mybatis技术(习题卷2)第1部分:单项选择题,共76题,每题只有一个正确答案,多选或少选均不得分。
1.[单选题]Mybatis中session.update()方法的作用A)添加B)修改C)删除D)查询答案:B解析:2.[单选题]@Around注解的作用是?A)环绕增强B)后置增强C)前置增强D)后置代理答案:A解析:3.[单选题]SqlSession通过什么方法提交事务A)commitB)rollbackC)savepointD)close答案:A解析:4.[单选题]Spring中用于修饰持久层Dao组件的注解最为规范的是( )A)@ControllerB)@ComponentC)@ServiceD)@Repository答案:D解析:5.[单选题]Mybatis映射文件配置的根标签为:A)environmentsB)configurationC)mapperD)Mappers答案:C解析:6.[单选题]Mybatis 的主配置文件中, dataSource的type类型不包含答案:C解析:7.[单选题]要使用Spring MVC的表单标签库,必须在JSP页面的开头处声明一下______指令A)taglibB)importC)includeD)page答案:A解析:8.[单选题]以下哪项不属于JDBC连接数据库步骤之一A)加载JDBC驱动程序B)提供JDBC连接的URLC)创建数据库连接D)不需要Statement对象直接执行sql语句答案:D解析:9.[单选题]关于mybatis缓存的描述错误的是()A)一般提到Mybatis缓存的时候,都是指二级缓存B)一级缓存默认会启用C)一级缓存不能控制D)二级缓存不能控制答案:D解析:10.[单选题]以下哪项不属于MyBatis的APIA)SqlSessionFactoryBuilderB)SqlSessionFactoryC)ExecutorD)SqlSession答案:C解析:11.[单选题]下列那个选项属于事务管理器A)TransactionManagerB)DataSourceC)QueryForObjectD)CALL答案:A解析:12.[单选题]下列( )不属于 MyBatis全局配置文件中的标签A)settingsB)selectC)plugins13.[单选题]SQLMapConfig.xml中配置不包括哪些内容()A)pluginsB)settingsC)typeAliasesD)id答案:D解析:14.[单选题]在MyBatis中对结果集的配置使用的标签是以下( )A)<result>B)<resultMap>C)<map>D)<collection>答案:B解析:15.[单选题]配置Mybatis Generator时,要生成数据库内所有表<table>标签中的tableName应该设置成什么()A)!B)#C)%D)$答案:C解析:16.[单选题]动态SQL 使用IF时,如果入参为Emp 要使用其属性部门dept属性的deptNo时,正确的判断为A)<if test="dept!=null and dept.deptNo>0"> and d.deptno = #{dept.deptNo} </if>B)<if test=" dept.deptNo>0"> and d.deptno = #{dept.deptNo} </if>C)<if test="dept!=null and dept.deptNo>0"> and d.deptno = #{deptNo} </if>D)<if test="dept!=null "> and d.deptno = #{dept.deptNo} </if>答案:A解析:17.[单选题]@Transactional注解一般放在那个层A)业务层B)数据层C)控制层D)其它答案:A解析:18.[单选题]下列哪个形式不能提供给SqlSessionFactoryBuilder 的Build方法A)InputStream(字节流)B)Reader(字符流)C)Configurantion(类)D)HashMap答案:D解析:B)定义切入点C)定义切面D)定义织入对象答案:B解析:20.[单选题]在mybatis3动态SQL中,没有使用下列()标签A)forB)ifC)chooseD)where答案:A解析:21.[单选题]在 MyBatis中调用SqlSessionFactoryBuilder的哪个方法用于获取SqlSession对 象( )A)getSession()B)openSession()C)session()D)showSqlSession()答案:B解析:22.[单选题]下列说法错误的是?A)Spring、Spring MVC和Mybatis,是标准的MVC设计模式B)Spring实现业务对象管理C)Mybatis作为数据对象的持久化引擎D)Spring是一个开源框架,Spring是一个高耦合的控制反转(IoC答案:D解析:23.[单选题]下列不属于Spring模块的是?A)spring coreB)spring contentC)spring WebD)spring dao答案:B解析:24.[单选题]mybatis是一种_____的ORM实现。
Mybatis相关试题
Mybatis相关试题
1、MyBatis有两种事务管理器类型,分别是()
A:JDBC
B:MANAGED
C:POOLED
D:JBDI
正确答案:AB
试题分析:
在 MyBatis 中有两种事务管理器类型(也就是 type=”[JDBC|MANAGED]”): JDBC – 这个配置直接简单使⽤了JDBC 的提交和回滚设置。
它依赖于从到的连接来管理事务范围。
MANAGED – 这个配置⼏乎没做什么。
它从来不提交或回滚⼀个连接。
容器来管理事务的整个⽣命周期(⽐如 Spring 或 JEE应⽤服务器的上下⽂情况下它会关闭连接。
然⽽⼀些容器并不希望这样,因此如果你需要从连它,将 closeConnection 属性设置为 false。
2、MyBatis中关于properties说法错误的是()
A:<properties> 元素⽤于指定⼀个需要在配置中解析使⽤的外部属性⽂件
B:当指定了resource属性,将会从classpath下⾯搜索属性⽂件
C:当指定了url属性,⽤于指定⼀个属性⽂件在⽂件系统上的特定位置
D:resource属性和url属性是必须的属性,并且可以同时配置
正确答案:D
试题分析:
resource属性和url属性是必须的属性,但两者不能同时配置
3、以下属于MyBatis内置类型别名的是()
A:_int
B:Integer
C:int
D:String
正确答案:AC
试题分析:。
软件开发mybatis技术(习题卷3)
软件开发mybatis技术(习题卷3)第1部分:单项选择题,共76题,每题只有一个正确答案,多选或少选均不得分。
1.[单选题]<aop:after-returning/>的作用是?A)定义引介增强B)定义环绕增强C)定义前置增强D)定义后置增强答案:D解析:2.[单选题]Mybatis中<select id="findAll" resultType="entity.Emp">标签中的”resultType”作用A)设置实体类类型B)设置返回结果集类型C)设置自定义返回结果集类型D)设置参数类型答案:B解析:3.[单选题]@ResponseBody说明正确的是?A)可用于类或方法上B)用于类上,则表示类中的所有响应请求参数都是jsonC)注解实现接收 http 请求的 json 数据,将 json 转换为 java 对象D)注解实现将 conreoller 方法返回对象转化为 json 对象响应给客户答案:D解析:4.[单选题]@AfterReturning注解的作用是?A)最终增强B)环绕增强C)前置增强D)后置增强答案:D解析:5.[单选题]MyBatis中对结果集的配置使用的标签是以下( )A)<result>B)<resultMap>C)<map>D)<collection>答案:B解析:6.[单选题]以下哪种标签可以实现分模块配置?A)<import>B)<factory-bean>C)<scope>D)<autowire>答案:A解析:7.[单选题]Mybatis SQL映射文件中,SQL语句中使用什么符号传入参数可能导致SQL注入A)@B)#C)$D)&答案:C解析:8.[单选题]在数据库操作中,事务的特性不包括下列A)原子性B)一致性C)高效性D)持久性答案:C解析:9.[单选题]在Spring MVC中,在横线处填写( )可以实现重定向@RequestMapping("/toJump") public String skipTest(){ return "_______:/jump.do"; }A)skipB)forwardC)redirectD)to答案:C解析:10.[单选题]在MyBatis映射器中,使用以下( )标签映射实体信息的删除A)insertB)selectC)deleteD)update答案:C解析:11.[单选题]33.mybatis的SelectBuilder()应该以____方法开始,以调用SQL()结束。
软件开发mybatis技术(试卷编号121)
软件开发mybatis技术(试卷编号121)1.[单选题]<aop:after-returning method="afterReturningAdvice"pointcut-ref="pointCut"/>以上配置中afterReturningAdvice是指?A)前置增强方法B)环绕增强方法C)后置增强方法D)异常增强方法答案:C解析:2.[单选题]( )什么是MybatisA)“半自动化”的orm实现B)“全自动化”的orm实现C)“无自动化”的orm实现D)容器框架答案:A解析:3.[单选题]以下不属于事务的特性的是( )A)原子性B)一致性C)隔离性D)临时性答案:D解析:4.[单选题]以下哪项不属于xml映射文件标签A)selectB)resultmapC)parameterD)include答案:C解析:5.[单选题]在Spring中,<context:component-scan base-package="com.mhys.demo"></context:component-scan>,该配置的作用是( )A)开启事务代理B)开启注解扫描6.[单选题]mapper.xml的SQL语句中的占位符${}和#{}描述错误的是()A)一般会采用#{},#{}在mybatis中,最后会被解析为?,其实就是Jdbc的PreparedStatement中的占位符,它有预编译的过程,可以防止SQL注入B)#{}中的变量名可以任意,如果入参类型是pojo,比如是Student类那么#{name}表示取入参对象Student中的name属性C)${}取对象的属性使用的是OGNL(Object Graph Navigation Language)表达式D)${}不会做类型解析,但不存在SQL注入的风险答案:D解析:7.[单选题]用foreach标签实现对象遍历,当有多个参数时,可使用如下哪个注解为参数进行指定名称A)@setB)@MapC)@ParamD)@value答案:C解析:8.[单选题]在Mybatis中,想实现批量删除的动态sql的标记可选择A)choose(when/otherwise)B)setC)whereD)foreach答案:D解析:9.[单选题]MyBatis映射器分为三类,如下所示不包括的是( )A)纯xml映射器,利用SqlSession的各种方法实现增删改查B)先定义接口映射器,然后再定义xml映射器,其中xml映射器的namespace应该对应接口映射器的类名C)注解+接口映射器的混合形式D)映射器中的方法是抽象方法,需要实现答案:D解析:10.[单选题]以下哪些列类型不属于数值型数据解析:11.[单选题]以下哪项不属于Mybatis全局配置文件中的标签A)propertiesB)dataC)pluginsD)typealiases答案:B解析:12.[单选题]以下说法不正确的是A)Spring是一个轻量级框架,大大简化了java企业级开发B)Spring是企业级应用开发的一站式选择,可以取代其他已有框架C)Spring框架最基本的部分是Spring Core模块,提供Ioc和依赖注入D)Spring AOP是基于Spring Core的符合规范的面向切面编程的实现答案:B解析:13.[单选题]不属于spring mvc 的组件是?A)HandlerMappingB)ControllerC)ViewResolverD)Model答案:D解析:14.[单选题]Mybatis 增删改接口为public void update(Emp emp); public void insert(Emp emp); public void delete(int empno); 时,在测试时,能否直接定义返回值类型接受增删改操作的条数。
mybatis常见面试、笔试题汇总
mybatis常见⾯试、笔试题汇总mybatis常见⾯试、笔试题汇总1、#{}和${}的区别是什么? 答:${}是Properties⽂件中的变量占位符,它可以⽤于标签属性值和sql内部,属于静态⽂本替换,⽐如${driver}会被静态替换为com.mysql.jdbc.Driver。
#{}是sql的参数占位符,Mybatis会将sql中的#{}替换为?号,在sql执⾏前会使⽤PreparedStatement的参数设置⽅法,按序给sql的?号占位符设置参数值,⽐如ps.setInt(0, parameterValue),#{}的取值⽅式为使⽤反射从参数对象中获取item对象的name属性值,相当于param.getItem().getName()。
#{}是预编译处理,${}是字符串替换。
Mybatis在处理#{}时,会将sql中的#{}替换为?号,调⽤PreparedStatement的set⽅法来赋值;Mybatis在处理${}时,就是把${}替换成变量的值。
使⽤#{}可以有效的防⽌SQL注⼊,提⾼系统安全性。
2、Xml映射⽂件中,除了常见的select|insert|updae|delete标签之外,还有哪些标签?注:这道题出⾃京东⾯试官。
答:还有很多其他的标签,<resultMap>、<parameterMap>、<sql>、<include>、<selectKey>,加上动态sql的9个标签,trim|where|set|foreach|if|choose|when|otherwise|bind等,其中<sql>为sql⽚段标签,通过<include>标签引⼊sql⽚段,<selectKey>为不⽀持⾃增的主键⽣成策略标签。
3、最佳实践中,通常⼀个Xml映射⽂件,都会写⼀个Dao接⼝与之对应,请问,这个Dao接⼝的⼯作原理是什么?Dao接⼝⾥的⽅法,参数不同时,⽅法能重载吗?注:这道题也是出⾃京东⾯试官。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ACCP7.0内部测试注意:1、请勿在试卷上留下笔迹2、交卷时试题和答案均要上交《使用Hibernate开发租房系统》内部测试笔试题一、选择题(共25题,每题2.5分,选择一项或多项,漏选错选不得分)1.在Hibernate中,以下关于主键生成器说法错误的是()。
A.increment可以用于类型为long、short或byte的主键B.identity用于如SQL Server、DB2、MySQL等支持标识列的数据库C.sequence用于如Oracle、SQL Server等支持序列的数据库D.native由Hibernate根据底层数据库自行判断采用何种主键生成策略,是由使用的数据库生成主键的值2.在Hibernate中,关于脏检查和刷新缓存说法正确的是()。
A.当事务提交时,会发生脏检查B.Session的flush( )方法是刷新缓存的方法C.在执行Session的commit( )方法之前不会调用Session的flush( )方法D.编写代码时,调用commit( )方法之前要调用flush( )方法3.使用HQL查询所有部门信息,以下正确的是()。
A.from DeptB.select * from cn.jbit.demo.entity.DeptC.select Dept from cn.jbit.demo.entity.Dept dD.select d from Dept d4.关于Query接口的list( )和iterate( )方法,说法正确的是()。
A.执行list( )方法,查询所有符合条件的记录B.执行iterate( )方法,查询所有符合条件的记录C.执行list( )方法,查询出所有符合条件的主键值D.执行iterate ( )方法,查询出所有符合条件的主键值5.在HQL中,关于Query接口绑定参数的方法,说法正确的是()。
A.setParameter( )方法用于绑定任意类型的参数B.setParameter( )有重载的方法C.setProperties( )有重载的方法D.setProperties( )方法用于绑定命名参数6.在Hibernate中,关于以下映射配置,说法错误的是()。
<hibernate-mapping><class name="cn.jbit.hibernatedemo.entity.Emp" table="EMP" schema="scott"> <id name="empNo" column="EMPNO" type="ng.Integer"><generator class="assigned"/></id><property name="salary" type="ng.Double" column="SAL"/><property name="hireDate" type="java.util.Date"/><many-to-onename="dept"column="DEPTNO"class="cn.jbit.hibernatedemo.entity.Dept"/></class></hibernate-mapping>A.此配置信息描述了cn.jbit.hibernatedemo.entity.Emp类和EMP表的映射B.描述的是scott用户的EMP表C.<many-to-one>标签中的name属性值dept是cn.jbit.hibernatedemo.entity.Emp类的属性名D.<many-to-one>标签中的column属性值DEPTNO是dept表的主键名7.在Hibernate映射文件中,关于inverse属性说法正确的是()。
A.inverse属性有两个值:true、falseB.<many-to-one>标签有inverse属性C.<set>标签有inverse属性D.inverse属性用于指定维护关联关系的那一方8.在Hibernate映射文件中,关于延迟加载配置说法错误的是()A.<class>标签中lazy属性可选值:true、falseB.<set>标签中lazy属性可选值:true、proxy和no-proxyC.< set>标签中lazy属性可选值:true、extra和falseD.<many-to-one>标签中lazy属性可选值:proxy、true和false9.在Hibernate映射文件中,关于<component>标签说法正确的是()。
A.<component>标签用来映射组件类B.<component>标签通过<parent>指定组件类所属的整体类C.<component>标签通过<property>指定组件类的属性D.<component>标签有id、name、class属性10.MyBatis指定配置文件的根元素使用的是()。
A.<sqlMapConfig>B.<configuration>C.<setting>D.<environments>11.在MyBatis中,ExecutorType的值包括()。
A.ExecutorType.SIMPLEB.ExecutorType.BATCHC.ExecutorType.EXECUTED.ExecutorType.REUSE12.关于Hibernate缓存说法错误的是()。
A.Hibernate缓存一般分为三类:一级缓存、二级缓存和查询缓存B.Session的evict( )方法用于从缓存中清除指定的持久化对象C.Session的clear( )方法用于刷新缓存D.Session的flush( )方法用于从缓存中清除所有持久化对象13.关于HQL的连接查询,说法错误的是()。
A.inner join 或join用于内连接B.inner join fetch或join fetch用于迫切内连接C.left outer join fetch 或left join fetch用于迫切左外连接D.right outer join fetch 或right join fetch用于迫切右外连接14.关于Hibernate批量处理数据说法正确的是()。
A.使用HQL进行批量操作,Hibernate不支持批量插入B.使用JDBC API进行批量操作,SQL语句中涉及的数据会被加载到Session缓存,占用内存空间C.使用Session进行批量操作,数据会被加载到Session缓存,需注意刷新并清空缓存D.使用Session进行批量操作,适用于需要通过代码处理的复杂的业务逻辑场景15.关于HQL的聚合函数使用,说法正确的是()。
A.select count(*) from Dept d用于统计部门个数B.select sum(e.salary) from Emp e用于汇总员工工资总额C.select max(e.hiredate) from Emp e用于找到最新入职的员工的入职时间D.select min(e.hiredate) from Emp e用于找到最早入职的员工的入职时间16.关于HQL子查询中,说法错误的是()。
A.size( )或size用于获取集合中元素的数目B.elements( )用于获取集合中的所有元素C.any关键字用于子查询语句返回所有记录D.in关键字与“=any”意思相同17.关于原生SQL查询和命名查询,说法正确的是()。
A.执行原生SQL,需使用SQLQuery对象B.SQLQuery是一个接口,继承了Query接口C.Hibernate支持在映射文件中定义字符串形式的查询语句,这样的语句是命名查询语句D.命名查询语句只能是HQL语句,不能是SQL语句18.在Hibernate中,关于映射Oracle中的BLOB和CLOB类型的方法,说法正确的是()。
A.CLOB类型只能映射为ng.StringB.BLOB类型可以映射为java.sql.BlobC.BLOB类型可以映射为byte[]D.CLOB类型可以映射为ng.String或java.sql.Clob19.在Hibernate中,关于Criteria运算方法说法错误的是()。
A.Restrictions.ge( )方法等同于HQL运算符>=B.Restrictions.like("empName","s",MatchMode.START)方法用于查找姓名以s开头的员工C.Restrictions.disjunction( )方法用于指定多个逻辑与D.Restrictions.in( )方法只能用于数组20.在Hibernate中,关于注解说法正确的是()。
A.@Id用于声明持久化类的唯一标识,对应于数据表中的主键B.@Cloumn用于将属性映射到列C.@Transient用于忽略该属性,需要持久化到数据库D.@GeneratedValue用于定义主键值的生成策略21.下列关于同义词的说法,选项正确的是()。
A.只能为表创建同义词,不能为视图创建同义词B.同义词只能用于引用其他用户创建的表C.公有同义词和私有同义词对同一个表可以同名D.使用Drop Synonym语句删除同义词的同时,同义词引用的表也无效22.评估CREATE TABLE 语句:CREATE TABLE products(product_id NUMBER(6) CONSTRAINT prod_id_pk PRIMARY KEY,product_name V ARCHAR2(15))下列关于prod_id_pk选项正确的是()。
A.可以被创建,但需要唯一索引用手工创建B.可以被创建并且会自动创建唯一索引C.可以被创建并且会自动创建非唯一索引D.可以被创建但不可以使用,因为没有指定索引23.下列创建序列的SQL语句:CREATE SEQUENCE seq1START WITH 100INCREMENT BY 10MINV ALUE 1MAXV ALUE 200CYCLENOCACHE;序列seq1的生成的值已经到最大值200,再执行下列语句:SELECT seq1.nextval FROM dual;下列显式正确值的选项是()。