摘要: MySQL: String Driver="com.mysql.jdbc.Driver"; //驱动程序 String URL="jdbc:mysql://localhost:3306/db_name"; //连接的URL,db_name为数据库名 String Username="username"; //用户名 String Password="password"; //密码 Class.forName(Driver).new Instance();Connection con=DriverManager.ge 阅读全文
posted @ 2012-01-27 16:59 音①晓 阅读(694) 评论(0) 推荐(0) 编辑
摘要: 目录一、数据库事务的定义二、数据库事务并发可能带来的问题三、数据库事务隔离级别四、使用Hibernate设置数据库隔离级别五、使用悲观锁解决事务并发问题六、使用乐观锁解决事务并发问题 Hibernate事务与并发问题处理(乐观锁与悲观锁) 一、数据库事务的定义 数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作。事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源。通过将一组相关操作组合为一个要么全部成功要么全部失败的单元,可以简化错误恢复并使应用程序更加可靠。一个逻辑工作单元要成为事务,必须满足所谓的ACID(. 阅读全文
posted @ 2012-01-27 15:57 音①晓 阅读(48946) 评论(10) 推荐(9) 编辑
摘要: Hibernate继承映射 在面向对象的程序领域中,类与类之间是有继承关系的,例如Java世界中只需要extends关键字就可以确定这两个类的父子关系,但是在关系数据库的世界中,表与表之间没有任何关键字可以明确指明这两张表的父子关系,表与表是没有继承关系这样的说法的。为了将程序领域中的继承关系反映到数据中,Hibernate为我们提供了3中方案:第一种方案:一个子类对应一张表。第二种方案:使用一张表表示所有继承体系下的类的属性的并集。第三种方案:每个子类使用一张表只存储它特有的属性,然后与父类所对应的表以一对一主键关联的方式关联起来。现在假设有People、Student、Teacher三个. 阅读全文
posted @ 2012-01-26 20:34 音①晓 阅读(12778) 评论(8) 推荐(6) 编辑
摘要: Hibernate复合主键映射目录:1. 实现方式一:将复合主键对应的属性与实体其他普通属性放在一起2. 实现方式二:将主键属性提取到一个主键类中,实体类只需包含主键类的一个引用 在日常开发中会遇到这样一种情况,数据库中的某张表需要多个字段列才能唯一确定一行记录,这时表需要使用复合主键。面对这样的情况Hibernate为我们提供了两种方式来解决复合主键问题。方式一:将复合主键对应的属性与实体其他普通属性放在一起例如实体类People中"id"和"name"属性对应复合主键:/*实体类,使用复合主键必须实现Serializable接口*/public cl 阅读全文
posted @ 2012-01-25 15:25 音①晓 阅读(16354) 评论(6) 推荐(3) 编辑
摘要: 桥接模式(Bridge Pattern)桥接模式的定义: 桥接模式也叫做桥梁模式,其定义:将抽象和实现解耦,使得两者可以独立地变化。桥接模式的优点:1. 抽象和实现分离。它基本上是为了解决继承的缺点而提出来的设计模式,在该模式下,实现可以不受抽象的约束。2. 良好的扩展能力。无论是增加抽象还是增加实现,都是非常容易实现的。桥接模式的使用场景:1. 不希望或不适用使用继承的场景。例如,继承层次过渡、类组合爆炸等。2. 接口或抽象类不稳定的场景。3. 重用性要求比较高的场景。桥接模式的通用类图:Abstraction(抽象化角色):定义出该角色的行为,同时保存一个对实现化的角色引用,该角色一般是. 阅读全文
posted @ 2012-01-25 01:36 音①晓 阅读(992) 评论(3) 推荐(1) 编辑
摘要: 中介者模式(Mediator Pattern)中介者模式定义: 中介者模式又叫做调停者模式,其定义为:用一个中介对象封装一系列对象的交互,中介者使各对象不需要显示地相互作用,从而使其耦合松散,而且可以独立的改变它们之间的交互。中介者模式的优点: 中介者模式的优点是减少了类之间的依赖,使原有一对多的依赖变成了一对一的依赖,同事类只依赖中介者,降低了类之间的耦合。中介者模式的缺点: 中介者模式的缺点是中介者会膨胀的很大,而且逻辑复杂,同事类越多,中介者逻辑越复杂。中介者模式的使用场景: 中介者模式适合于多个对象之间紧密耦合的情况(类图出现了蜘蛛网结构)。中介者模式的通用类图:Mediato... 阅读全文
posted @ 2012-01-24 13:51 音①晓 阅读(762) 评论(0) 推荐(0) 编辑
摘要: Hibernate拦截器(Interceptor)与事件监听器(Listener) 拦截器(Intercept):与Struts2的拦截器机制基本一样,都是一个操作穿过一层层拦截器,每穿过一个拦截器就会触发相应拦截器的事件做预处理或善后处理。 监听器(Listener):其实功能与拦截器是相似的,但它实现原理不同,它是为每一个事件注册一个或多个监听器,一旦事件发生,则事件源通知所有监听该事件的监听器,然后监听器处理通知(观察者模式)。拦截器 Hibernate为我们提供了实现拦截器的接口org.hibernate.Interceptor,它里面提供了许多拦截事件。通常不需要实现这个接口,... 阅读全文
posted @ 2012-01-23 20:42 音①晓 阅读(20709) 评论(2) 推荐(4) 编辑
摘要: 观察者模式(Observer Pattern) 观察者模式也叫做发布订阅模式(Publish/Subscribe)其定义:定义对象间一种一对多的依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并自动更新。观察者模式的优点: 1.观察者和被观察者之间是抽象耦合。增加观察者还是被观察者都非常容易实现,只需实现相应的接口。 2. 可以建立一套触发机制。观察模式的缺点: 观察者模式需要考虑开发效率和运行效率的问题,若一个被观察者有个多个观察者,由于Java中消息的通知默认是顺序的,一旦一个观察者卡壳就会产生严重的性能问题。而且观察者模式在调试的时候比较困难。观察者模式的通用... 阅读全文
posted @ 2012-01-22 22:49 音①晓 阅读(1126) 评论(0) 推荐(0) 编辑
摘要: Hibernate缓存 缓存是介于物理数据源与应用程序之间,是对数据库中的数据复制一份临时放在内存中的容器,其作用是为了减少应用程序对物理数据源访问的次数,从而提高了应用的运行性能。Hibernate在进行读取数据的时候,根据缓存机制在相应的缓存中查询,如果在缓存中找到了需要的数据(我们把这称做“缓存命中"),则就直接把命中的数据作为结果加以利用,避免了大量发送SQL语句到数据库查询的性能损耗。Hibernate缓存分类:一、Session缓存(又称作事务缓存):Hibernate内置的,不能卸除。缓存范围:缓存只能被当前Session对象访问。缓存的生命周期依赖于Session的生 阅读全文
posted @ 2012-01-20 21:34 音①晓 阅读(2663) 评论(2) 推荐(5) 编辑
摘要: 混合模式(工厂方法模式+策略模式+门面模式) 使用这三种模式设计一个简单的计算器程序:计算器是用于计算数值之间进行数学计算后所获得的值。它包含基本的"加减"功能。以上对以上需求进行分析可以得出计算有两种策略(+与-)。计算策略的实现:/*抽象策略*/public interface Strategy{ /*定义了计算策略所拥有的算法*/ public int calculate(int a,int b);}/*加法策略的实现*/public class AddStrategy implements Strategy{ @Override public int calc... 阅读全文
posted @ 2012-01-20 15:00 音①晓 阅读(4504) 评论(0) 推荐(0) 编辑