﻿<?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-J2EE  学习-文章分类-j2ee</title><link>http://www.blogjava.net/supersalor/category/40956.html</link><description>java    struts1、struts2 spring  hibernate freemarker  ajax  fckeditor   Mysql MSSQL ORACLE DB2 Websphere  jboss </description><language>zh-cn</language><lastBuildDate>Fri, 25 Jan 2013 02:33:13 GMT</lastBuildDate><pubDate>Fri, 25 Jan 2013 02:33:13 GMT</pubDate><ttl>60</ttl><item><title>memcached  and Redis</title><link>http://www.blogjava.net/supersalor/articles/394702.html</link><dc:creator>李峰</dc:creator><author>李峰</author><pubDate>Thu, 24 Jan 2013 06:44:00 GMT</pubDate><guid>http://www.blogjava.net/supersalor/articles/394702.html</guid><wfw:comment>http://www.blogjava.net/supersalor/comments/394702.html</wfw:comment><comments>http://www.blogjava.net/supersalor/articles/394702.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/supersalor/comments/commentRss/394702.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/supersalor/services/trackbacks/394702.html</trackback:ping><description><![CDATA[<div><div><span style="color: #333333; font-weight: normal; line-height: 21px;">memcached好的博文：</span></div> <div> <p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px;"><a style="text-decoration: none; color: #5fa207;" href="http://www.cnblogs.com/luluping/archive/2009/01/14/1375456.html">http://www.cnblogs.com/luluping/archive/2009/01/14/1375456.html</a>&nbsp;memcached深度分析</p> <p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px;">&nbsp;Redis使用场景：</p> <p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px;">1. Redis使用最佳方式是全部数据in-memory。</p> <p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px;">2. Redis更多场景是作为Memcached的替代者来使用。</p> <p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px;">3. 当需要除key/value之外的更多数据类型支持时，使用Redis更合适。</p> <p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px;">4. 当存储的数据不能被剔除时，使用Redis更合适。</p> <p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px;">&nbsp;</p> <p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px;">Redis好的博文：</p> <p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px;">1.<a style="text-decoration: none; color: #5fa207;" href="http://www.searchtb.com/2011/05/redis-storage.html">http://www.searchtb.com/2011/05/redis-storage.html</a>，来自淘宝搜索技术博客</p> <p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px;">2. 来自InfoQ&nbsp;&nbsp;&nbsp;&nbsp;</p> <p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px;"><a style="text-decoration: none; color: #5fa207;" href="http://www.infoq.com/cn/articles/tq-why-choose-redis">http://www.infoq.com/cn/articles/tq-why-choose-redis</a>&nbsp; 为什么使用redis</p> <p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px;">&nbsp;<a style="text-decoration: none; color: #5fa207;" href="http://www.infoq.com/cn/articles/tq-redis-memory-usage-optimization-storage">http://www.infoq.com/cn/articles/tq-redis-memory-usage-optimization-storage</a>&nbsp;redis内存使用优化和存储</p> <p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px;"><a style="text-decoration: none; color: #5fa207;" href="http://www.infoq.com/cn/articles/tq-redis-copy-build-scalable-cluster">http://www.infoq.com/cn/articles/tq-redis-copy-build-scalable-cluster</a>&nbsp;redis复制与可扩展集群搭建</p> </div></div><img src ="http://www.blogjava.net/supersalor/aggbug/394702.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/supersalor/" target="_blank">李峰</a> 2013-01-24 14:44 <a href="http://www.blogjava.net/supersalor/articles/394702.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Debug 提示【Tomcat】(转)</title><link>http://www.blogjava.net/supersalor/articles/300272.html</link><dc:creator>李峰</dc:creator><author>李峰</author><pubDate>Thu, 29 Oct 2009 14:15:00 GMT</pubDate><guid>http://www.blogjava.net/supersalor/articles/300272.html</guid><wfw:comment>http://www.blogjava.net/supersalor/comments/300272.html</wfw:comment><comments>http://www.blogjava.net/supersalor/articles/300272.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/supersalor/comments/commentRss/300272.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/supersalor/services/trackbacks/300272.html</trackback:ping><description><![CDATA[
		<p>java.lang.NoClassDefFoundError:<font color="#ff0000">net/sf/cglib/proxy/CallbackFilter</font>  —-缺少<font color="#ff6600">cglib-2.1_3.jar</font></p>
		<p>java.lang.NoClassDefFoundError:<font color="#ff0000">javax/transaction/TransactionManager</font>  —-缺少<font color="#ff6600">jta.jar</font></p>
		<p>java.lang.NoClassDefFoundError: <font color="#ff0000">freemarker/template/Configuration</font>  —-缺少<font color="#ff6600">freemarker.jar</font></p>
		<p>java.lang.NoClassDefFoundError: <font color="#ff0000">org/aspectj/weaver/reflect/ReflectionWorld$ReflectionWorldException</font>  —-缺少<font color="#ff6600">aspectjrt.jar;aspectjweaver.jar</font></p>
		<p>java.lang.NoClassDefFoundError: <font color="#ff0000">org/dom4j/DocumentException</font>  —-缺少<font color="#ff6600">dom4j-1.6.1.jar</font></p>
		<p>java.lang.NoClassDefFoundError: <font color="#ff0000">org/apache/commons/fileupload/FileUploadException</font>  —-缺少<font color="#ff6600">commons-fileupload-1.2.jar</font></p>
		<p>java.lang.NoClassDefFoundError: <font color="#ff0000">org/apache/velocity/context/Context</font>  —-缺少<font color="#ff6600">velocity-1.4.jar;velocity-dep-1.4.jar;velocity-tools-1.1.jar</font></p>
		<p>
				<font color="#99cc00">继续整理……</font>
		</p>
<img src ="http://www.blogjava.net/supersalor/aggbug/300272.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/supersalor/" target="_blank">李峰</a> 2009-10-29 22:15 <a href="http://www.blogjava.net/supersalor/articles/300272.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>freemarker中空值的多种处理方法</title><link>http://www.blogjava.net/supersalor/articles/290715.html</link><dc:creator>李峰</dc:creator><author>李峰</author><pubDate>Tue, 11 Aug 2009 12:59:00 GMT</pubDate><guid>http://www.blogjava.net/supersalor/articles/290715.html</guid><wfw:comment>http://www.blogjava.net/supersalor/comments/290715.html</wfw:comment><comments>http://www.blogjava.net/supersalor/articles/290715.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/supersalor/comments/commentRss/290715.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/supersalor/services/trackbacks/290715.html</trackback:ping><description><![CDATA[
		<p>1.按照freemarker的规范，老老实实的判断是否有空值，有空值怎么处理。这在某种时候是有用的。<br />格式：${empty!"EmptyValue of fbysss"} <br />比如值为空时，你可以给出一个友好的说明，但是很多的变量都要这么说明，未免太麻烦了。 </p>
		<p>2.&lt;#escape x as x!""&gt;&lt;/#escape&gt;可以对所有的变量进行空值处理，这里是全部替换为空字符串。当然也可以替换为其它字符串。 <br />如果其中某些变量不需要这种替换，可以加入&lt;#noescape&gt;&lt;/#noescape&gt;标签。 </p>
		<p>3.属性配置方法： <br />配置classic_compatible=true可以满足一般需要。默认情况变量为null则替换为空字符串，如果需要自定义，写上${empty!"EmptyValue of fbysss"}的形式即可 </p>
		<p>a.通过Configuration设置。Configuration cfg = new Configuration(); cfg.setClassicCompatible(true);//设置属性 </p>
		<p>b.通过Eviroment设置。 <br />   Environment env = template.createProcessingEnvironment(root, out); <br />   env.setClassicCompatible(true); </p>
		<p>c.通过ftl设置：在ftl前加入&lt;!--#setting classic_compatible=true--&gt;; </p>
		<p>d.通过Spring配置文件设置 <br />&lt;bean id="freemarkerConfig" <br />    class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer"&gt; <br />  &lt;property name="freemarkerSettings"&gt; <br />    &lt;props&gt; <br />      &lt;prop key="classic_compatible"&gt;true&lt;/prop&gt; <br />    &lt;/props&gt; <br />  &lt;/property&gt; <br />&lt;/bean&gt; </p>
		<p>e.class目录下添加freemarker.properties文件：加入classic_compatible=true <br />(需要struts2或spring) <br /></p>
<img src ="http://www.blogjava.net/supersalor/aggbug/290715.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/supersalor/" target="_blank">李峰</a> 2009-08-11 20:59 <a href="http://www.blogjava.net/supersalor/articles/290715.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>各种数据库驱动</title><link>http://www.blogjava.net/supersalor/articles/290711.html</link><dc:creator>李峰</dc:creator><author>李峰</author><pubDate>Tue, 11 Aug 2009 12:50:00 GMT</pubDate><guid>http://www.blogjava.net/supersalor/articles/290711.html</guid><wfw:comment>http://www.blogjava.net/supersalor/comments/290711.html</wfw:comment><comments>http://www.blogjava.net/supersalor/articles/290711.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/supersalor/comments/commentRss/290711.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/supersalor/services/trackbacks/290711.html</trackback:ping><description><![CDATA[各种数据库驱动<br />  <br />-------------------------------oracle--------------------------------<br />　　驱动：oracle.jdbc.driver.OracleDriver<br />　　URL：jdbc:oracle:thin:@&lt;machine_name&gt;&lt;:port&gt;:dbname<br />　　注：machine_name：数据库所在的机器的名称；<br />　　 port：端口号，默认是1521<br />　　 <br />　　-------------------------------mysql--------------------------------<br />　　驱动：org.gjt.mm.mysql.Driver<br />　　URL：jdbc:mysql://&lt;machine_name&gt;&lt;:port&gt;/dbname<br />　　注：machine_name：数据库所在的机器的名称；<br />　　 port：端口号，默认3306<br />　　 <br />　　----------------------------pointbase---------------------------------<br />　　驱动：com.pointbase.jdbc.jdbcUniversalDriver<br />　　URL：jdbc:pointbase:server://&lt;machine_name&gt;&lt;:port&gt;/dbname<br />　　注：machine_name：数据库所在的机器的名称；<br />　　 port：端口号，默认是9092<br />　　 <br />　　---------------------------SQL Server---------------------------------<br />　　驱动：com.microsoft.jdbc.sqlserver.SQLServerDriver<br />　　URL：jdbc:microsoft:sqlserver://&lt;machine_name&gt;&lt;:port&gt;;DatabaseName=&lt;dbname&gt;<br />　　注：machine_name：数据库所在的机器的名称；<br />　　 port：端口号，默认是1433<br />　　--------------------------DB2---------------------------------------------<br />　　驱动：com.ibm.db2.jdbc.app.DB2Driver<br />　　URL：jdbc:db2://&lt;machine_name&gt;&lt;:port&gt;/d driver="COM.ibm.db2.jdbc.app.DB2Driver"bname<br />　　注：machine_name：数据库所在的机器的名称；<br />　　 port：端口号，默认是5000<img src ="http://www.blogjava.net/supersalor/aggbug/290711.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/supersalor/" target="_blank">李峰</a> 2009-08-11 20:50 <a href="http://www.blogjava.net/supersalor/articles/290711.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>选择ibatis和hibernate的区别</title><link>http://www.blogjava.net/supersalor/articles/288807.html</link><dc:creator>李峰</dc:creator><author>李峰</author><pubDate>Tue, 28 Jul 2009 13:35:00 GMT</pubDate><guid>http://www.blogjava.net/supersalor/articles/288807.html</guid><wfw:comment>http://www.blogjava.net/supersalor/comments/288807.html</wfw:comment><comments>http://www.blogjava.net/supersalor/articles/288807.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/supersalor/comments/commentRss/288807.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/supersalor/services/trackbacks/288807.html</trackback:ping><description><![CDATA[
		<div style="LAYOUT-GRID:  15.6pt none" class="Section0">
				<p style="TEXT-ALIGN: left; LINE-HEIGHT: 18pt; MARGIN-TOP: 5pt; MARGIN-BOTTOM: 3.75pt" class="p0">
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">项目中关于持久层的选择，我主要有两种选择：hibernate与ibatis，各有个的好，现在总结如下：<br /><font color="#ff1493">Hibernate简介</font></span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">
								<br />
						</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">Hibernate是一个开放源代码的对象关系映射框架，它对JDBC进行了非常轻量级的对象封装，使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibernate可以应用在任何使用JDBC的场合，既可以在Java的客户端程序使用，也可以在Servlet/JSP的Web应用中使用，最具革命意义的是，Hibernate可以在应用EJB的J2EE架构中取代CMP，完成数据持久化的重任。</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">
								<br />
						</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">一、基本功能</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">
								<br />
						</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">Hibernate作为数据持久化的中间件，足以让数据库在业务逻辑层开发中去冬眠。它通过可扩展标记语言（XML）实现了类和数据表之间的映射，使程序员在业务逻辑的开发中面向数据库而改为面向对象开发。使整个项目开发分工更加明确，提高了程序开发的效率。</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">
								<br />
						</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">configuration对象：</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">
								<br />
						</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">Configuration 类负责管理Hibernate 的配置信息。Hibernate 运行时需要</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">
								<br />
						</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">获取一些底层实现的基本信息，其中几个关键属性包括：</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">
								<br />
						</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">1． 数据库URL</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">
								<br />
						</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">2． 数据库用户</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">
								<br />
						</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">3． 数据库用户密码</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">
								<br />
						</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">4． 数据库JDBC驱动类</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">
								<br />
						</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">5．数据库dialect，用于对特定数据库提供支持，其中包含了针对特定数据库特性的实现，如Hibernate数据类型到特定数据库数据类型的映射等。</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">
								<br />
						</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">以上信息一般情况下由hibernate.cfg.xml或者hibernate.properties文件来配置，实现与不同数据库的连接。</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">
								<br />
						</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">Session对象：</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">
								<br />
						</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">Session是持久层操作的基础，相当于JDBC中的Connection:</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">
								<br />
						</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">实例通过SessionFactory实例构建:</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">
								<br />
						</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">Configuration config = new Configuration().configure();</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">
								<br />
						</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">SessionFactory sessionFactory = config.buildSessionFactory();</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">
								<br />
						</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">Session session = sessionFactory.openSession();</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">
								<br />
						</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">之后我们就可以调用Session所提供的save、find、flush等方法完成持久层操作。因此Session对象也封装了所有对数据库的操作来实现Hibernate对数据库的操纵功能，如：</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">
								<br />
						</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">Save()方法实现增加和保存；</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">
								<br />
						</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">Delete()方法实现数据的删除；</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">
								<br />
						</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">Update()方法实现数据更新和修改；</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">
								<br />
						</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">Find()方法实现数据的检索；</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">
								<br />
						</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">Hibernate会根据不同的操作自动生成相应的SQL语句，从而实现了程序员对PO对象的操作转化为对数据库关系表的操作。</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">
								<br />
						</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">二、使用步骤</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">
								<br />
						</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">1．编写Hibernate配置文件</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">
								<br />
						</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">       Hibernate配置文件有两种，分别是hibernate.cfg.xml文件和hibernate.properties,推荐使用hibernate.cfg.xml。</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">
								<br />
						</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">2．PO和映射文件</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">
								<br />
						</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">使用middlegen和hibernate-extensions从数据库导出PO的映射文件，并在hibernate.cfg.xml当中声明。</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">
								<br />
						</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">3．编写DAO</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">
								<br />
						</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">       对每一张关系表编写一个DAO，提供一组增、删、改、查方法供业务逻辑对数据库操作使用。</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">
								<br />
						</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">
								<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /?>
								<o:p>
								</o:p>
						</span>
				</p>
				<p style="TEXT-ALIGN: left; LINE-HEIGHT: 18pt; MARGIN-TOP: 5pt; MARGIN-BOTTOM: 3.75pt" class="p0">
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">
								<o:p>
								</o:p>
						</span>
				</p>
				<p style="TEXT-ALIGN: left; LINE-HEIGHT: 18pt; MARGIN-TOP: 5pt; MARGIN-BOTTOM: 3.75pt" class="p0">
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">
								<font color="#ff1493">Ibatis简介</font>
						</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">
								<br />
						</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">相对Hibernate和Apache OJB 等"一站式"ORM解决方案而言，ibatis 是一种"半自动化"的ORM实现。所谓"半自动"，可能理解上有点生涩。纵观目前主流的ORM，无论Hibernate 还是Apache OJB，都对数据库结构提供了较为完整的封装，提供了从POJO 到数据库表的全套映射机制。程序员往往只需定义好了POJO 到数据库表的映射关系，即可通过Hibernate或者OJB 提供的方法完成持久层操作。程序员甚至不需要对SQL 的熟练掌握，Hibernate/OJB 会根据制定的存储逻辑，自动生成对应的SQL 并调用JDBC 接口加以执行。</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">
								<br />
						</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">Ibatis最直接的好处就是不但为程序员提供了对象与关系数据库之间的映射，同时提供操作方法与SQL间的直接影射，设计者可以直接为一个方法指定一条SQL语句，从而取得更加准确的数据，同时为优化查询、连接查询提供了方便。</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">
								<br />
						</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">一、基本功能</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">
								<br />
						</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">作为又一个轻量级的ORM中间件，ibatis除了提供了对数据库基本的增、删、改、查外还提供了连接管理，缓存支持，线程支持，（分布式）事物管理等一套教为完整的数据库管理功能。</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">
								<br />
						</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">SqlMapClient对象是ibatis持久层操作的基础，相当于hibernate中的session，提供对SQL映射的方法。</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">
								<br />
						</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">insert()方法实现对插入SQL语句的映射；</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">
								<br />
						</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">delete()方法实现对删除SQL语句的映射；</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">
								<br />
						</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">update()方法实现对更新SQL语句的影射；</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">
								<br />
						</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">queryForList()、queryForMap()、queryForObject()、queryForPaginatedList()等方法提供了一组查询SQL语句的影射；</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">
								<br />
						</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">二、使用步骤</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">
								<br />
						</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">1．ibatis SQL Map 配置文件</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">
								<br />
						</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">       文件中对所用数据库的连接做了基本配置，包括数据库驱动类型、用户名、密码，以及连接池的相关管理数据。</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">
								<br />
						</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">2．PO和映射文件</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">
								<br />
						</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">       和hibernate一样，PO作为数据库关系表的影射，也需要响应的映射配置文件，可以手写，也可以借助hibernate的相关工具生成PO，不会影响PO在ibatis中的使用。与hibernate不同的是，ibatis的映射文件中没有对PO中每个属性做响应的描述，而是指定了一系列与PO有关的SQL相关操作，也体现了ibatis良好的灵活性与可扩展性。</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">
								<br />
						</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">3．编写DAO</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">
								<br />
						</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">       在DAO中，可以使用SqlMapClient提供的方法来对应的指定对PO操作的SQL语句，从而使业务逻辑层的开发仍然是面向对象的操作。</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">
								<o:p>
								</o:p>
						</span>
				</p>
				<p style="TEXT-ALIGN: left; LINE-HEIGHT: 18pt; MARGIN-TOP: 5pt; MARGIN-BOTTOM: 3.75pt" class="p0">
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">
								<o:p>
								</o:p>
						</span>
				</p>
				<p style="TEXT-ALIGN: left; LINE-HEIGHT: 18pt; MARGIN-TOP: 5pt; MARGIN-BOTTOM: 3.75pt" class="p0">
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">选择Hibernate还是iBATIS都有它的道理：</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">
								<br />
						</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">Hibernate的特点：</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">
								<br />
						</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">Hibernate功能强大，数据库无关性好，O/R映射能力强，如果你对Hibernate相当精通，而且对Hibernate进行了适当的封装，那么你的项目整个持久层代码会相当简单，需要写的代码很少，开发速度很快，非常爽。以数据库字段一一对应映射得到的PO和Hibernte这种对象化映射得到的PO是截然不同的，本质区别在于这种PO是扁平化的，不像Hibernate映射的PO是可以表达立体的对象继承，聚合等等关系的，这将会直接影响到你的整个软件系统的设计思路。Hibernate对数据库结构提供了较为完整的封装，Hibernate的O/R Mapping实现了POJO 和数据库表之间的映射，以及SQL 的自动生成和执行。程序员往往只需定义好了POJO 到数据库表的映射关系，即可通过Hibernate 提供的方法完成持久层操作。程序员甚至不需要对SQL 的熟练掌握， Hibernate/OJB 会根据制定的存储逻辑，自动生成对应的SQL 并调用JDBC 接口加以执行。Hibernate的缺点就是学习门槛不低，要精通门槛更高，而且怎么设计O/R映射，在性能和对象模型之间如何权衡取得平衡，以及怎样用好Hibernate方面需要你的经验和能力都很强才行，但是Hibernate现在已经是主流O/R Mapping框架，从文档的丰富性，产品的完善性，版本的开发速度都要强于iBATIS。</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">
								<br />
						</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">iBATIS的特点：</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">
								<br />
						</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">iBATIS入门简单，即学即用，提供了数据库查询的自动对象绑定功能，而且延续了很好的SQL使用经验，对于没有那么高的对象模型要求的项目来说，相当完美。iBATIS的缺点就是框架还是比较简陋，功能尚有缺失，虽然简化了数据绑定代码，但是整个底层数据库查询实际还是要自己写的，工作量也比较大，而且不太容易适应快速数据库修改。当系统属于二次开发,无法对数据库结构做到控制和修改,那iBATIS的灵活性将比Hibernate更适合。系统数据处理量巨大，性能要求极为苛刻，这往往意味着我们必须通过经过高度优化的SQL语句（或存储过程）才能达到系统性能设计指标。在这种情况下iBATIS会有更好的可控性和表现。</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">
								<br />
						</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">对于实际的开发进行的比较：</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">
								<br />
						</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">1． iBATIS需要手写sql语句，也可以生成一部分，Hibernate则基本上可以自动生成，偶尔会写一些Hql。同样的需求,iBATIS的工作量比 Hibernate要大很多。类似的，如果涉及到数据库字段的修改，Hibernate修改的地方很少，而iBATIS要把那些sql mapping的地方一一修改。</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">
								<br />
						</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">2. iBatis 可以进行细粒度的优化</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">
								<br />
						</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">比如说我有一个表，这个表有几个或者几十个字段，我需要更新其中的一个字段，iBatis 很简单，执行一个sql UPDATE TABLE_A SET column_1=#column_1# WHERE id=#id# 但是用 Hibernate 的话就比较麻烦了,缺省的情况下 hibernate 会更新所有字段。 当然我记得 hibernate 有一个选项可以控制只保存修改过的字段，但是我不太确定这个功能的负面效果。</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">
								<br />
						</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">例如：我需要列出一个表的部分内容，用 iBatis 的时候，这里面的好处是可以少从数据库读很多数据，节省流量SELECT ID, NAME FROM TABLE_WITH_A_LOT_OF_COLUMN WHERE ...一般情况下Hibernate 会把所有的字段都选出来。比如说有一个上面表有8个字段，其中有一两个比较大的字段，varchar(255)/text。上面的场景中我为什么要把他们也选出来呢？用hibernate 的话，你又不能把这两个不需要的字段设置为lazy load，因为还有很多地方需要一次把整个 domain object 加载出来。这个时候就能显现出ibatis 的好处了。如果我需要更新一条记录（一个对象），如果使用 hibernate，需要现把对象 select 出来，然后再做 update。这对数据库来说就是两条sql。而iBatis只需要一条update的sql就可以了。减少一次与数据库的交互，对于性能的提升是非常重要。</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">
								<br />
						</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">3. 开发方面：</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">
								<br />
						</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">开发效率上，我觉得两者应该差不多。可维护性方面，我觉得 iBatis 更好一些。因为 iBatis 的 sql 都保存到单独的文件中。而 Hibernate 在有些情况下可能会在 java 代码中保sql/hql。相对Hibernate“O/R”而言，iBATIS 是一种“Sql Mapping”的ORM实现。而iBATIS 的着力点，则在于POJO 与SQL之间的映射关系。也就是说，iBATIS并不会为程序员在运行期自动生成SQL 执行。具体的SQL 需要程序员编写，然后通过映射配置文件，将SQL所需的参数，以及返回的结果字段映射到指定POJO。使用iBATIS 提供的ORM机制，对业务逻辑实现人员而言，面对的是纯粹的Java对象，这一层与通过Hibernate 实现ORM 而言基本一致，而对于具体的数据操作，Hibernate会自动生成SQL 语句，而iBATIS 则要求开发者编写具体的SQL 语句。相对Hibernate而言，iBATIS 以SQL开发的工作量和数据库移植性上的让步，为系统设计提供了更大的自由空间。</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">
								<br />
						</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">4. 运行效率</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">
								<br />
						</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">在不考虑 cache 的情况下，iBatis 应该会比hibernate 快一些或者很多。</span>
						<span style="FONT-FAMILY: '宋体'; COLOR: rgb(42,42,42); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">
								<o:p>
								</o:p>
						</span>
				</p>
				<p style="MARGIN-TOP: 0pt; MARGIN-BOTTOM: 0pt" class="p0">
						<span style="FONT-FAMILY: 'Times New Roman'; FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">
								<o:p>
								</o:p>
						</span>
				</p>
		</div>
		<!--EndFragment-->
<img src ="http://www.blogjava.net/supersalor/aggbug/288807.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/supersalor/" target="_blank">李峰</a> 2009-07-28 21:35 <a href="http://www.blogjava.net/supersalor/articles/288807.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>