上一页 1 2 3 4 5 6 7 8 ··· 14 下一页
摘要: Spring作为一个在java界广泛使用且评价颇高的一个开源框架,给我们提供了好多的功能,极大的方便了我们的开发。此处我介绍IOC容器和AOP概念。 IOC(Inversion of Control)控制反转:本来是由应用程序管理的对象之间的依赖关系,现在交给了容器管理,这就叫控制反转,即交给了IOC容器,Spring的IOC容器主要使用DI方式实现的。不需要主动查找,对象的查找、定位和创建全部由容器管理。通俗点说就是不创建对象。以前我们要调用一个对象的方法,首先要new一个对象。但使用IOC容器,在代码中不直接与对象连接,而是在配置文件中描述要使用哪一个对象。容器负责将这些联系在一起。 I. 阅读全文
posted @ 2012-05-28 08:41 转航 阅读(190) 评论(0) 推荐(0) 编辑
摘要: AOP为Aspect Oriented Programming的缩写,意为:面向切面编程(也叫面向方面),可以通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术。AOP实际是GoF设计模式的延续,设计模式孜孜不倦追求的是调用者和被调用者之间的解耦,AOP可以说也是这种目标的一种实现 按自己理解解释一下这个图, AOP是将多个方法中都用到的某部分代码封装到SecurityHandler中。要是想把这部分代码插入到需要的地方,首先我们需要知道在哪些点进行插入。每一个具体的方法对应着的为joinpoint,而如果是符合某种正则式的方法集则对应着pointcut. 阅读全文
posted @ 2012-05-28 08:41 转航 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 有的时候,我们设计表格,会出现多个字段的组合构成表的主键的情况,也就是复合主键。在hibernate也提供了这种主键的实现方式。我们看一个例子。在核算期间中我们把核算年以及核算月作为主键。我们该怎么实现呢?首先,我们先把要组合成主键的字段放到一个单独的类中,但是仅这样是不够的,我们还需要实现序列化接口以及符合equals和hascode方法。代码展示如下。public classFiscalYearPeriodPKimplements Serializable { //核算年 privateintfiscalYear; //核算月 privateintfiscalPeriod; …省略get. 阅读全文
posted @ 2012-05-28 08:39 转航 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 在对象中,是有继承的概念的。那既然Hibernate实现表采用的是一种面向对象的方式,则当然也少不了继承的概念。举个例子来说,小猪和小鸟都是动物,他们都有一些共同的属性。如他们都有一个id,有姓名,有性别。但是呢,小猪有重量,小鸟游高度。(just举例哈)。这就是一个继承关系了,在Hibernate中我们怎么实现它呢?先把这个情况用图来表示一下实现后表的形式为: 这三种方式所生成的表格想必大家不难理解。那hibernate中具体是怎么实现的呢?这三种方式的实体类构造完全是一样的。实现形式如下:public class Pigextends Animal { privateintweight;. 阅读全文
posted @ 2012-05-28 08:38 转航 阅读(219) 评论(0) 推荐(0) 编辑
摘要: Spring 是一个开源框架,是为了解决企业应用程序开发复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。 Spring 由 7 个定义良好的模块组成,模块构建在核心容器之上,核心容器定义了创建、配置和管理 bean 的方式,如下图所示。 组成 Spring 框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。每个模块的功能如下: 核心容器:核心容器提供 Spring 框架的基本功能。核心容器的主要组件是 BeanFactory,它是工厂模式的实现。BeanFactory 使用控制反转(IO. 阅读全文
posted @ 2012-05-27 19:19 转航 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 一、hibernate抓取策略(单端代理的批量抓取fetch=select(默认)/join)测试用例:Student student = (Student)session.get(Student.class, 1);System.out.println(student.getName());System.out.println(student.getClasses().getName());1)保持默认,同fetch="select",如:<many-to-one name="classes" column="classesid&quo 阅读全文
posted @ 2012-05-25 14:54 转航 阅读(240) 评论(0) 推荐(0) 编辑
摘要: 举个例子来说,就是用户与角色。一个用户可以属于多个角色,而一个角色又可以拥有多个用户。文字表述就是这样了,看一下用图的直观表示。实体关系图表格关系图 当关系两方有一端为一时,我们让多的一端维护关系,可以减少数据的冗余,提高效率。那要是多对多的话,如果还在某一方维护数据,那缺点就一点都没有避免。那怎么解决这个问题呢?我们呢采用第三张表格来维护这个关系。即上图中间用户角色表。将关系两方的主键抽离出来放到第三张表中。最大程度的减少冗余性。看一下具体实现。实体类实现:publicclass User { privateintid; private Stringname; privateSetro... 阅读全文
posted @ 2012-05-25 12:40 转航 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 还记得多对一的那个例子吗?用户与组。我们在多的一端维护关系,最后生成的表格中,多的一端User中多出来一个字段groupId用来存储组的主键。这里,多个用户可以属于同一组。即在用户这个表中,groupId字段的值是可以重复的。但有的时候可能这个外键值是不可以重复的。比如仍然举身份证与人的例子。我们可以采用上面的一对一主键关联映射。当然,我们也可以在人的表中添加一个字段身份证id来存储信息。但只是这样还不够,不同的人拥有相同的身份证号码这是不允许的。那怎么办呢?一对一唯一外键映射来给我们解决这个问题。先来看一下图。人与身份证的实体关系图最后生成表关系图下面来看具体代码的实现。实体类实现: pu. 阅读全文
posted @ 2012-05-25 12:37 转航 阅读(566) 评论(0) 推荐(0) 编辑
摘要: 一对一主键关联映射:我们来拿人和身份证举例。采用一对一主键关联映射,他要表达的意思是人的id来自于身份证的id。要想在人的表中存数据,在身份证表中必须有对应的id的身份证记录。如图所示:表关系为:我们看一下具体的实现:实体类实现: publicclass Person { privateintid; private Stringname; private IdCardidCard;//提供关联的属性….省略get,set方法} publicclass IdCard { private intid; private StringcardNo; ….省略get,set方法 }对应的映射文件... 阅读全文
posted @ 2012-05-24 13:29 转航 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 在我们以前的数据库设计中,设计表就不是一件轻松的事情。多种事物之间往往都是有这样那样的关系的。那怎样设计表格,才能既将事情描述明白,又能使数据库设计的比较合理呢?那里我们提供了好多规范,好多约束来满足这些事情。在hibernate中,通过对象来创建表,当然也需要有一些东西来维护各个对象之间的关系,以创建出合适的表。这个东西就是映射。通过映射,可以轻松的将对象间的关系表述的非常清楚明白。对象间关系搞明白了,数据库表自然也就出来了。那我们先看一下关联映射。关联映射就是将关联关系映射到数据库中,所谓的关联关系在对象模型中就是一个或多个引用。 首先来看一下多对一。举个例子来说用户和组。一个组中有多个. 阅读全文
posted @ 2012-05-23 21:41 转航 阅读(345) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 ··· 14 下一页