﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-Apusic技术园地-随笔分类-3.开源项目</title><link>http://www.blogjava.net/zhuyuanxiang/category/23746.html</link><description /><language>zh-cn</language><lastBuildDate>Sat, 15 Mar 2008 14:57:01 GMT</lastBuildDate><pubDate>Sat, 15 Mar 2008 14:57:01 GMT</pubDate><ttl>60</ttl><item><title>Hibernate_Gossip学习笔记</title><link>http://www.blogjava.net/zhuyuanxiang/archive/2007/06/19/125049.html</link><dc:creator>朱远翔-Apusic技术顾问</dc:creator><author>朱远翔-Apusic技术顾问</author><pubDate>Tue, 19 Jun 2007 01:39:00 GMT</pubDate><guid>http://www.blogjava.net/zhuyuanxiang/archive/2007/06/19/125049.html</guid><wfw:comment>http://www.blogjava.net/zhuyuanxiang/comments/125049.html</wfw:comment><comments>http://www.blogjava.net/zhuyuanxiang/archive/2007/06/19/125049.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhuyuanxiang/comments/commentRss/125049.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhuyuanxiang/services/trackbacks/125049.html</trackback:ping><description><![CDATA[<p>* 米小國 * 奇想世界☆.╯http://www.caterpillar.onlyfun.net/phpBB2/ 里面下载的“Hibernate Gossip - 簡介Hibernate”<br />这个里面提供了Hibernate的基础知识，步骤又是循序渐进，再把例子做完，估计对Hibernate应该有个比较初步的认识，并可以在项目中运用了。<br />1 是本好书，入门看懂，例子做完，这是基本。而且，在使用Hibernate的过程中，还可以回过头再看看入门，内容组织得比较有层次感，只是因为是台湾同胞写的，读起来不容易适应，因此对Hibernate有些熟悉后重读，就可以屏蔽掉语言上的差异性，更多理解文章内涵。<br />× Hibernate是ORM（Object/Relational Mapping）的解决方案。<br />× Hibernate所需要的类别库<br />× 提供JDBC连接</p>
		<p>2 继承映射：父类与子类<br />× 每个对象一张表，各自单独映射。这样映射方便，但是有重复数据，不能多态操作。<br />× 所有对象一张表，有个字段专门用于区别对象；<br />× 每个对象一张表，共享主键，除主键外没有重复数据，子类属性通过父类扩展查询。</p>
		<p>3 集合映射：主要是提供这几种方式下Hibernate如何处理，都是对象中嵌入对象。<br />× Component映射、Set映射、List映射、Map映射<br />× Set与Map排序：可以使用Java排序，也可以使用DB排序。<br />× Component中集合映射：就是对象中有集合，集合中再存储对象。<br />× Hibernate对象的三种状态：暂存（Transient）、持久（Persistent）、分离（Detached）<br /> 在Java中使用new创造的对象，就是暂存的， 暂存对象执行save()或saveOrUpdate()就是持久的；<br /> 持久对象总是与session和transaction相关联，持久对象执行delete()就会回到暂存的；<br /> 当session执行close(), clear(), evict()之后，对象就会变成分离的。<br /> 分离对象拥有id，执行update(), saveOrUpdate(), lock()之后，对象就会重新变成持久的。<br />× 对象的比较。==, equals(), hashCode()</p>
		<p>4 实体映射：（章节设计是否有问题。因为映射就是四种：一对一、一对多、多对一、多对多。其他重要功能：持久化、瀑布持久化、双向关联与inverse设定。）<br />× 多对一映射 × 一对多映射 × 一对一映射 × 多对多映射<br />× Cascade Persistent/瀑布持久化：父类持久化后，子类应自动持久化。<br /> Persistence of Reachability／可达性持久化<br />× 双向关联与inverse设定，这个是接着Cascade Persistence来说明的。与多对一映射和一对多映射的区别是可以自动更新子类。<br />× 延迟初始（Lazy Initialization）。真正需要时才向数据库索取数据。但是在处理加载的代码中间不能关闭Session，否则发生LazyInitializationException。</p>
		<p>5 Session 与 Criteria<br />× Session管理：<br /> Session是Hibernate的核心，负责对象的生命周期、事务管理、数据库存取。<br /> Session由SessionFactory创建，SessionFactory是线程案例的，但是Session不是，因此不能共用。<br /> 为了提高使用效率，提供了一个共用Session的例子，采用ThreadLocal实现供参考。<br />× Criteria查询：<br /> 可以不使用SQL或者HQL，而采用完全基于Java的语法风格来进行数据查询；<br /> 但是，Criteria现在只能提供许多基本的功能。<br />6 事务管理<br />× 事务管理：<br /> JDBC事务。用Connection管理事务，Hibernate对JDBC事务做了简单封装。<br /> JTA事务。使用JTA容器来管理事务，与Session无关。</p>
		<p>× 悲观锁定（Pessimistic Locking）：依赖系统或者数据库本身的机制完成。</p>
		<p>× 乐观锁定（Optimistic Locking）：由Hibernate完成，并且为Hibernate推荐方式，增加了VERSION列。</p>
		<p>7 相关工具<br />× SchemaExportTask：从映射文件建立数据库表<br />× Hbm2JavaTask：从映射文件建立Java Bean类。<br /></p><img src ="http://www.blogjava.net/zhuyuanxiang/aggbug/125049.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhuyuanxiang/" target="_blank">朱远翔-Apusic技术顾问</a> 2007-06-19 09:39 <a href="http://www.blogjava.net/zhuyuanxiang/archive/2007/06/19/125049.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Struts_Gossip学习笔记</title><link>http://www.blogjava.net/zhuyuanxiang/archive/2007/06/18/124944.html</link><dc:creator>朱远翔-Apusic技术顾问</dc:creator><author>朱远翔-Apusic技术顾问</author><pubDate>Mon, 18 Jun 2007 06:52:00 GMT</pubDate><guid>http://www.blogjava.net/zhuyuanxiang/archive/2007/06/18/124944.html</guid><wfw:comment>http://www.blogjava.net/zhuyuanxiang/comments/124944.html</wfw:comment><comments>http://www.blogjava.net/zhuyuanxiang/archive/2007/06/18/124944.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhuyuanxiang/comments/commentRss/124944.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhuyuanxiang/services/trackbacks/124944.html</trackback:ping><description><![CDATA[<p>为了不侵犯别人的版权，因此我就不提供下载的文件了，大家可以直接去对方网站下载，这本书写得不错，值得推荐。大家可以自己去网上找找看。<br /><a href="http://www.caterpillar.onlyfun.net/Gossip/index.html">http://www.caterpillar.onlyfun.net/Gossip/index.html</a><br /><br />1. Struts核心<br />1.1. 什么是Struts？<br />1.2. Struts基本运作流程<br />Controller: org.apache.struts.action.ActionServlet/ javax.servlet.http.HttpServlet<br /> 理想收客户不会直接请求资源或相关JSP页面，所有的客户请求都必须传送到控制器，由控制器决定转发给哪个对象处理、哪个页面回应。<br />View: 静态网页、JSP网页、Struts自定义标签。<br />1.5. ActionMapping: struts-config.xml的&lt;action-mappings&gt;标签用来描述一组ActionMapping对象。客户请求至ActionServlet时，ActionSerlvet查看相应的ActionMapping，ActionMapping回复应该使用哪个Action对象，ActionServlet再将控制转移至Action对象。<br />1.6. Action: 调用execute()。通常工作包括：验证使用者进程状态；进一步验证表单对象的信息；更新应用程序中对象的状态；处理客户端的请求；返回ActionForward给ActionServlet。<br />1.7. ActionForm: 是表单的对象化，就是一个JavaBean。表单项目的对应；数据缓存；数据验证；属性转换；程序安全控制。<br />1.8. ActionError或ActionMessage: 表单的validate()。表示验证不通过的数据，会在JSP页面中进行表示。<br />1.9. DynaActionForm: 避免为每个表单写代码，在XML中定义，由系统自动生成。但是会造成struts-config.xml过长，系统性能下降。<br />1.10. Map-backed ActionForm: 由程序代码生成的表单内容。（这个没搞懂用途）<br />1.11. 协同开发：可以拆分struts-config.xml文件为多个，从而协同开发时不会冲突。<br />1.12. 异常处理：使用Struts默认的异常处理；使用自定义全局异常处理；为每个Action提供用户自定义异常处理。<br />1.13. 从ActionServlet到RequestProcessor：可以跟踪或者自定义Controller。<br />1.14. ForwardAction、IncludeAction、SwitchAction：（这个没搞懂用途）<br />1.15. 使用DispatchAction类：可以为Action进行函数级别的定义，减少了Action的数量。<br />1.16. 使用LookupAction类：与DispatchAction一样可以用参数定义Action进行函数级别的定义，还增加了通过value查询对应的函数。（y这个地方还需要再详细描述）<br />1.17. PlugIn接口：用来扩展ActionServlet功能，使初始化函数不用在代码中固定，只需要在struts-config.xml中定义就可以，Tiles与Validator就是这样扩充的。</p>
		<p>2. Struts Tag<br />2.1 Struts Html Tag快速参考：&lt;html:html/&gt;, &lt;html:base/&gt;, &lt;html:link/&gt;, &lt;html:img/&gt;, &lt;html:errors/&gt;, &lt;html:messages/&gt;, &lt;html:button/&gt;, &lt;html:form/&gt;, &lt;html:submit/&gt;, &lt;html:reset/&gt;, &lt;html:cancel/&gt;, &lt;html:text/&gt;, &lt;html:password/&gt;, &lt;html:hidden/&gt;, &lt;html:textarea/&gt;, &lt;html:radio/&gt;, &lt;html:checkbox/&gt;, &lt;html:multibox/&gt;, &lt;html:select/&gt;, &lt;html:option/&gt;, &lt;html:image/&gt;<br />2.2. Strtus Bean Tag快速参考：&lt;bean:cookie/&gt;、&lt;bean:header/&gt;、&lt;bean:parameter/&gt;, &lt;bean:page/&gt;, &lt;bean:define/&gt;, &lt;bean:include/&gt;, &lt;bean:message/&gt; &lt;bean:resource/&gt;, &lt;bean:write/&gt;, &lt;bean:struts/&gt;<br />2.3. Struts Logic Tag快速参考： &lt;logic:equal/&gt;、&lt;logic:notEqual/&gt; &lt;logic:greatEqual/&gt;、&lt;logic:greatThan/&gt; &lt;logic:lessEqual/&gt;、&lt;logic:lessThan/&gt; &lt;logic:match/&gt;、&lt;logic:notMatch/&gt; &lt;logic:present/&gt;、&lt;logic:notPresent/&gt; </p>
		<p>3. Validator整合<br />3.1. Validator简介：减少validator()函数的撰写，以及代码绑定。<br />需要commons-validator.jar和jakarta-oro.jar两个类库。<br />以plug-in的方式扩展Struts功能，因此必须在struts-config.xml中定义。<br />3.2. 客户端验证<br />3.3. 服务器验证<br />3.4. 配置文件管理<br />3.5. 内建验证器<br />3.6. 自定义验证器</p>
		<p>4. Tiles整合<br />4.1. Tiles简介：是Template Engine，可以使网页布局（Layout）标签与内容分离，提供版面控制机制。<br />需要commons-beanutils.jar、commons-logging.jar、commons-collections.jar、commons-digester.jar、struts.jar四个类库。<br />以plug-in的方式扩展Struts功能，因此必须在struts-config.xml中定义。<br />必须在web.xml中定义标签库。</p>
		<p>5. 档案上传</p>
		<p>学习重点：<br />struts-config.xml<br />DTO(Data Transfer Object)<br />DAO(Data Access Object)</p><img src ="http://www.blogjava.net/zhuyuanxiang/aggbug/124944.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhuyuanxiang/" target="_blank">朱远翔-Apusic技术顾问</a> 2007-06-18 14:52 <a href="http://www.blogjava.net/zhuyuanxiang/archive/2007/06/18/124944.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>