java面试总结(5)

2019-04-16 23:45

3:identity

----主要适用于sqlserver数据库的自动增长列的表。 4:native

----表示根据不同的数据库采用不同的主键生成策略。

6.请指出session的get和load方法、save和saveOrUpdate方法、clear和flush方法的区别? get():先检查缓存(session),没有该对象立马发sql,如果对象不存在返回null,使用的时候则NullPointerException

load():返回代理对象($$,stu.getClass()),需要用到的时候先检查缓存,没有才发sql,如果对象不存在直接异常(LazyInitializationException),session关闭后再用到也将异常 no session

get()较常用,load()不常用

save():不管怎样都保存,即使有和数据库相同的id

saveOrUpdate():对象存在id则update,如果数据库有id则成功update没有对应的id则异常,对象没有id则save

clear():强制清空缓存,让对象变成瞬时状态或者游离状态

flush():默认强制缓存和数据库同步一下,对象变为持久状态,但没有提交还可以回滚session没有关闭

☆6、hiberante中的对象关联关系有哪几种?MyBatis怎么配置关联关系? 1、单向一对一关联映射

2、单向多对一关联映射(many-to-one) 3、单向一对多关联映射(one-to-many) 4、单向多对多映射(many-to-many) 5、双向一对一关联映射 6、双向一对多关联映射 7、双向多对多关联映射

mybatis:可以使用嵌入式,引入式,继承式

一对多的时候在一的一方设置collection,多的一方设置association 多对一的时候在多的一方设置association,一的一方设置collection 多对多的时候,使用中间表实体映射,拆成一对多和多对一

7、hibernate联接查询有哪几种,迫切和非迫切有什么区别? 1.默认查询的情况: 2.迫切左外连接 3.左外连接 4.迫切内连接

5.内连接(包含隐式内连接) 6.右外连接

迫切联接和非迫切联接返回类型不同,但都是持久化状态,无论是否懒加载都会加载关联对象!

8、请描述下list()方法和iterate()方法有什么区别?

iterate:先取所有需要的id,根据id查询对应的记录,第二次iterate先看缓存有木有,木有才发sql

list:直接取所有记录,即使同一事务中第二次list还会发sql去数据库取,没有利用一级缓存

☆9、请描述下hibernate的缓存机制及事务隔离机制?[文思海辉电话面试 中信] 缓存机制:分类:

1.一级缓存:session缓存,事务范围的缓存

☆2.二级缓存:sessionFactory的缓存,事务隔离级别的缓存(经常被访问、改动不大、数量有限、不是很重要,允许出现偶尔并发的数据)

3.查询缓存(应用程序运行时经常使用的查询语句,很少对查询的数据进行增、删、改操作)

缓存算法:LRU最近很少使用 LFU最少被使用 FIFO先进先出

作用:降低应用程序对数据库的访问频率,提高应用程序的运行效率

事务隔离机制:当事务并发访问有可能造成:脏读、不可重复读、幻读,会严重影响数据库和用户体验,通过设置事务隔离级别,

或者利用Hibernate提供的两种锁机制,悲观锁和乐观锁来解决

10、谈谈你对xml配置文件中的fetch和inverse的理解? fetch是抓取策略:

select是在查询的时候先查询出一个实体,然后在根据一个查询出多个实体,产生1+N现象

join是在查询的时候使用外连接进行查询

subselect发送一条select语句抓取在前面查询到的所有实体对象的关联集合 实现懒加载设置lazy=\后,一定得设置fetch属性等于select

inverse:标记由哪一方来维护关联关系,双向关联中,默认值为false,如果设置为true,则表示由对方维护两者之间的关联关系

11、Hibernate是如何延迟加载[华榭科技有限公司]

***************Mybatis********

☆1.Mybatis理解[逑美科技有限公司]

mybatis是一个可以自定义SQL 存储过程 和高级映射的轻量级的持久层框架,将面向接口编程的思想贯穿整个系统应用

2.mybatis框架原理 1.加载配置并初始化 2.接受调用请求 3.处理操作要求 4.返回处理结果

优缺点:

优点:简单 实用 缺点:不成熟

☆3.性能优化:解决1+N问题:用到哪个对象才发对应的sql 1、使用懒加载

配置:

只要用到对象,不管是否用到关联对象都发1+N,只有什么对象都不用才发一条sql 2、使用联接查询 left join ...

☆4.缓存:

一级缓存是默认开启不能关闭

mybatis中还默认开启了全局缓存(二级缓存)

缓存开启后session没有关闭执行同样的sql语句会使用缓存,如果参数改变,缓存就会失效。

实现方式:1.内置 -cache 机制

2.第三方-ehcache, oscache

☆5.对比-Mybatis和hibernate的区别和应用场景? hibernate:是一个标准ORM框架(对象关系映射)。入门门槛较高的,不需要程序写sql,sql语句自动生成了。

对sql语句进行优化、修改比较困难的。 应用场景: 适用与需求变化不多的中小型项目,比如:后台管理系统,erp、orm、oa。。

mybatis:专注是sql本身,需要程序员自己编写sql语句,sql修改、优化比较方便。mybatis是一个不完全 的ORM框架,虽然程序员自己写sql,

mybatis 也可以实现映射(输入映射、输出映射)。 应用场景: 适用与需求变化较多的项目,比如:互联网项目

☆☆Hibernate和Mybatis的区别

同: Hibernate与MyBatis都可以通过SessionFactoryBuilder由xml配置文件生成SessionFactory,然后由SessionFactory生成Session, 最后由Session来开启事务和SQL语句 都支持JDBC和事务处理

异:hibernate是全自动 Mybatis是半自动 hibernate数据库移植性大于Mybatis Mybatis更注重于SQL

hibernate拥有完整的日志系统,Mybatis则欠缺些

☆6.Mybatis中#跟$的区别?

#把传入的数据当作字符串 $传入的数据直接生成在sql里 #方式能够很大程度防止sql注入 $无法防止sql注入

7.ibatis:

开源的 轻量级的 基于java持久层的 半自动式开发框架 优点:

1、sql可以写在XML中 结构清晰 配置灵活 2、增强了后期维护性

3、执行sql后 返回的结果集自动封装 缺点:

1、只使用于小项目

2、sql写在XML中 调试不方面 3、开源的东西少 文档资料少

8.ibatis 跟mybatis的区别:

1、mybatis实现了接口绑定,使用更加方便 2、mybatis改进了对象关系映射,效率更高

3、MyBatis采用功能强大的基于OGNL的表达式来消除其他元素。 4.mybatis 增加的注解版

Ibatis跟Hibernate比较:

如果系统二次开发 Ibatis比Hibernate灵活性高 Ibatis简单易学 Hibernate相对复杂 在不同的数据库移植中 hibernate比较好

Ibatis可以进行细粒度优化 而Hibernate根据映射关系全部优化

Ibatis跟jdbc 比较:

jdbc它是一个执行Sql语句的JAVA API 是一套访问数据库标准 提供了一组接口 Ibatis也是一套数据库框架 但是把sql语句抽离了出来 底层也是JDBC

9.MyBatis使用的版本?[上海普元] MyBatis 3.3

☆10.MyBatis的标签?[德邦] 1>.insert select update delete 2>.关联关系:resultMap id result association

.映射配置:cache property 4>.

5>.调用存储过程:parameterMap

****************JPA**************************

Java Persistence API.JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系. 是 JCP 组织发布的 Java EE 标准之一.,任何声称符合 JPA 标准的框架都遵循同样的架构,提供相同的访问 API,这保证了基于JPA开发的企业应用能够经过少量的修改就能够在不同的JPA框架下运行 优点:标准化 对容器级特性的支持 简单易用,集成方便 查询能力 高级特性(支持面向对象的高级特性,如类之间的继承、多态和类之间的复杂关系)

与Hibernate相比,JPA是不是更好 JPA是规范,而Hibernate是实现

****************SpringData**************************

为了简化构建于Spring框架的应用的数据访问计数,包括非关系数据库 Map-Reduce框架 云数据服务等等,另外包括对关系数据库的访问支持

******框架-Struts2********

MVC的理解?[上海卫城企业征信有限公司]

1.Struts2的.理解

Struts 2是一个MVC框架,以WebWork框架的设计思想为核心,吸收了Struts 1的部分优点

Struts 2拥有更加广阔的前景,自身功能强大,还对其他框架下开发的程序提供很好的兼容性

☆☆struts2的优缺点(上海优驻) 优点:组件模块化、灵活、可重用,简化了基于MVC的web应用程序的开发 可对象导航

支持国际化和本地化


java面试总结(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2014-2020年中国彩色水泥市场调查与投资战略研究报告 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: