摘要: 在开发中,如果某个实例的创建需要消耗很多系统资源,那么我们通常会使用惰性加载机制,也就是说只有当使用到这个实例的时候才会创建这个实例,这个好处在单例模式中得到了广泛应用。这个机制在single-threaded环境下的实现非常简单,然而在multi-threaded环境下却存在隐患。本文重点介绍惰性 阅读全文
posted @ 2016-09-25 17:20 吴玄坤 阅读(460) 评论(0) 推荐(0) 编辑
摘要: 一、定义: 二级缓存是进程或集群范围内的缓存,可以被所有的Session共享,是可配置的插件 二、二级缓存原理图 解析:每次从二级缓存中取出的对象,都是一个新的对象。 三、配置步骤如下: 同理:以员工类和部门类为例 ① 引入jar包 ② 关键点: 大配置Hibernate.cfg.xml开启二级缓存 阅读全文
posted @ 2016-09-25 17:20 吴玄坤 阅读(237) 评论(0) 推荐(0) 编辑
摘要: 延迟加载是指当应用程序想要从数据库获取对象时(在没有设置lazy属性值为false),Hibernate只是从数据库获取符合条件的对象的OId从而生成代理对象,并没有加载出对象访问该对象的属性时才会加载出相应的值。简答来说就是尽可能的减少查询的数据量。简言之,是当在真正需要数据时,才执行Sql语句进 阅读全文
posted @ 2016-09-25 17:20 吴玄坤 阅读(327) 评论(0) 推荐(0) 编辑
摘要: 一、Save() save()方法能够保存实体到数据库。假如两个实体之间有关系(例如employee表和address表有一对一关系),如果在没有事务的情况下调用这个方法保存employee这个实体,除非调用flush()这个方法,否则仅仅employee实体会被保存。 二、SaveOrUpdate 阅读全文
posted @ 2016-09-25 17:19 吴玄坤 阅读(742) 评论(0) 推荐(0) 编辑
摘要: 一、Hibernate入门案例剖析: ①创建实体类Student 并重写toString方法 ② 创建学生对象 并赋值 ③引入jar包 ④ 构建大配置<hibernate.cfg.xml> 可分为以下步骤: 1.连接数据库的语句 2.sql方言 3.可省的配置(show_sql、format_sql 阅读全文
posted @ 2016-09-25 17:19 吴玄坤 阅读(375) 评论(0) 推荐(0) 编辑
摘要: 如果定义了一个单实例的java bean,它有若干属性,但是有一个属性不是线程安全的,比如说HashMap。并且碰巧你并不需要在不同的线程中共享这个属性,也就是说这个属性不存在跨线程的意义。那么不推荐使用sychronize,可使用ThreadLocal 关键代码如下: package cn.hap 阅读全文
posted @ 2016-09-25 17:19 吴玄坤 阅读(295) 评论(0) 推荐(0) 编辑
摘要: Hibernate提供的内置标识符生成器 Hibernate提供的内置标识符生成器 Java语言按内存地址来识别或区分同一个类的不同对象,而关系数据库按主键来识别或区分同一个表的不同记录。Hibernate使用OID(对象标识符)来统一两者之间的矛盾,OID是关系数据库中的主键(通常称为代理主健)在 阅读全文
posted @ 2016-09-25 17:18 吴玄坤 阅读(369) 评论(0) 推荐(0) 编辑
摘要: 当类与类之间建立了关联,就可以方便的从一个对象导航到另一个对象。或者通过集合导航到一组对象。例如: 对于给定的Emp对象,如果想获得与它关联的Dept对象,只要调用如下方法 Dept dept=emp.getDept(); //从Emp对象导航到关联的Dept对象 以Dept(部门)类和Emp(员工 阅读全文
posted @ 2016-09-25 17:18 吴玄坤 阅读(362) 评论(0) 推荐(0) 编辑