06.2、框架—其他(12题)1

preview
需积分: 0 0 下载量 145 浏览量 更新于2022-08-03 收藏 642KB PDF 举报
【知识点详解】 1. Hibernate的状态管理: Hibernate对象有三种状态:瞬时状态(Transient)、持久化状态(Persistent)和离线状态(Detached)。瞬时状态是指刚刚创建的对象,尚未与Hibernate Session关联,也没有保存到数据库中。持久化状态是指对象已被保存到数据库,并且在当前Session中存在,Session会跟踪对象的改变。离线状态则是指对象存在于数据库中,但与当前Session无关。当Session关闭时,与之关联的一级缓存也会失效,对于离线状态的对象,如果需要再次操作,需要重新加载到Session。 2. Struts工作流程: Struts是一个MVC(模型-视图-控制器)框架,其工作流程包括:客户端发起HTTP请求,请求被FilterDispatcher拦截,根据struts.xml配置找到相应的Action类和方法,通过依赖注入的方式将参数传给Action,Action执行业务逻辑和表单验证,完成后根据配置的返回结果找到对应的视图进行跳转,最后将响应返回给客户端。 3. Hibernate的一级和二级缓存: - 一级缓存:由Session提供,生命周期与Session相同,无法配置,自动开启。它以Key-Value形式存储对象,Key是对象的主键ID,Value是对象实例。一级缓存自动维护,可以通过evict()方法删除特定对象,clear()方法清空整个缓存。 - 二级缓存:作用于SessionFactory级别,可供多个Session共享。需手动开启,默认使用EhCache实现。二级缓存中数据的修改需要同步到数据库,避免并发问题。 4. Hibernate的懒加载(Lazy Loading): 懒加载是一种优化策略,当关联对象首次被访问时,才会发起数据库查询,以提高性能。它通过代理模式实现,延迟加载关联的对象,只有在真正需要时才加载数据。 5. MyBatis的批量提交: MyBatis可以通过两种方式进行批量插入: a. 使用`<foreach>`标签,遍历集合并在插入语句中生成多个值对,例如在示例中,循环遍历roleIdList并插入数据。 b. 利用ExecutorType.BATCH执行器,创建SqlSession时指定ExecutorType为BATCH,这样可以将多条SQL语句放入批处理,最后调用commit()提交,如果出现异常则rollback()回滚,确保事务一致性。 6. Session机制: Session是Web应用中用来跟踪用户状态的一种机制。在HTTP无状态的特性下,Session用于存储用户的会话信息,比如用户登录状态、购物车等。Session是由服务器生成,并通过cookie或URL重写等方式将Session ID传递给客户端。服务器根据Session ID找到对应Session中的数据。Session一般有超时设置,超时后Session将被服务器销毁。开发者可以通过HttpSession接口在Java Web应用中操作Session,如设置、获取、移除属性,以及设置Session的有效时间。
嗨了伐得了
  • 粉丝: 26
  • 资源: 290
上传资源 快速赚钱
voice
center-task 前往需求广场,查看用户热搜