??xml version="1.0" encoding="utf-8" standalone="yes"?>
原理Q?br />
1.dq解析配|文?br />
2.dq解析映信息,创徏SessionFactory
3.打开Sesssion
4.创徏事务Transation
5.持久化操?br />
6.提交事务
7.关闭Session
8.关闭SesstionFactory
Z么要用:
1. 对JDBC讉K数据库的代码做了装Q大大简化了数据讉K层繁琐的重复性代码?/p>
2. Hibernate是一个基于JDBC的主持久化框架Q是一个优U的ORM实现。他很大E度的简化DAO层的~码工作
3. hibernate使用Java反射机制Q而不是字节码增强E序来实现透明性?/p>
4. hibernate的性能非常好,因ؓ它是个轻量框架。映的灉|性很。它支持各种关系数据库,从一对一到多对多的各U复杂关pR?/p>
2Q?Hibernate是如何gq加?
1. Hibernate2延迟加蝲实现Qa)实体对象 b)集合QCollectionQ?/p>
2. Hibernate3 提供了属性的延迟加蝲功能
当Hibernate在查询数据的时候,数据q没有存在与内存中,当程序真正对数据的操作时Q对象才存在与内存中Q就实现了gq加载,他节省了服务器的内存开销Q从而提高了服务器的性能?/p>
3QHibernate中怎样实现cM间的关系?(如:一对多、多对多的关p?
cMcM间的关系主要体现在表与表之间的关p进行操作,它们都市对对象进行操作,我们E序中把所有的表与c都映射在一P它们通过配置文g中的many-to-one、one-to-many、many-to-many?/p>
4Q?说下Hibernate的缓存机?/p>
1. 内部~存存在Hibernate中又叫一U缓存,属于应用事物U缓?/p>
2. 二~存Q?br />
a) 应用及缓?br />
b) 分布式缓?br />
条gQ数据不会被W三方修攏V数据大在可接受范围、数据更新频率低、同一数据被系l频J用、非 关键数据
c) W三方缓存的实现
5Q?Hibernate的查询方?br />
Sql、Criteria,object comptosition
HqlQ?br />
1?属性查?br />
2?参数查询、命名参数查?br />
3?兌查询
4?分页查询
5?l计函数
6Q?如何优化HibernateQ?br />
1.使用双向一对多兌Q不使用单向一对多
2.灉|使用单向一对多兌
3.不用一对一Q用多对一取代
4.配置对象~存Q不使用集合~存
5.一对多集合使用Bag,多对多集合用Set
6. l承cM用显式多?br />
7. 表字D要,表关联不要怕多Q有二~存撑腰
7Q?Struts工作机制Qؓ什么要使用StrutsQ?br />
工作机制Q?br />
Struts的工作流E?
在web应用启动时就会加载初始化ActionServlet,ActionServlet?br />
struts-config.xml文g中读取配|信?把它们存攑ֈ各种配置对象
当ActionServlet接收C个客戯求时,执行如下流E?
-(1)索和用户h匚w的ActionMapping实例,如果不存?p回请求\径无效信?
-(2)如果ActionForm实例不存?创Z个ActionForm对象,把客h交的表单数据保存到ActionForm对象?
-(3)Ҏ配置信息军_是否需要表单验?如果需要验?p用ActionForm的validate()Ҏ;
-(4)如果ActionForm的validate()Ҏq回null或返回一个不包含ActionMessage的ActuibErrors对象, pC单验证成?
-(5)ActionServletҎActionMapping所包含的映信息决定将h转发l哪个Action,如果相应?Action实例不存?先创徏q个实例,然后调用Action的execute()Ҏ;
-(6)Action的execute()Ҏq回一个ActionForward对象,ActionServlet在把客户h转发l?ActionForward对象指向的JSPlg;
-(7)ActionForward对象指向JSPlg生成动态网?q回l客?
Z么要用:
JSP、Servlet、JavaBean技术的出现l我们构建强大的企业应用pȝ提供了可能。但用这些技术构建的pȝ非常的繁乱,所以在此之上,我们需要一个规则、一个把q些技术组lv来的规则Q这是框架QStruts便应q而生?/p>
ZStruts开发的应用?cȝ件构成:控制器组件、模型组件、视囄?/p>
8Q?Struts的validate框架是如何验证的Q?br /> 在struts配置文g中配|具体的错误提示Q再在FormBean中的validate()Ҏ具体调用?/p>
9Q?说下Struts的设计模?br /> MVC模式: web应用E序启动时就会加载ƈ初始化ActionServler。用h交表单时Q一个配|好的ActionForm对象被创建,q被填入表单相应的数据,ActionServlerҎStruts-config.xml文g配置好的讄军_是否需要表单验证,如果需要就调用ActionForm?ValidateQ)验证后选择请求发送到哪个ActionQ如果Action不存在,ActionServlet会先创徏q个对象Q然后调?Action的executeQ)Ҏ。ExecuteQ)从ActionForm对象中获取数据,完成业务逻辑Q返回一个ActionForward对象QActionServlet再把客户h转发lActionForward对象指定的jsplgQActionForward对象指定的jsp生成动态的|页Q返回给客户?/p>
10Q?spring工作机制及ؓ什么要?
1.spring mvch有的h都提交给DispatcherServlet,它会委托应用pȝ的其他模块负责负责对hq行真正的处理工作?br />
2.DispatcherServlet查询一个或多个HandlerMapping,扑ֈ处理h的Controller.
3.DispatcherServlet误求提交到目标Controller
4.Controllerq行业务逻辑处理后,会返回一个ModelAndView
5.Dispathcher查询一个或多个ViewResolver视图解析?扑ֈModelAndView对象指定的视囑֯?br />
6.视图对象负责渲染q回l客L?/p>
Z么用Q?br /> {AOP 让开发h员可以创建非行ؓ性的x点,UCؓ横切x点,q将它们插入到应用程序代码中。?AOP 后,公共服务 Q比如日志、持久性、事务等Q就可以分解成方面ƈ应用到域对象上,同时不会增加域对象的对象模型的复杂性?br /> IOC 允许创徏一个可以构造对象的应用环境Q然后向q些对象传递它们的协作对象。正如单?倒置 所表明的,IOC 像?q来?JNDI。没有用一堆抽象工厂、服务定位器、单元素QsingletonQ和直接构造(straight constructionQ,每一个对象都是用其协作对象构造的。因此是由容器管理协作对象(collaboratorQ?br /> Spring即一个AOP框架Q也是一IOC容器?Spring 最好的地方是它有助于您替换对象。有?SpringQ只要用 JavaBean 属性和配置文g加入依赖性(协作对象Q。然后可以很Ҏ地在需要时替换hcM接口的协作对象。}
Spring 框架是一个分层架构,?7 个定义良好的模块l成。Spring 模块构徏在核心容器之上,核心容器定义了创建、配|和理 bean 的方式,如图 1 所C?/p>
l成 Spring 框架的每个模块(或组Ӟ都可以单独存在,或者与其他一个或多个模块联合实现。每个模块的功能如下Q?/p>
?核心容器Q核心容器提?Spring 框架的基本功能。核心容器的主要lg?BeanFactoryQ它是工厂模式的实现。BeanFactory 使用控制反{ QIOCQ模式将应用E序的配|和依赖性规范与实际的应用程序代码分开?/p>
?Spring 上下文:Spring 上下文是一个配|文Ӟ?Spring 框架提供上下文信息。Spring 上下文包括企业服务,例如 JNDI、EJB、电子邮件、国际化、校验和调度功能?/p>
?Spring AOPQ通过配置理Ҏ,Spring AOP 模块直接面向方面的~程功能集成C Spring 框架中。所以,可以很容易地?Spring 框架理的Q何对象支?AOP。Spring AOP 模块为基?Spring 的应用程序中的对象提供了事务理服务。通过使用 Spring AOPQ不用依?EJB lgQ就可以声明性事务管理集成到应用E序中?/p>
?Spring DAOQJDBC DAO 抽象层提供了有意义的异常层次l构Q可用该l构来管理异常处理和不同数据库供应商抛出的错误消息。异常层ơ结构简化了错误处理Qƈ且极大地降低了需要编写的异常代码数量Q例如打开和关闭连接)。Spring DAO 的面?JDBC 的异帔R从通用?DAO 异常层次l构?/p>
?Spring ORMQSpring 框架插入了若q个 ORM 框架Q从而提供了 ORM 的对象关pdP其中包括 JDO、Hibernate ?iBatis SQL Map。所有这些都遵从 Spring 的通用事务?DAO 异常层次l构?/p>
?Spring Web 模块QWeb 上下文模块徏立在应用E序上下文模块之上,为基?Web 的应用程序提供了上下文。所以,Spring 框架支持?Jakarta Struts 的集成。Web 模块q简化了处理多部分请求以及将h参数l定到域对象的工作?/p>
?Spring MVC 框架QMVC 框架是一个全功能的构?Web 应用E序?MVC 实现。通过{略接口QMVC 框架变成为高度可配置的,MVC 容纳了大量视图技术,其中包括 JSP、Velocity、Tiles、iText ?POI?/p>
Spring 框架的功能可以用在Q?J2EE 服务器中Q大多数功能也适用于不受管理的环境。Spring 的核心要ҎQ支持不l定到特?J2EE 服务的可重用业务和数据访问对象。毫无疑问,q样的对象可以在不同 J2EE 环境 QWeb ?EJBQ、独立应用程序、测试环境之间重用?/p>
IOC ?AOP
控制反{模式Q也UC依赖性介入)的基本概忉|Q不创徏对象Q但是描q创建它们的方式。在代码中不直接与对象和服务q接Q但在配|文件中描述哪一个组仉要哪一Ҏ务。容器(?Spring 框架中是 IOC 容器Q?负责这些联pd一赗?/p>
在典型的 IOC 场景中,容器创徏了所有对象,q设|必要的属性将它们q接在一P军_什么时间调用方法。下表列Z IOC 的一个实现模式?/p>
Spring 框架?IOC 容器采用cd 2 和类? 实现?/p>
面向斚w的编E?/p>
面向斚w的编E,?AOPQ是一U编E技术,它允许程序员Ҏ切关注点或横切典型的职责分界U的行ؓQ例如日志和事务理Q进行模块化。AOP 的核心构造是斚wQ它那些媄响多个类的行为封装到可重用的模块中?/p>
AOP ?IOC 是补充性的技术,它们都运用模块化方式解决企业应用E序开发中的复杂问题。在典型的面向对象开发方式中Q可能要日志记录语句放在所有方法和 Java cM才能实现日志功能。在 AOP 方式中,可以反过来将日志服务模块化,q以声明的方式将它们应用到需要日志的lg上。当Ӟ优势是 Java cM需要知道日志服务的存在Q也不需要考虑相关的代码。所以,?Spring AOP ~写的应用程序代码是松散耦合的?/p>
AOP 的功能完全集成到?Spring 事务理、日志和其他各种Ҏ的上下文中?/p>
IOC 容器
Spring 设计的核心是 org.springframework.beans 包,它的设计目标是与 JavaBean lg一起用。这个包通常不是qL接用,而是由服务器其用作其他多数功能的底层中介。下一个最高抽象?BeanFactory 接口Q它是工厂设计模式的实现Q允讔R过名称创徏和检索对象。BeanFactory 也可以管理对象之间的关系?/p>
BeanFactory 支持两个对象模型?/p>
?单?模型提供了具有特定名U的对象的共享实例,可以在查询时对其q行索。Singleton 是默认的也是最常用的对象模型。对于无状态服务对象很理想?/p>
?原型 模型保每次索都会创建单独的对象。在每个用户都需要自q对象Ӟ原型模型最适合?/p>
bean 工厂的概忉| Spring 作ؓ IOC 容器的基。IOC 处理事情的责Q从应用程序代码{Ud框架。正如我在下一个示例中演示的那PSpring 框架使用 JavaBean 属性和配置数据来指出必设|的依赖关系?/p>
BeanFactory 接口
因ؓ org.springframework.beans.factory.BeanFactory 是一个简单接口,所以可以针对各U底层存储方法实现。最常用?BeanFactory 定义?XmlBeanFactoryQ它Ҏ XML 文g中的定义装入 beanQ如清单 1 所C?/p>
清单 1. XmlBeanFactory
?XML 文g中定义的 Bean 是被消极加蝲的,q意呛_需?bean 之前Qbean 本n不会被初始化。要?BeanFactory ?beanQ只需调用 getBean() ҎQ传入将要检索的 bean 的名U即可,如清?2 所C?/p>
清单 2. getBean()
每个 bean 的定义都可以?POJO Q用cd?JavaBean 初始化属性定义) ?FactoryBean。FactoryBean 接口Z?Spring 框架构徏的应用程序添加了一个间接的U别?/p>
IOC CZ
理解控制反{最单的方式是看它的实际应用。在对由三部分组成的 Spring pd 的第 1 部分q行ȝӞ我用了一个示例,演示了如何通过 Spring IOC 容器注入应用E序的依赖关p(而不是将它们构徏q来Q?/p>
我用开启在U信用帐L用例作ؓL。对于该实现Q开启信用帐戯求用户与以下服务q行交互Q?/p>
?信用U别评定服务Q查询用L信用历史信息?/p>
?q程信息链接服务Q插入客户信息,客户信息与信用卡和银行信息q接hQ以q行自动借记Q如果需要的话)?/p>
?电子邮g服务Q向用户发送有关信用卡状态的电子邮g?/p>
三个接口
对于q个CZQ我假设服务已经存在Q理想的情况是用松散耦合的方式把它们集成在一赗以下清单显CZ三个服务的应用程序接口?/p>
清单 3. CreditRatingInterface
清单 3 所C的信用U别评定接口提供了信用历史信息。它需要一个包含客户信息的 Customer 对象。该接口的实现是?CreditRating cL供的?/p>
清单 4. CreditLinkingInterface
信用链接接口信用历史信息与银行信息Q如果需要的话)q接在一Pq插入用L信用卡信息。信用链接接口是一个远E服务,它的查询是通过 getUrl() Ҏq行的。URL ?Spring 框架?bean 配置机制讄Q我E后会讨论它。该接口的实现是?CreditLinking cL供的?/p>
清单 5. EmailInterface
二、web~程
1、html QjsQajaxQcss
2、jsp
3、servlet
4、jstl
5、EL
三、开源框?br />
1、表C层QstructsQjsf。。。)
2、媄层Qhibanate、ibatisQ?br />
3、容器管理层QspringQ?/p>
java集合~程
一、线性结?br />
1、List(ArryList【数l】、LinkedList【链表?
2、Set(HashSet【散列集合】、TreeSet【排序?
二、非U性结?br />
1、map(HashMap、TreeMap)
2、HashTable(多线E?
ȝQ?br />
1、上溯造型的安全性高Q下溯造型的安全性低
2、一切对象都l承Object
3、泛型:泛型泛指一切对象,但是泛型的缺点就是太局限用一U指定的对象
4、集合的遍历Q集合器遍历Q?br />
while(it.hashNext()){
it.next();
}
?0100910?/p>
一、面向对象编E?nbsp;
1.cȝ概念
class是一U对象的基本c?/p>
2.对象的概?br />
是类的一个实例, 状态和行ؓQ属性和Ҏ
3.对象的通信Q对象与对象之间的一U交?br />
a.接受消息的对?br />
b.ҎQ介质)
c.参数
4.面向对象的特?br />
a.装性:对外界隐藏数据,提供一个接口用于其他对象的讉K。访问权限(privateQ私有的Q只有在本类才可以访问;“有元”是只有在包中能访问。protected用于l承中v保护Qpublic公共QQ何对象都可以讉K?br />
b.l承性:抽象c:不能实例化;
c.抽象性:
5.接口(interface)的概念:接口可以多承,cM可以
a.数据Q不可变(帔R)public static final int a; static是在cd载是执行Q是不可变的?br />
b. public abstract String draw();
6.抽象和接口的比较
a.抽象一定有构造方法,接口没有构造方?br />
b.抽象不可以实现多l承Q接口可?br />
c.抽象可以l承接口Q接口不能承抽?br />
7.抽象与接口的应用区别
a.涉及资源的引用与加蝲时候一定运用抽象。接口不能完成的时候考虑用抽?/p>
8.多态特性:通过同一U相同功能单元,不同的实现细?br /> a.~译时多态性:重蝲{方法名相同、参C数相同类型不同、返回不区分?br /> b.q行时多态性:重写 {子cȝ讉K权限不能比父cȝ讉K权限}、反机?br />