﻿<?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-Understanding Java</title><link>http://www.blogjava.net/botson/</link><description /><language>zh-cn</language><lastBuildDate>Sun, 03 May 2026 04:35:32 GMT</lastBuildDate><pubDate>Sun, 03 May 2026 04:35:32 GMT</pubDate><ttl>60</ttl><item><title>【转】DWR中使用HttpSession等API</title><link>http://www.blogjava.net/botson/archive/2008/08/15/222151.html</link><dc:creator>Jam Chan</dc:creator><author>Jam Chan</author><pubDate>Fri, 15 Aug 2008 01:34:00 GMT</pubDate><guid>http://www.blogjava.net/botson/archive/2008/08/15/222151.html</guid><wfw:comment>http://www.blogjava.net/botson/comments/222151.html</wfw:comment><comments>http://www.blogjava.net/botson/archive/2008/08/15/222151.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/botson/comments/commentRss/222151.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/botson/services/trackbacks/222151.html</trackback:ping><description><![CDATA[当前的项目中．用到了DWR.以为不用struts没什么关系．结果spring+dwr让我在session获取这块碰到了问题．
<br />
如：系统登录页面中我要进行验证码验证．一般生成的验证码是放在session中的．我点登录的时候．用的是dwr．所以是js直接调用后台的方法．
<br />
那么后台的方法只是一个普通的java类．是不存在什么request,session的．所以就不到session中的值．当然你要是用spirng MVC的话，可能可以．（我没用过，不好说）．
<br />
经查资料，原来ＤＷＲ本身中就可以传session.只不过是隐藏的．
<br />
<br />
那么方法就是通过DWR的ＡＰＩ．（网上说很多人不推荐，不知为什么）
<br />
<br />
具体应用：
<br />
HttpServletRequest,HttpServletResponse,HttpSession,ServletContext,ServletConfig.
<br />
<br />
Java类中定义方法: save(String name, HttpSession session)
<br />
<br />
Javascript调用: Service.save(jsID,jsName,callBack)
<br />
<br />
注意,这里不需要传入session这个参数,DWR会自动传入,在Java端可以直接使用.
<br />
<br />
这样的话，你就可以在后台的save方法中得到sesion了
<img src ="http://www.blogjava.net/botson/aggbug/222151.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/botson/" target="_blank">Jam Chan</a> 2008-08-15 09:34 <a href="http://www.blogjava.net/botson/archive/2008/08/15/222151.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>DWR的DWRUtil.addRows方法的使用</title><link>http://www.blogjava.net/botson/archive/2008/04/23/194952.html</link><dc:creator>Jam Chan</dc:creator><author>Jam Chan</author><pubDate>Wed, 23 Apr 2008 02:05:00 GMT</pubDate><guid>http://www.blogjava.net/botson/archive/2008/04/23/194952.html</guid><wfw:comment>http://www.blogjava.net/botson/comments/194952.html</wfw:comment><comments>http://www.blogjava.net/botson/archive/2008/04/23/194952.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.blogjava.net/botson/comments/commentRss/194952.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/botson/services/trackbacks/194952.html</trackback:ping><description><![CDATA[最近想通过DWR做查询，虽然可以结合ext使用，但是使用太多框架会增加客户端的负荷，因此用到了DWRUtil.addRows方法。<br />
如果想在每行记录的最后添加&#8220;编辑&#8221;或&#8220;删除&#8221;的超级连接，可以通过document.createElement()来处理，请看以下的例子。<br />
<br />
现在需要把封装了这个JavaBean数据的 java.util.List对象 传到客户端<br />
<div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">class</span><span style="color: rgb(0, 0, 0);">&nbsp;Fund&nbsp;</span><span style="color: rgb(0, 0, 255);">implements</span><span style="color: rgb(0, 0, 0);">&nbsp;java.io.Serializable&nbsp;{<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">&nbsp;Fields</span><span style="color: rgb(0, 128, 0);"><br />
</span><span style="color: rgb(0, 0, 0);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">private</span><span style="color: rgb(0, 0, 0);">&nbsp;Long&nbsp;fundNo;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">private</span><span style="color: rgb(0, 0, 0);">&nbsp;String&nbsp;fundName;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">private</span><span style="color: rgb(0, 0, 0);">&nbsp;Float&nbsp;price;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">private</span><span style="color: rgb(0, 0, 0);">&nbsp;String&nbsp;description;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">private</span><span style="color: rgb(0, 0, 0);">&nbsp;String&nbsp;status;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">private</span><span style="color: rgb(0, 0, 0);">&nbsp;Date&nbsp;createdDate;<br />
&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; <span style="color: rgb(23, 152, 55);"><span style="color: rgb(23, 152, 55);"><span style="color: red;"><span style="color: rgb(45, 158, 29);">//Getter &amp; Setter</span></span></span></span><br />
}<br />
</span></div>
<br />
之前如何调用就省略了，想了解DWR的详细信息可以到官方网站<a target="_blank" href="http://getahead.org/dwr">http://getahead.org/dwr</a>学习<br />
<br />
现在，我们看看客户端的回调函数<br />
<div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: rgb(0, 0, 255);">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; function</span><span style="color: rgb(0, 0, 0);">&nbsp;callBack(data){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DWRUtil.removeAllRows(</span><span style="color: rgb(0, 0, 0);">"tbodyId</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">); <span style="color: rgb(45, 158, 29);">// "tbodyId"是需要嵌入行的元素ID</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DWRUtil.addRows(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">tbodyId</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">,&nbsp;data,&nbsp;cellFunctions);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">var</span><span style="color: rgb(0, 0, 0);">&nbsp;cellFunctions&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;[&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">function</span><span style="color: rgb(0, 0, 0);">(item)&nbsp;{&nbsp;</span><span style="color: rgb(0, 0, 255);">return</span><span style="color: rgb(0, 0, 0);">&nbsp;item.fundNo;&nbsp;},&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">function</span><span style="color: rgb(0, 0, 0);">(item)&nbsp;{&nbsp;</span><span style="color: rgb(0, 0, 255);">return</span><span style="color: rgb(0, 0, 0);">&nbsp;item.fundName;&nbsp;},&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">function</span><span style="color: rgb(0, 0, 0);">(item)&nbsp;{&nbsp;</span><span style="color: rgb(0, 0, 255);">return</span><span style="color: rgb(0, 0, 0);">&nbsp;item.price;&nbsp;},&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">function</span><span style="color: rgb(0, 0, 0);">(item)&nbsp;{&nbsp;</span><span style="color: rgb(0, 0, 255);">return</span><span style="color: rgb(0, 0, 0);">&nbsp;item.description;&nbsp;},&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">function</span><span style="color: rgb(0, 0, 0);">(item)&nbsp;{&nbsp;</span><span style="color: rgb(0, 0, 255);">return</span><span style="color: rgb(0, 0, 0);">&nbsp;item.status</span><span style="color: rgb(0, 0, 0);">==</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">1</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">?</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">正常</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">:</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">冻结</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">;&nbsp;},&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">function</span><span style="color: rgb(0, 0, 0);">(item)&nbsp;{&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">var</span><span style="color: rgb(0, 0, 0);">&nbsp;editLink&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;document.createElement(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">a</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;editLink.setAttribute(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">href</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">,</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">edit.do?id=</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">+</span><span style="color: rgb(0, 0, 0);">item.fundNo);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;editLink.innerHTML</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">"</span>编辑<span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">return</span><span style="color: rgb(0, 0, 0);">&nbsp;editLink;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ];</span></div>
<br />
这样在每行的最后一行就会增加&#8220;编辑&#8221;的超级连接了。编辑的具体工作想发给哪个后台类处理，修改一下href属性吧。<br />
<br />
<br />
<img src ="http://www.blogjava.net/botson/aggbug/194952.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/botson/" target="_blank">Jam Chan</a> 2008-04-23 10:05 <a href="http://www.blogjava.net/botson/archive/2008/04/23/194952.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Linux下执行程序时发生错误: cannot restore segment prot after reloc: Permission denied</title><link>http://www.blogjava.net/botson/archive/2008/04/01/190191.html</link><dc:creator>Jam Chan</dc:creator><author>Jam Chan</author><pubDate>Tue, 01 Apr 2008 12:44:00 GMT</pubDate><guid>http://www.blogjava.net/botson/archive/2008/04/01/190191.html</guid><wfw:comment>http://www.blogjava.net/botson/comments/190191.html</wfw:comment><comments>http://www.blogjava.net/botson/archive/2008/04/01/190191.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/botson/comments/commentRss/190191.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/botson/services/trackbacks/190191.html</trackback:ping><description><![CDATA[<div>原来这是SELinux搞的鬼，解决办法有两个</div>
<div>1. 使用chcon 命令</div>
<div>示例: chcon -t texrel_shlib_t
/usr/local/rsi/idl_6.1/bin/bin.linux.x86/*.so</div>
<div>2. 禁止掉SELinux</div>
<div>更改/etc/sysconfig/selinux 文件的内容为 SELINUX=disabled</div>
<div>&nbsp;</div>
<div>这个问题参考了以下链接</div>
<div><a href="http://www.rsinc.com/services/techtip.asp?ttid=3092"><font color="#004377">http://www.rsinc.com/services/techtip.asp?ttid=3092</font></a></div>
<img src ="http://www.blogjava.net/botson/aggbug/190191.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/botson/" target="_blank">Jam Chan</a> 2008-04-01 20:44 <a href="http://www.blogjava.net/botson/archive/2008/04/01/190191.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【Oracle】EXP-00026: 指定了冲突模式 </title><link>http://www.blogjava.net/botson/archive/2008/03/27/188924.html</link><dc:creator>Jam Chan</dc:creator><author>Jam Chan</author><pubDate>Thu, 27 Mar 2008 01:16:00 GMT</pubDate><guid>http://www.blogjava.net/botson/archive/2008/03/27/188924.html</guid><wfw:comment>http://www.blogjava.net/botson/comments/188924.html</wfw:comment><comments>http://www.blogjava.net/botson/archive/2008/03/27/188924.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/botson/comments/commentRss/188924.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/botson/services/trackbacks/188924.html</trackback:ping><description><![CDATA[<span class="Title">1.想使用usera导出userb用户下的表tabb，起初使用如下命令：</span>
<p>exp <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#117;&#115;&#101;&#114;&#97;&#47;&#112;&#97;&#115;&#115;&#97;&#64;&#100;&#98;">usera/passa@db</a> owner=userb tables=(tabb) file=c:\test.dmp</p>
<p>Export: Release 9.2.0.1.0 - Production on 星期五 11月 9 17:48:32 2007</p>
<p>Copyright (c) 1982, 2002, Oracle Corporation.&nbsp; All rights reserved.</p>
<p><br />
连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production<br />
With the Partitioning, Real Application Clusters, OLAP and Data Mining options<br />
EXP-00026: 指定了冲突模式<br />
EXP-00000: 导出终止失败</p>
<p><span class="Title">2.这里感觉只指定了三个参数，应该是owner和tables参数有冲突，对exp命令进行修改：</span></p>
<p>exp <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#117;&#115;&#101;&#114;&#97;&#47;&#112;&#97;&#115;&#115;&#97;&#64;&#100;&#98;">usera/passa@db</a>&nbsp; tables=(userb.tabb) file=c:\test.dmp</p>
<p>Export: Release 9.2.0.1.0 - Production on 星期五 11月 9 17:52:20 2007</p>
<p>Copyright (c) 1982, 2002, Oracle Corporation.&nbsp; All rights reserved.</p>
<p><br />
连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production<br />
With the Partitioning, Real Application Clusters, OLAP and Data Mining options<br />
已导出 ZHS16GBK 字符集和 UTF8 NCHAR 字符集<br />
服务器使用 UTF8 字符集 (可能的字符集转换)</p>
<p>即将导出指定的表通过常规路径 ...<br />
当前的用户已更改为 userb<br />
. . 正在导出表&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tabb&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6 行被导出<br />
EXP-00091: 正在导出可疑的统计信息。<br />
EXP-00091: 正在导出可疑的统计信息。<br />
EXP-00091: 正在导出可疑的统计信息。<br />
导出成功终止，但出现警告。</p>
<p><span style="font-weight: bold;"><span class="Title"><span style="font-weight: bold;">3.使用如下命令可以到处userb：</span></span></span></p>
<p>exp <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#117;&#115;&#101;&#114;&#97;&#47;&#112;&#97;&#115;&#115;&#97;&#64;&#100;&#98;">usera/passa@db</a>&nbsp; owner=userb file=c:\test.dmp <br />
</p>
<img src ="http://www.blogjava.net/botson/aggbug/188924.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/botson/" target="_blank">Jam Chan</a> 2008-03-27 09:16 <a href="http://www.blogjava.net/botson/archive/2008/03/27/188924.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Hibernate+Spring实现多对一关联</title><link>http://www.blogjava.net/botson/archive/2008/03/23/187993.html</link><dc:creator>Jam Chan</dc:creator><author>Jam Chan</author><pubDate>Sun, 23 Mar 2008 02:06:00 GMT</pubDate><guid>http://www.blogjava.net/botson/archive/2008/03/23/187993.html</guid><wfw:comment>http://www.blogjava.net/botson/comments/187993.html</wfw:comment><comments>http://www.blogjava.net/botson/archive/2008/03/23/187993.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/botson/comments/commentRss/187993.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/botson/services/trackbacks/187993.html</trackback:ping><description><![CDATA[我用的是Oracle：两个表
<div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: rgb(0, 128, 128);">--</span><span style="color: rgb(0, 128, 128);">&nbsp;创建用户表</span><span style="color: rgb(0, 128, 128);"><br />
</span><span style="color: rgb(0, 0, 255);">CREATE</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">TABLE</span><span style="color: rgb(0, 0, 0);">&nbsp;SCOTT.bloguser<br />
(<br />
&nbsp;&nbsp;&nbsp;&nbsp;id&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 0); font-weight: bold;">NUMBER</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(128, 128, 128);">NOT</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">NULL</span><span style="color: rgb(0, 0, 0);">,<br />
&nbsp;&nbsp;&nbsp;&nbsp;username&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 0); font-weight: bold;">VARCHAR2</span><span style="color: rgb(0, 0, 0);">(</span><span style="color: rgb(128, 0, 0); font-weight: bold;">50</span><span style="color: rgb(0, 0, 0);">)&nbsp;</span><span style="color: rgb(0, 0, 255);">UNIQUE</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(128, 128, 128);">NOT</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">NULL</span><span style="color: rgb(0, 0, 0);">,<br />
&nbsp;&nbsp;&nbsp;&nbsp;password&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 0); font-weight: bold;">VARCHAR2</span><span style="color: rgb(0, 0, 0);">(</span><span style="color: rgb(128, 0, 0); font-weight: bold;">50</span><span style="color: rgb(0, 0, 0);">)&nbsp;</span><span style="color: rgb(128, 128, 128);">NOT</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">NULL</span><span style="color: rgb(0, 0, 0);">,<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">CONSTRAINT</span><span style="color: rgb(0, 0, 0);">&nbsp;PK_bloguser&nbsp;</span><span style="color: rgb(0, 0, 255);">PRIMARY</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">KEY</span><span style="color: rgb(0, 0, 0);">&nbsp;(id&nbsp;)<br />
);<br />
</span><span style="color: rgb(0, 128, 128);">--</span><span style="color: rgb(0, 128, 128);">&nbsp;创建用户表主键序列</span><span style="color: rgb(0, 128, 128);"><br />
</span><span style="color: rgb(0, 0, 255);">CREATE</span><span style="color: rgb(0, 0, 0);">&nbsp;SEQUENCE </span><span style="color: rgb(0, 0, 0);">SEQ_BLOGUSERID</span><span style="color: rgb(0, 0, 0);"> START&nbsp;</span><span style="color: rgb(0, 0, 255);">WITH</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(128, 0, 0); font-weight: bold;">1</span><span style="color: rgb(0, 0, 0);">&nbsp;INCREMENT&nbsp;</span><span style="color: rgb(0, 0, 255);">BY</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(128, 0, 0); font-weight: bold;">1</span><span style="color: rgb(0, 0, 0);">&nbsp;MINVALUE&nbsp;</span><span style="color: rgb(128, 0, 0); font-weight: bold;">1</span><span style="color: rgb(0, 0, 0);">&nbsp;NOCACHE&nbsp;&nbsp;NOCYCLE&nbsp;&nbsp;NOORDER&nbsp;;<br />
<br />
</span><span style="color: rgb(0, 128, 128);">--</span><span style="color: rgb(0, 128, 128);">&nbsp;创建bolg表</span><span style="color: rgb(0, 128, 128);"><br />
</span><span style="color: rgb(0, 0, 255);">CREATE</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">TABLE</span><span style="color: rgb(0, 0, 0);">&nbsp;SCOTT.bolginfo<br />
(<br />
&nbsp;&nbsp;&nbsp;&nbsp;id&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 0); font-weight: bold;">NUMBER</span><span style="color: rgb(0, 0, 0);">,<br />
&nbsp;&nbsp;&nbsp;&nbsp;userId&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 0); font-weight: bold;">NUMBER</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(128, 128, 128);">NOT</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">NULL</span><span style="color: rgb(0, 0, 0);">,<br />
&nbsp;&nbsp;&nbsp;&nbsp;content&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 0); font-weight: bold;">VARCHAR2</span><span style="color: rgb(0, 0, 0);">(</span><span style="color: rgb(128, 0, 0); font-weight: bold;">1000</span><span style="color: rgb(0, 0, 0);">),<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">CONSTRAINT</span><span style="color: rgb(0, 0, 0);">&nbsp;PK_bolginfo&nbsp;</span><span style="color: rgb(0, 0, 255);">PRIMARY</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">KEY</span><span style="color: rgb(0, 0, 0);">&nbsp;(id&nbsp;)<br />
);<br />
</span><span style="color: rgb(0, 128, 128);">--</span><span style="color: rgb(0, 128, 128);">&nbsp;创建bolg表主键序列</span><span style="color: rgb(0, 128, 128);"><br />
</span><span style="color: rgb(0, 0, 255);">CREATE</span><span style="color: rgb(0, 0, 0);">&nbsp;SEQUENCE </span><span style="color: rgb(0, 0, 0);">SEQ_BLOGID</span><span style="color: rgb(0, 0, 0);"> START&nbsp;</span><span style="color: rgb(0, 0, 255);">WITH</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(128, 0, 0); font-weight: bold;">1</span><span style="color: rgb(0, 0, 0);">&nbsp;INCREMENT&nbsp;</span><span style="color: rgb(0, 0, 255);">BY</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(128, 0, 0); font-weight: bold;">1</span><span style="color: rgb(0, 0, 0);">&nbsp;MINVALUE&nbsp;</span><span style="color: rgb(128, 0, 0); font-weight: bold;">1</span><span style="color: rgb(0, 0, 0);">&nbsp;NOCACHE&nbsp;&nbsp;NOCYCLE&nbsp;&nbsp;NOORDER&nbsp;;<br />
<br />
</span><span style="color: rgb(0, 128, 128);">--</span><span style="color: rgb(0, 128, 128);">添加外键约束</span><span style="color: rgb(0, 128, 128);"><br />
</span><span style="color: rgb(0, 0, 255);">ALTER</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">TABLE</span><span style="color: rgb(0, 0, 0);">&nbsp;SCOTT.bolginfo<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">ADD</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">CONSTRAINT</span><span style="color: rgb(0, 0, 0);">&nbsp;FK_userId_blogId&nbsp;</span><span style="color: rgb(0, 0, 255);">FOREIGN</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">KEY</span><span style="color: rgb(0, 0, 0);">&nbsp;(userId)&nbsp;</span><span style="color: rgb(0, 0, 255);">REFERENCES</span><span style="color: rgb(0, 0, 0);">&nbsp;SCOTT.bloguser(id);</span></div>
<br />
<strong>Bloguser.java</strong><br />
<div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: rgb(0, 0, 255);">package</span><span style="color: rgb(0, 0, 0);">&nbsp;com.jam.hibeinate.po;<br />
<br />
</span><span style="color: rgb(0, 0, 255);">import</span><span style="color: rgb(0, 0, 0);">&nbsp;java.util.Set;<br />
<br />
</span><span style="color: rgb(0, 128, 0);">/**</span><span style="color: rgb(0, 128, 0);"><br />
&nbsp;*&nbsp;Bloguser&nbsp;entity.<br />
&nbsp;*&nbsp;<br />
&nbsp;*&nbsp;</span><span style="color: rgb(128, 128, 128);">@author</span><span style="color: rgb(0, 128, 0);"> Jam Chan<br />
&nbsp;</span><span style="color: rgb(0, 128, 0);">*/</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">class</span><span style="color: rgb(0, 0, 0);">&nbsp;Bloguser </span><span style="color: rgb(0, 0, 255);">implements</span><span style="color: rgb(0, 0, 0);">&nbsp;java.io.Serializable&nbsp;{<br />
</span><span style="color: rgb(0, 128, 0);"><br />
</span><span style="color: rgb(0, 0, 0);"><br />
&nbsp;&nbsp;&nbsp; private Long id;<br />
&nbsp;&nbsp;&nbsp; private String username;<br />
&nbsp;&nbsp;&nbsp; private String password;<br />
&nbsp;&nbsp;&nbsp; private Set bolginfos = new HashSet(0);</span><span style="color: rgb(0, 0, 0);"><br />
}</span></div>
<br />
<strong>Bolginfo.java<br />
</strong>
<div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: rgb(0, 0, 255);">package</span><span style="color: rgb(0, 0, 0);">&nbsp;com.jam.hibeinate.po;<br />
<br />
</span><span style="color: rgb(0, 128, 0);">/**</span><span style="color: rgb(0, 128, 0);"><br />
&nbsp;*&nbsp;Bolginfo&nbsp;entity.<br />
&nbsp;*&nbsp;<br />
&nbsp;*&nbsp;</span><span style="color: rgb(128, 128, 128);">@author</span><span style="color: rgb(0, 128, 0);"> Jam Chan<br />
&nbsp;</span><span style="color: rgb(0, 128, 0);">*/</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">class</span><span style="color: rgb(0, 0, 0);">&nbsp;Bolginfo&nbsp;</span><span style="color: rgb(0, 0, 255);">implements</span><span style="color: rgb(0, 0, 0);">&nbsp;java.io.Serializable&nbsp;{<br />
<br />
&nbsp;&nbsp;&nbsp; private Long id;<br />
&nbsp;&nbsp;&nbsp; private Bloguser bloguser;<br />
&nbsp;&nbsp;&nbsp; private String content;<br />
<br />
}</span></div>
<br />
<strong>Bloguser.hbm.xml<br />
</strong>
<div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: rgb(0, 0, 255);">&lt;?</span><span style="color: rgb(255, 0, 255);">xml&nbsp;version="1.0"&nbsp;encoding="utf-8"</span><span style="color: rgb(0, 0, 255);">?&gt;</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 0, 255);">&lt;!</span><span style="color: rgb(255, 0, 255);">DOCTYPE&nbsp;hibernate-mapping&nbsp;PUBLIC&nbsp;"-//Hibernate/Hibernate&nbsp;Mapping&nbsp;DTD&nbsp;3.0//EN"<br />
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 0);">&lt;!--</span><span style="color: rgb(0, 128, 0);">&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;Mapping&nbsp;file&nbsp;autogenerated&nbsp;by&nbsp;MyEclipse&nbsp;Persistence&nbsp;Tools<br />
</span><span style="color: rgb(0, 128, 0);">--&gt;</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">hibernate-mapping</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">class&nbsp;</span><span style="color: rgb(255, 0, 0);">name</span><span style="color: rgb(0, 0, 255);">="com.jam.hibeinate.po.Bloguser"</span><span style="color: rgb(255, 0, 0);">&nbsp;table</span><span style="color: rgb(0, 0, 255);">="BLOGUSER"</span><span style="color: rgb(255, 0, 0);">&nbsp;schema</span><span style="color: rgb(0, 0, 255);">="SCOTT"</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">id&nbsp;</span><span style="color: rgb(255, 0, 0);">name</span><span style="color: rgb(0, 0, 255);">="id"</span><span style="color: rgb(255, 0, 0);">&nbsp;type</span><span style="color: rgb(0, 0, 255);">="java.lang.Long"</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">column&nbsp;</span><span style="color: rgb(255, 0, 0);">name</span><span style="color: rgb(0, 0, 255);">="ID"</span><span style="color: rgb(255, 0, 0);">&nbsp;precision</span><span style="color: rgb(0, 0, 255);">="22"</span><span style="color: rgb(255, 0, 0);">&nbsp;scale</span><span style="color: rgb(0, 0, 255);">="0"</span><span style="color: rgb(255, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">/&gt;</span><span style="color: rgb(0, 0, 0);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">generator&nbsp;</span><span style="color: rgb(255, 0, 0);">class</span><span style="color: rgb(0, 0, 255);">="sequence"</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">param&nbsp;</span><span style="color: rgb(255, 0, 0);">name</span><span style="color: rgb(0, 0, 255);">="sequence"</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SEQ_BLOGUSERID<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">param</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">generator</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">id</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">property&nbsp;</span><span style="color: rgb(255, 0, 0);">name</span><span style="color: rgb(0, 0, 255);">="username"</span><span style="color: rgb(255, 0, 0);">&nbsp;type</span><span style="color: rgb(0, 0, 255);">="java.lang.String"</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">column&nbsp;</span><span style="color: rgb(255, 0, 0);">name</span><span style="color: rgb(0, 0, 255);">="USERNAME"</span><span style="color: rgb(255, 0, 0);">&nbsp;length</span><span style="color: rgb(0, 0, 255);">="50"</span><span style="color: rgb(255, 0, 0);">&nbsp;not-null</span><span style="color: rgb(0, 0, 255);">="true"</span><span style="color: rgb(255, 0, 0);">&nbsp;unique</span><span style="color: rgb(0, 0, 255);">="true"</span><span style="color: rgb(255, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">/&gt;</span><span style="color: rgb(0, 0, 0);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">property</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">property&nbsp;</span><span style="color: rgb(255, 0, 0);">name</span><span style="color: rgb(0, 0, 255);">="password"</span><span style="color: rgb(255, 0, 0);">&nbsp;type</span><span style="color: rgb(0, 0, 255);">="java.lang.String"</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">column&nbsp;</span><span style="color: rgb(255, 0, 0);">name</span><span style="color: rgb(0, 0, 255);">="PASSWORD"</span><span style="color: rgb(255, 0, 0);">&nbsp;length</span><span style="color: rgb(0, 0, 255);">="50"</span><span style="color: rgb(255, 0, 0);">&nbsp;not-null</span><span style="color: rgb(0, 0, 255);">="true"</span><span style="color: rgb(255, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">/&gt;</span><span style="color: rgb(0, 0, 0);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">property</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">set&nbsp;</span><span style="color: rgb(255, 0, 0);">name</span><span style="color: rgb(0, 0, 255);">="bolginfos"</span><span style="color: rgb(255, 0, 0);">&nbsp;inverse</span><span style="color: rgb(0, 0, 255);">="true"</span><span style="color: rgb(255, 0, 0);">&nbsp;cascade</span><span style="color: rgb(0, 0, 255);">="all"</span><span style="color: rgb(255, 0, 0);">&nbsp;lazy</span><span style="color: rgb(0, 0, 255);">="false"</span><span style="color: rgb(255, 0, 0);">&nbsp;outer-join</span><span style="color: rgb(0, 0, 255);">="auto"</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">key</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">column&nbsp;</span><span style="color: rgb(255, 0, 0);">name</span><span style="color: rgb(0, 0, 255);">="USERID"</span><span style="color: rgb(255, 0, 0);">&nbsp;precision</span><span style="color: rgb(0, 0, 255);">="22"</span><span style="color: rgb(255, 0, 0);">&nbsp;scale</span><span style="color: rgb(0, 0, 255);">="0"</span><span style="color: rgb(255, 0, 0);">&nbsp;not-null</span><span style="color: rgb(0, 0, 255);">="true"</span><span style="color: rgb(255, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">/&gt;</span><span style="color: rgb(0, 0, 0);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">key</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">one-to-many&nbsp;</span><span style="color: rgb(255, 0, 0);">class</span><span style="color: rgb(0, 0, 255);">="com.jam.hibeinate.po.Bolginfo"</span><span style="color: rgb(255, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">/&gt;</span><span style="color: rgb(0, 0, 0);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">set</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">class</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">hibernate-mapping</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br />
</span></div>
<br />
<span style="font-weight: bold;">Bolginfo.hbm.xml<br />
</span>
<div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: rgb(0, 0, 255);">&lt;?</span><span style="color: rgb(255, 0, 255);">xml&nbsp;version="1.0"&nbsp;encoding="utf-8"</span><span style="color: rgb(0, 0, 255);">?&gt;</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 0, 255);">&lt;!</span><span style="color: rgb(255, 0, 255);">DOCTYPE&nbsp;hibernate-mapping&nbsp;PUBLIC&nbsp;"-//Hibernate/Hibernate&nbsp;Mapping&nbsp;DTD&nbsp;3.0//EN"<br />
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 0);">&lt;!--</span><span style="color: rgb(0, 128, 0);">&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;Mapping&nbsp;file&nbsp;autogenerated&nbsp;by&nbsp;MyEclipse&nbsp;Persistence&nbsp;Tools<br />
</span><span style="color: rgb(0, 128, 0);">--&gt;</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">hibernate-mapping</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">class&nbsp;</span><span style="color: rgb(255, 0, 0);">name</span><span style="color: rgb(0, 0, 255);">="com.jam.hibeinate.po.Bolginfo"</span><span style="color: rgb(255, 0, 0);">&nbsp;table</span><span style="color: rgb(0, 0, 255);">="BOLGINFO"</span><span style="color: rgb(255, 0, 0);">&nbsp;schema</span><span style="color: rgb(0, 0, 255);">="SCOTT"</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">id&nbsp;</span><span style="color: rgb(255, 0, 0);">name</span><span style="color: rgb(0, 0, 255);">="id"</span><span style="color: rgb(255, 0, 0);">&nbsp;type</span><span style="color: rgb(0, 0, 255);">="java.lang.Long"</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">column&nbsp;</span><span style="color: rgb(255, 0, 0);">name</span><span style="color: rgb(0, 0, 255);">="ID"</span><span style="color: rgb(255, 0, 0);">&nbsp;precision</span><span style="color: rgb(0, 0, 255);">="22"</span><span style="color: rgb(255, 0, 0);">&nbsp;scale</span><span style="color: rgb(0, 0, 255);">="0"</span><span style="color: rgb(255, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">/&gt;</span><span style="color: rgb(0, 0, 0);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">generator&nbsp;</span><span style="color: rgb(255, 0, 0);">class</span><span style="color: rgb(0, 0, 255);">="sequence"</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">param&nbsp;</span><span style="color: rgb(255, 0, 0);">name</span><span style="color: rgb(0, 0, 255);">="sequence"</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);">SEQ_BLOGID</span><span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">param</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">generator</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">id</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">many-to-one&nbsp;</span><span style="color: rgb(255, 0, 0);">name</span><span style="color: rgb(0, 0, 255);">="bloguser"</span><span style="color: rgb(255, 0, 0);">&nbsp;class</span><span style="color: rgb(0, 0, 255);">="com.jam.hibeinate.po.Bloguser"</span><span style="color: rgb(255, 0, 0);">&nbsp;fetch</span><span style="color: rgb(0, 0, 255);">="select"</span><span style="color: rgb(255, 0, 0);">&nbsp;insert</span><span style="color: rgb(0, 0, 255);">="true"</span><span style="color: rgb(255, 0, 0);">&nbsp;update</span><span style="color: rgb(0, 0, 255);">="true"</span><span style="color: rgb(255, 0, 0);"> outer-join</span><span style="color: rgb(0, 0, 255);">="true"</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">column&nbsp;</span><span style="color: rgb(255, 0, 0);">name</span><span style="color: rgb(0, 0, 255);">="USERID"</span><span style="color: rgb(255, 0, 0);">&nbsp;precision</span><span style="color: rgb(0, 0, 255);">="22"</span><span style="color: rgb(255, 0, 0);">&nbsp;scale</span><span style="color: rgb(0, 0, 255);">="0"</span><span style="color: rgb(255, 0, 0);">&nbsp;not-null</span><span style="color: rgb(0, 0, 255);">="true"</span><span style="color: rgb(255, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">/&gt;</span><span style="color: rgb(0, 0, 0);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">many-to-one</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">property&nbsp;</span><span style="color: rgb(255, 0, 0);">name</span><span style="color: rgb(0, 0, 255);">="content"</span><span style="color: rgb(255, 0, 0);">&nbsp;type</span><span style="color: rgb(0, 0, 255);">="java.lang.String"</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">column&nbsp;</span><span style="color: rgb(255, 0, 0);">name</span><span style="color: rgb(0, 0, 255);">="CONTENT"</span><span style="color: rgb(255, 0, 0);">&nbsp;length</span><span style="color: rgb(0, 0, 255);">="1000"</span><span style="color: rgb(255, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">/&gt;</span><span style="color: rgb(0, 0, 0);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">property</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">class</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">hibernate-mapping</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br />
</span></div>
<br />
<span style="font-weight: bold;"><span style="color: red;">注：Spring的applicationContext.xml事务代理</span></span><span style="font-weight: bold;"><span style="color: red;">管理</span></span><span style="font-weight: bold;"><span style="color: red;">的配置省略&#8230;&#8230;<br />
<br />
</span></span><span style="color: red;"><span style="color: rgb(0, 0, 2);">之前我实现多表查询的时候抛出<br />
</span></span>
<div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: rgb(0, 0, 0);">could&nbsp;not&nbsp;initialize&nbsp;proxy&nbsp;</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">&nbsp;the&nbsp;owning&nbsp;Session&nbsp;was&nbsp;closed<br />
org.hibernate.LazyInitializationException:&nbsp;could&nbsp;not&nbsp;initialize&nbsp;proxy&nbsp;</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">&nbsp;the&nbsp;owning&nbsp;Session&nbsp;was&nbsp;closed <br />
&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;<br />
</span></div>
的异常，如果想使Session is opened需要在<span style="color: rgb(0, 0, 2); font-weight: bold;">web.xml</span>添加如下配置：<br />
<div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: rgb(0, 128, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp; </span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">filter</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">filter-name</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);">openSessionInViewFilter</span><span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">filter-name</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">filter-class</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;org.springframework.orm.hibernate3.support.OpenSessionInViewFilter<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">filter-class</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">filter</span><span style="color: rgb(0, 0, 255);">&gt;<br />
&nbsp;&nbsp;&nbsp; <span style="color: rgb(63, 84, 18);">&lt;!-- 选择需要过滤的页面 --&gt;</span><br />
</span><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">filter-mapping</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">filter-name</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);">openSessionInViewFilter</span><span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">filter-name</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">url-pattern</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);">*.faces</span><span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">url-pattern</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">filter-mapping</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">filter-mapping</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">filter-name</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);">openSessionInViewFilter</span><span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">filter-name</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">url-pattern</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);">*.do</span><span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">url-pattern</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">filter-mapping</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">filter-mapping</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">filter-name</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);">openSessionInViewFilter</span><span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">filter-name</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">url-pattern</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);">*.jsp</span><span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">url-pattern</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">filter-mapping</span><span style="color: rgb(0, 0, 255);">&gt;</span></div>
<br />
之后就OK啦~！！哈哈<br />
<br />
<br />
<br />
<img src ="http://www.blogjava.net/botson/aggbug/187993.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/botson/" target="_blank">Jam Chan</a> 2008-03-23 10:06 <a href="http://www.blogjava.net/botson/archive/2008/03/23/187993.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JSF整合Spring时各文件的配置</title><link>http://www.blogjava.net/botson/archive/2008/03/20/187557.html</link><dc:creator>Jam Chan</dc:creator><author>Jam Chan</author><pubDate>Thu, 20 Mar 2008 12:44:00 GMT</pubDate><guid>http://www.blogjava.net/botson/archive/2008/03/20/187557.html</guid><wfw:comment>http://www.blogjava.net/botson/comments/187557.html</wfw:comment><comments>http://www.blogjava.net/botson/archive/2008/03/20/187557.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/botson/comments/commentRss/187557.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/botson/services/trackbacks/187557.html</trackback:ping><description><![CDATA[最近在做一个需要JSF和Spring整合的项目，之前不知道如何在后台管理Bean获取被Spring管理的业务类对象，现在解决了，可以跑起来了！<br />
<br />
<ol>
    <li><span style="color: red;">web.xml<br />
    </span>
    <div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
    <br />
    Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
    http://www.CodeHighlighter.com/<br />
    <br />
    --><span style="color: #008080;">&nbsp;1</span>&nbsp;<span style="color: #808080;">&lt;</span><span style="color: #000000;">?xml&nbsp;version</span><span style="color: #808080;">=</span><span style="color: #000000;">"</span><span style="color: #800000; font-weight: bold;">1.0</span><span style="color: #000000;">"?</span><span style="color: #808080;">&gt;</span><span style="color: #000000;"><br />
    </span><span style="color: #008080;">&nbsp;2</span>&nbsp;<span style="color: #808080;">&lt;</span><span style="color: #000000;">web</span><span style="color: #808080;">-</span><span style="color: #000000;">app&nbsp;xmlns</span><span style="color: #808080;">=</span><span style="color: #000000;">"http:</span><span style="color: #808080;">//</span><span style="color: #000000;">java.sun.com</span><span style="color: #808080;">/</span><span style="color: #000000;">xml</span><span style="color: #808080;">/</span><span style="color: #000000;">ns</span><span style="color: #808080;">/</span><span style="color: #000000;">j2ee"<br />
    </span><span style="color: #008080;">&nbsp;3</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;xmlns:xsi</span><span style="color: #808080;">=</span><span style="color: #000000;">"http:</span><span style="color: #808080;">//</span><span style="color: #000000;">www.w3.org</span><span style="color: #808080;">/</span><span style="color: #800000; font-weight: bold;">2001</span><span style="color: #808080;">/</span><span style="color: #000000;">XMLSchema</span><span style="color: #808080;">-</span><span style="color: #000000;">instance"<br />
    </span><span style="color: #008080;">&nbsp;4</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;xsi:schemaLocation</span><span style="color: #808080;">=</span><span style="color: #000000;">"http:</span><span style="color: #808080;">//</span><span style="color: #000000;">java.sun.com</span><span style="color: #808080;">/</span><span style="color: #000000;">xml</span><span style="color: #808080;">/</span><span style="color: #000000;">ns</span><span style="color: #808080;">/</span><span style="color: #000000;">j2ee<br />
    </span><span style="color: #008080;">&nbsp;5</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;http:</span><span style="color: #808080;">//</span><span style="color: #000000;">java.sun.com</span><span style="color: #808080;">/</span><span style="color: #000000;">xml</span><span style="color: #808080;">/</span><span style="color: #000000;">ns</span><span style="color: #808080;">/</span><span style="color: #000000;">j2ee</span><span style="color: #808080;">/</span><span style="color: #000000;">web</span><span style="color: #808080;">-</span><span style="color: #000000;">app_2_4.xsd"<br />
    </span><span style="color: #008080;">&nbsp;6</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;version</span><span style="color: #808080;">=</span><span style="color: #000000;">"</span><span style="color: #800000; font-weight: bold;">2.4</span><span style="color: #000000;">"</span><span style="color: #808080;">&gt;</span><span style="color: #000000;"><br />
    </span><span style="color: #008080;">&nbsp;7</span>&nbsp;<span style="color: #000000;">&nbsp;<br />
    </span><span style="color: #008080;">&nbsp;8</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;</span><span style="color: #808080;">&lt;</span><span style="color: #000000;">display</span><span style="color: #808080;">-</span><span style="color: #000000;">name</span><span style="color: #808080;">&gt;</span><span style="color: #000000;">example</span><span style="color: #808080;">&lt;/</span><span style="color: #000000;">display</span><span style="color: #808080;">-</span><span style="color: #000000;">name</span><span style="color: #808080;">&gt;</span><span style="color: #000000;"><br />
    </span><span style="color: #008080;">&nbsp;9</span>&nbsp;<span style="color: #000000;"><br />
    </span><strong><span style="color: #008080;">10</span></strong>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><strong><span style="color: #808080;">&lt;</span><span style="color: #000000;">context</span><span style="color: #808080;">-</span><span style="color: #000000;">param</span><span style="color: #808080;">&gt;</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;<br />
    </span><span style="color: #008080;">11</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">&lt;</span><span style="color: #000000;">param</span><span style="color: #808080;">-</span><span style="color: #000000;">name</span><span style="color: #808080;">&gt;</span><span style="color: #000000;">contextConfigLocation</span><span style="color: #808080;">&lt;/</span><span style="color: #000000;">param</span><span style="color: #808080;">-</span><span style="color: #000000;">name</span><span style="color: #808080;">&gt;</span><span style="color: #000000;"><br />
    </span><span style="color: #008080;">12</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">&lt;</span><span style="color: #000000;">param</span><span style="color: #808080;">-</span><span style="color: #000000;">value</span><span style="color: #808080;">&gt;/</span><span style="color: #000000;">WEB</span><span style="color: #808080;">-</span><span style="color: #000000;">INF<span style="color: #040000;"><span style="color: #040000;"><span style="color: #808080;">/classes/</span></span></span><span style="color: #040000;"><span style="color: #000000;">appl</span></span></span><span style="color: #000000;">icationContext.xml</span><span style="color: #808080;">&lt;/</span><span style="color: #000000;">param</span><span style="color: #808080;">-</span><span style="color: #000000;">value</span><span style="color: #808080;">&gt;</span><span style="color: #000000;"><br />
    </span><span style="color: #008080;">13</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">&lt;/</span><span style="color: #000000;">context</span><span style="color: #808080;">-</span><span style="color: #000000;">param</span><span style="color: #808080;">&gt;</span><span style="color: #000000;"><br />
    </span><span style="color: #008080;">14</span>&nbsp;<span style="color: #000000;"><br />
    </span><span style="color: #008080;">15</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">&lt;</span><span style="color: #000000;">listener</span><span style="color: #808080;">&gt;</span><span style="color: #000000;"><br />
    </span><span style="color: #008080;">16</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">&lt;</span><span style="color: #000000;">listener</span><span style="color: #808080;">-</span><span style="color: #000000;">class</span><span style="color: #808080;">&gt;</span><span style="color: #000000;">org.springframework.web.context.ContextLoaderListener</span><span style="color: #808080;">&lt;/</span><span style="color: #000000;">listener</span><span style="color: #808080;">-</span><span style="color: #000000;">class</span><span style="color: #808080;">&gt;</span><span style="color: #000000;"><br />
    </span><span style="color: #008080;">17</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp; </span><span style="color: #808080;">&lt;/</span><span style="color: #000000;">listener</span><span style="color: #808080;">&gt;</span></strong><span style="color: #000000;"><br />
    </span><span style="color: #008080;">18</span>&nbsp;<span style="color: #000000;"><br />
    </span><span style="color: #008080;">19</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">&lt;</span><span style="color: #000000;">servlet</span><span style="color: #808080;">&gt;</span><span style="color: #000000;"><br />
    </span><span style="color: #008080;">20</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">&lt;</span><span style="color: #000000;">display</span><span style="color: #808080;">-</span><span style="color: #000000;">name</span><span style="color: #808080;">&gt;</span><span style="color: #000000;">FacesServlet</span><span style="color: #808080;">&lt;/</span><span style="color: #000000;">display</span><span style="color: #808080;">-</span><span style="color: #000000;">name</span><span style="color: #808080;">&gt;</span><span style="color: #000000;"><br />
    </span><span style="color: #008080;">21</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">&lt;</span><span style="color: #000000;">servlet</span><span style="color: #808080;">-</span><span style="color: #000000;">name</span><span style="color: #808080;">&gt;</span><span style="color: #000000;">FacesServlet</span><span style="color: #808080;">&lt;/</span><span style="color: #000000;">servlet</span><span style="color: #808080;">-</span><span style="color: #000000;">name</span><span style="color: #808080;">&gt;</span><span style="color: #000000;"><br />
    </span><span style="color: #008080;">22</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">&lt;</span><span style="color: #000000;">servlet</span><span style="color: #808080;">-</span><span style="color: #000000;">class</span><span style="color: #808080;">&gt;</span><span style="color: #000000;">javax.faces.webapp.FacesServlet</span><span style="color: #808080;">&lt;/</span><span style="color: #000000;">servlet</span><span style="color: #808080;">-</span><span style="color: #000000;">class</span><span style="color: #808080;">&gt;</span><span style="color: #000000;"><br />
    </span><span style="color: #008080;">23</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">&lt;</span><span style="color: #0000ff;">load</span><span style="color: #808080;">-</span><span style="color: #0000ff;">on</span><span style="color: #808080;">-</span><span style="color: #000000;">startup</span><span style="color: #808080;">&gt;</span><span style="color: #800000; font-weight: bold;">0</span><span style="color: #808080;">&lt;/</span><span style="color: #0000ff;">load</span><span style="color: #808080;">-</span><span style="color: #0000ff;">on</span><span style="color: #808080;">-</span><span style="color: #000000;">startup</span><span style="color: #808080;">&gt;</span><span style="color: #000000;"><br />
    </span><span style="color: #008080;">24</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp; </span><span style="color: #808080;">&lt;/</span><span style="color: #000000;">servlet</span><span style="color: #808080;">&gt;</span><span style="color: #000000;"><br />
    </span><span style="color: #008080;">25</span>&nbsp;<span style="color: #000000;"><br />
    </span><span style="color: #008080;">26</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp; </span><span style="color: #808080;">&lt;</span><span style="color: #000000;">servlet</span><span style="color: #808080;">-</span><span style="color: #000000;">mapping</span><span style="color: #808080;">&gt;</span><span style="color: #000000;"><br />
    </span><span style="color: #008080;">27</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">&lt;</span><span style="color: #000000;">servlet</span><span style="color: #808080;">-</span><span style="color: #000000;">name</span><span style="color: #808080;">&gt;</span><span style="color: #000000;">FacesServlet</span><span style="color: #808080;">&lt;/</span><span style="color: #000000;">servlet</span><span style="color: #808080;">-</span><span style="color: #000000;">name</span><span style="color: #808080;">&gt;</span><span style="color: #000000;"><br />
    </span><span style="color: #008080;">28</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">&lt;</span><span style="color: #000000;">url</span><span style="color: #808080;">-</span><span style="color: #000000;">pattern</span><span style="color: #808080;">&gt;</span><span style="color: #008080;">*.faces</span><span style="color: #008080;">&lt;/url-pattern&gt;<br />
    </span><span style="color: #008080;">29</span>&nbsp;<span style="color: #008080;">&nbsp;&nbsp;&nbsp;&nbsp;&lt;/servlet-mapping&gt;<br />
    </span><span style="color: #008080;">30</span>&nbsp;<span style="color: #008080;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
    </span><span style="color: #008080;">31</span>&nbsp;<span style="color: #008080;">&lt;/web-app&gt;</span></div>
    <br />
    </li>
    <li><span style="color: red;">faces-config.xml<br />
    </span>
    <div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
    <br />
    Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
    http://www.CodeHighlighter.com/<br />
    <br />
    --><span style="color: #008080;">&nbsp;1</span>&nbsp;<span style="color: #808080;">&lt;</span><span style="color: #000000;">?xml&nbsp;version</span><span style="color: #808080;">=</span><span style="color: #ff0000;">'</span><span style="color: #ff0000;">1.0</span><span style="color: #ff0000;">'</span><span style="color: #000000;">&nbsp;encoding</span><span style="color: #808080;">=</span><span style="color: #ff0000;">'</span><span style="color: #ff0000;">UTF-8</span><span style="color: #ff0000;">'</span><span style="color: #000000;">?</span><span style="color: #808080;">&gt;</span><span style="color: #000000;"><br />
    </span><span style="color: #008080;">&nbsp;2</span>&nbsp;<span style="color: #808080;">&lt;</span><span style="color: #000000;">!DOCTYPE&nbsp;faces</span><span style="color: #808080;">-</span><span style="color: #000000;">config&nbsp;</span><span style="color: #0000ff;">PUBLIC</span><span style="color: #000000;"><br />
    </span><span style="color: #008080;">&nbsp;3</span>&nbsp;<span style="color: #000000;">"</span><span style="color: #808080;">-//</span><span style="color: #000000;">Sun&nbsp;Microsystems,&nbsp;Inc.</span><span style="color: #808080;">//</span><span style="color: #000000;">DTD&nbsp;JavaServer&nbsp;Faces&nbsp;Config&nbsp;</span><span style="color: #800000; font-weight: bold;">1.1</span><span style="color: #808080;">//</span><span style="color: #000000;">EN"<br />
    </span><span style="color: #008080;">&nbsp;4</span>&nbsp;<span style="color: #000000;">"http:</span><span style="color: #808080;">//</span><span style="color: #000000;">java.sun.com</span><span style="color: #808080;">/</span><span style="color: #000000;">dtd</span><span style="color: #808080;">/</span><span style="color: #000000;">web</span><span style="color: #808080;">-</span><span style="color: #000000;">facesconfig_1_1.dtd"</span><span style="color: #808080;">&gt;</span><span style="color: #000000;"><br />
    </span><span style="color: #008080;">&nbsp;5</span>&nbsp;<span style="color: #808080;">&lt;</span><span style="color: #000000;">faces</span><span style="color: #808080;">-</span><span style="color: #000000;">config</span><span style="color: #808080;">&gt;</span><span style="color: #000000;"><br />
    </span><strong><span style="color: #008080;">&nbsp;6</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">&lt;</span><span style="color: #000000;">application</span><span style="color: #808080;">&gt;</span><span style="color: #000000;"><br />
    </span><span style="color: #008080;">&nbsp;7</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">&lt;</span><span style="color: #000000;">variable</span><span style="color: #808080;">-</span><span style="color: #000000;">resolver</span><span style="color: #808080;">&gt;</span><span style="color: #000000;"><br />
    </span><span style="color: #008080;">&nbsp;8</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;org.springframework.web.jsf.DelegatingVariableResolver<br />
    </span><span style="color: #008080;">&nbsp;9</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">&lt;/</span><span style="color: #000000;">variable</span><span style="color: #808080;">-</span><span style="color: #000000;">resolver</span><span style="color: #808080;">&gt;</span><span style="color: #000000;"><br />
    </span><span style="color: #008080;">10</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">&lt;/</span><span style="color: #000000;">application</span><span style="color: #808080;">&gt;</span></strong><span style="color: #808080;"><br />
    </span><span style="color: #000000;"><br />
    </span><span style="color: #008080;">12</span>&nbsp;<span style="color: #808080;">&lt;</span><span style="color: #000000;">managed</span><span style="color: #808080;">-</span><span style="color: #000000;">bean</span><span style="color: #808080;">&gt;</span><span style="color: #000000;"><br />
    </span><span style="color: #008080;">13</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;</span><span style="color: #808080;">&lt;</span><span style="color: #000000;">managed</span><span style="color: #808080;">-</span><span style="color: #000000;">bean</span><span style="color: #808080;">-</span><span style="color: #000000;">name</span><span style="color: #808080;">&gt;</span><span style="color: #000000;">infoBean</span><span style="color: #808080;">&lt;/</span><span style="color: #000000;">managed</span><span style="color: #808080;">-</span><span style="color: #000000;">bean</span><span style="color: #808080;">-</span><span style="color: #000000;">name</span><span style="color: #808080;">&gt;</span><span style="color: #000000;"><br />
    </span><span style="color: #008080;">14</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;</span><span style="color: #808080;">&lt;</span><span style="color: #000000;">managed</span><span style="color: #808080;">-</span><span style="color: #000000;">bean</span><span style="color: #808080;">-</span><span style="color: #000000;">class</span><span style="color: #808080;">&gt;</span><span style="color: #000000;"><br />
    </span><span style="color: #008080;">15</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;com.jam.managedbeans.InfoBean<br />
    </span><span style="color: #008080;">16</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;</span><span style="color: #808080;">&lt;/</span><span style="color: #000000;">managed</span><span style="color: #808080;">-</span><span style="color: #000000;">bean</span><span style="color: #808080;">-</span><span style="color: #000000;">class</span><span style="color: #808080;">&gt;</span><span style="color: #000000;">&nbsp;<br />
    </span><span style="color: #008080;">17</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;</span><span style="color: #808080;">&lt;</span><span style="color: #000000;">managed</span><span style="color: #808080;">-</span><span style="color: #000000;">bean</span><span style="color: #808080;">-</span><span style="color: #000000;">scope</span><span style="color: #808080;">&gt;</span><span style="color: #000000;">request</span><span style="color: #808080;">&lt;/</span><span style="color: #000000;">managed</span><span style="color: #808080;">-</span><span style="color: #000000;">bean</span><span style="color: #808080;">-</span><span style="color: #000000;">scope</span><span style="color: #808080;">&gt;</span><span style="color: #000000;"><br />
    </span><span style="color: #008080;">18</span>&nbsp;<span style="color: #808080;">&lt;/</span><span style="color: #000000;">managed</span><span style="color: #808080;">-</span><span style="color: #000000;">bean</span><span style="color: #808080;">&gt;</span><span style="color: #000000;"><br />
    </span><span style="color: #008080;">19</span>&nbsp;<span style="color: #000000;"><br />
    </span><span style="color: #008080;">20</span>&nbsp;<span style="color: #808080;">&lt;/</span><span style="color: #000000;">faces</span><span style="color: #808080;">-</span><span style="color: #000000;">config</span><span style="color: #808080;">&gt;</span></div>
    <br />
    <br />
    </li>
    <li>
    <span style="color: #000000;"><span style="color: red;">InfoBean.java</span></span><br />
    <span>假如</span><u><span style="color: #000000;"><span style="color: red;">InfoBean</span></span></u><span>中需要使用业务类<u><span style="color: red;">UserService</span></u>的方法，而</span><span><u><span style="color: red;">UserService</span></u>交由Spring管理(<strong><span style="color: #2c8e1f;">id="userService"</span></strong>)，</span><u><span style="color: #000000;"><span style="color: red;">InfoBean</span></span></u><span>可以这样写：<br />
    </span>
    <div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
    <br />
    Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
    http://www.CodeHighlighter.com/<br />
    <br />
    --><span style="color: #0000ff;">package</span><span style="color: #000000;"> </span><span style="color: #000000;">com.jam.managedbeans</span><span style="color: #000000;">;<br />
    <br />
    </span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;java.util.Map;<br />
    <br />
    </span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;javax.faces.context.ExternalContext;<br />
    </span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;javax.faces.context.FacesContext;<br />
    <br />
    </span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;org.springframework.context.ApplicationContext;<br />
    </span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;org.springframework.web.jsf.FacesContextUtils;<br />
    <br />
    </span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;com.jam.hibeinate.po.Bloguser;<br />
    </span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;com.jam.service.UserService;<br />
    <br />
    </span><span style="color: #008000;">/**</span><span style="color: #008000;"><br />
    &nbsp;*&nbsp;</span><span style="color: #808080;">@author</span><span style="color: #008000;"> Jam Chan<br />
    &nbsp;*&nbsp;<br />
    &nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
    </span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">final</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">class</span><span style="color: #000000;"> </span><span style="color: #000000;">InfoBean</span><span style="color: #000000;"> </span><span style="color: #0000ff;">extends</span><span style="color: #000000;">&nbsp;Object&nbsp;{<br />
    <br />
    &nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">/**</span><span style="color: #008000;"><br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;用户名<br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
    &nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;String&nbsp;userName;</span><span style="color: #000000;"><br />
    &nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">/**</span><span style="color: #008000;"><br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* 业务类<br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
    &nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;UserService&nbsp;userService;<br />
    &nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">/**</span><span style="color: #008000;"><br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;密码<br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
    &nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;String&nbsp;password;<br />
    <br />
    &nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">/**</span><span style="color: #008000;"><br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;登陆验证<br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;<br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080;">@return</span><span style="color: #008000;"><br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
    &nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;String&nbsp;loginValidate()&nbsp;{<br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FacesContext&nbsp;facesContext&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;FacesContext.getCurrentInstance();<br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ExternalContext&nbsp;extnContext&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;facesContext.getExternalContext();<br />
    &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;  <span style="color: #2c8e1f;">// POJO类</span><br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Bloguser&nbsp;objUser&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;Bloguser();<br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;objUser.setUsername(getUserName());<br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;objUser.setPassword(getPassword1());<br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;从Spring中获取需要的业务类UserService，我就是在这里被卡住，终于OK了</span><span style="color: #000000;"><br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong><span style="color: #b63e98;"><span style="color: #000000;"><strong><span style="color: #b63e98;"><span style="color: #000000;"><strong>ApplicationContext&nbsp;appContext&nbsp;</strong></span><strong><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;FacesContextUtils.getWebApplicationContext(facesContext);<br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; userService&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;(UserService)&nbsp;appContext.getBean(</span><span style="color: #000000;">"</span><span style="color: #000000;">userService</span><span style="color: #000000;">"</span></strong><span style="color: #000000;"><strong>);</strong></span></span></strong></span></span></strong></span><span style="color: #000000;"><br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;验证用户</span><span style="color: #008000;"><br />
    </span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">boolean</span><span style="color: #000000;">&nbsp;result&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;userService.loginValidate(objUser);<br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;获取SessionMap</span><span style="color: #008000;"><br />
    </span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Map&nbsp;sessionMap&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;extnContext.getSessionMap();<br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(result)&nbsp;{&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;登陆成功</span><span style="color: #008000;"><br />
    </span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">/*</span><span style="color: #008000;">&nbsp;把用户名设置在Session中&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sessionMap.put(</span><span style="color: #000000;">"</span><span style="color: #000000;">userName</span><span style="color: #000000;">"</span><span style="color: #000000;">,&nbsp;getUserName());<br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">success</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span style="color: #0000ff;">else</span><span style="color: #000000;">&nbsp;{&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;登录失败</span><span style="color: #008000;"><br />
    </span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">/*</span><span style="color: #008000;">&nbsp;清空session&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(sessionMap.containsKey(</span><span style="color: #000000;">"</span><span style="color: #000000;">userName</span><span style="color: #000000;">"</span><span style="color: #000000;">))&nbsp;{<br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sessionMap.remove(</span><span style="color: #000000;">"</span><span style="color: #000000;">userName</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">failed</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
    &nbsp;&nbsp;&nbsp;&nbsp;}<br />
    &nbsp;&nbsp;&nbsp; <span style="color: #2c8e1f;">// setter getter省略</span><br />
    </span></div>
    暂时写到这，可能还要查漏补缺，发现问题继续加上！<br />
    </li>
</ol>
<br />
<br />
<img src ="http://www.blogjava.net/botson/aggbug/187557.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/botson/" target="_blank">Jam Chan</a> 2008-03-20 20:44 <a href="http://www.blogjava.net/botson/archive/2008/03/20/187557.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>常用Log4j配置</title><link>http://www.blogjava.net/botson/archive/2008/03/20/187404.html</link><dc:creator>Jam Chan</dc:creator><author>Jam Chan</author><pubDate>Thu, 20 Mar 2008 01:39:00 GMT</pubDate><guid>http://www.blogjava.net/botson/archive/2008/03/20/187404.html</guid><wfw:comment>http://www.blogjava.net/botson/comments/187404.html</wfw:comment><comments>http://www.blogjava.net/botson/archive/2008/03/20/187404.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/botson/comments/commentRss/187404.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/botson/services/trackbacks/187404.html</trackback:ping><description><![CDATA[<div>
<ul>
    <li><strong>log4j配置文件基本含义说明</strong></li>
</ul>
<div>log4j.properties配置文件讲解如下：
<div class="code"># Set root logger level to DEBUG and its only appender to A1 <br />
#log4j中有五级logger <br />
#FATAL 0 <br />
#ERROR 3 <br />
#WARN 4 <br />
#INFO 6 <br />
#DEBUG 7 </div>
<div class="code"><br />
<strong>配置根Logger，其语法为：</strong><br />
#log4j.rootLogger = [ level ] , appenderName, appenderName, &#8230;<br />
log4j.rootLogger=INFO, A1 ,R<br />
#这一句设置以为着所有的log都输出<br />
#如果为log4j.rootLogger=WARN, 则意味着只有WARN,ERROR,FATAL<br />
#被输出，DEBUG,INFO将被屏蔽掉.<br />
# A1 is set to be a ConsoleAppender. <br />
#log4j中Appender有几层如控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等<br />
#ConsoleAppender输出到控制台 <br />
log4j.appender.A1=org.apache.log4j.ConsoleAppender <br />
# A1 使用的输出布局，其中log4j提供4种布局. org.apache.log4j.HTMLLayout（以HTML表格形式布局）<br />
#org.apache.log4j.PatternLayout（可以灵活地指定布局模式），<br />
#org.apache.log4j.SimpleLayout（包含日志信息的级别和信息字符串），<br />
#org.apache.log4j.TTCCLayout（包含日志产生的时间、线程、类别等等信息） </div>
<p class="code">log4j.appender.A1.layout=org.apache.log4j.PatternLayout <br />
#灵活定义输出格式 具体查看log4j javadoc org.apache.log4j.PatternLayout <br />
#d 时间 .... <br />
log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n <br />
#R 输出到文件 RollingFileAppender的扩展，可以提供一种日志的备份功能。<br />
log4j.appender.R=org.apache.log4j.RollingFileAppender <br />
#日志文件的名称<br />
log4j.appender.R.File=log4j.log <br />
#日志文件的大小<br />
log4j.appender.R.MaxFileSize=100KB <br />
# 保存一个备份文件<br />
log4j.appender.R.MaxBackupIndex=1 log4j.appender.R.layout=org.apache.log4j.TTCCLayout<br />
#log4j.appender.R.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n</p>
<br />
<strong>配置根Logger，其语法为：<br />
</strong>
<div class="code">log4j.rootLogger = [ level ] , appenderName, appenderName, ...</div>
<br />
level 是日志记录的优先级<br />
appenderName就是指定日志信息输出到哪个地方。您可以同时指定多个输出目的地。
<p><strong>配置日志信息输出目的地Appender，其语法为</strong><br />
</p>
<div class="code">log4j.appender.appenderName = fully.qualified.name.of.appender.class<br />
log4j.appender.appenderName.option1 = value1<br />
...<br />
log4j.appender.appenderName.option = valueN</div>
<br />
<strong>Log4j提供的appender有以下几种：</strong><br />
org.apache.log4j.ConsoleAppender（控制台），<br />
org.apache.log4j.FileAppender（文件），<br />
org.apache.log4j.DailyRollingFileAppender（每天产生一个日志文件），<br />
org.apache.log4j.RollingFileAppender（文件大小到达指定尺寸的时候产生一个新的文件），<br />
org.apache.log4j.WriterAppender（将日志信息以流格式发送到任意指定的地方）
<p><strong>配置日志信息的格式（布局），其语法为：<br />
</strong>
</p>
<div class="div">log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class<br />
log4j.appender.appenderName.layout.option1 = value1<br />
....<br />
log4j.appender.appenderName.layout.option = valueN</div>
<br />
<strong>Log4j提供的layout有以下几种：<br />
</strong>org.apache.log4j.HTMLLayout（以HTML表格形式布局），<br />
org.apache.log4j.PatternLayout（可以灵活地指定布局模式），<br />
org.apache.log4j.SimpleLayout（包含日志信息的级别和信息字符串），<br />
org.apache.log4j.TTCCLayout（包含日志产生的时间、线程、类别等等信息）</div>
</div>
<font id="zoom" class="f14"><font color="#cccccc"><span class="content"></span></font></font>
<ul>
    <li><font id="zoom" class="f14"><font color="#cccccc"><span class="content"><span style="color: red;"><span style="color: #020805;"><span style="font-weight: bold;">常用log4j配置</span></span></span></span></font></font></li>
</ul>
<font id="zoom" class="f14"><font color="#cccccc"><span class="content"><span style="color: red;"><span style="color: #020805;">一般可以采用两种方式，.properties和.xml,下面举两个简单的例子：<br />
<span style="color: #121874; font-weight: bold;">一、log4j.properties</span><br />
### 设置org.zblog域对应的级别INFO,DEBUG,WARN,ERROR和输出地A1，A2 ##<br />
log4j.category.org.zblog=ERROR,A1 <br />
log4j.category.org.zblog=INFO,A2 <br />
log4j.appender.A1=org.apache.log4j.ConsoleAppender <br />
### 设置输出地A1，为ConsoleAppender(控制台) ##<br />
log4j.appender.A1.layout=org.apache.log4j.PatternLayout <br />
### 设置A1的输出布局格式PatterLayout,(可以灵活地指定布局模式）##<br />
log4j.appender.A1.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%c]-[%p] %m%n <br />
### 配置日志输出的格式##<br />
log4j.appender.A2=org.apache.log4j.RollingFileAppender <br />
### 设置输出地A2到文件（文件大小到达指定尺寸的时候产生一个新的文件）##<br />
log4j.appender.A2.File=E:/study/log4j/zhuwei.html <br />
### 文件位置##<br />
log4j.appender.A2.MaxFileSize=500KB <br />
### 文件大小##<br />
log4j.appender.A2.MaxBackupIndex=1 <br />
log4j.appender.A2.layout=org.apache.log4j.HTMLLayout <br />
##指定采用html方式输出<br />
<strong><span style="color: #121874;">二、log4j.xml</span></strong><br />
&lt;?xml version="1.0" encoding="GB2312" ?&gt;<br />
&lt;!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"&gt;<br />
&lt;log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"&gt;<br />
&lt;appender name="org.zblog.all" class="org.apache.log4j.RollingFileAppender"&gt;<br />
&lt;!-- 设置通道ID:org.zblog.all和输出方式：org.apache.log4j.RollingFileAppender --&gt;<br />
&nbsp;&nbsp; &lt;param name="File" value="E:/study/log4j/all.output.log" /&gt;&lt;!-- 设置File参数：日志输出文件名 --&gt;<br />
&nbsp;&nbsp; &lt;param name="Append" value="false" /&gt;&lt;!-- 设置是否在重新启动服务时，在原有日志的基础添加新日志 --&gt;<br />
&nbsp;&nbsp; &lt;param name="MaxBackupIndex" value="10" /&gt; <br />
&nbsp;&nbsp; &lt;layout class="org.apache.log4j.PatternLayout"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param name="ConversionPattern" value="%p (%c:%L)- %m%n" /&gt;&lt;!-- 设置输出文件项目和格式 --&gt;<br />
&nbsp;&nbsp; &lt;/layout&gt;<br />
&lt;/appender&gt;<br />
&lt;appender name="org.zblog.zcw" class="org.apache.log4j.RollingFileAppender"&gt;<br />
&nbsp;&nbsp; &lt;param name="File" value="E:/study/log4j/zhuwei.output.log" /&gt;<br />
&nbsp;&nbsp; &lt;param name="Append" value="true" /&gt;<br />
&nbsp;&nbsp; &lt;param name="MaxFileSize" value="10240" /&gt; &lt;!-- 设置文件大小 --&gt;<br />
&nbsp;&nbsp; &lt;param name="MaxBackupIndex" value="10" /&gt; <br />
&nbsp;&nbsp; &lt;layout class="org.apache.log4j.PatternLayout"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param name="ConversionPattern" value="%p (%c:%L)- %m%n" /&gt;<br />
&nbsp;&nbsp; &lt;/layout&gt;<br />
&lt;/appender&gt;<br />
&lt;logger name="zcw.log"&gt; &lt;!-- 设置域名限制，即zcw.log域及以下的日志均输出到下面对应的通道中 --&gt;<br />
&nbsp;&nbsp; &lt;level value="debug" /&gt;&lt;!-- 设置级别 --&gt;<br />
&nbsp;&nbsp; &lt;appender-ref ref="org.zblog.zcw" /&gt;&lt;!-- 与前面的通道id相对应 --&gt;<br />
&lt;/logger&gt;<br />
&lt;root&gt; &lt;!-- 设置接收所有输出的通道 --&gt;<br />
&nbsp;&nbsp; &lt;appender-ref ref="org.zblog.all" /&gt;&lt;!-- 与前面的通道id相对应 --&gt;<br />
&lt;/root&gt;<br />
&lt;/log4j:configuration&gt;<br />
<strong><span style="color: #121874;">三、配置文件加载方法：</span></strong><br />
import org.apache.log4j.Logger;<br />
import org.apache.log4j.PropertyConfigurator;<br />
import org.apache.log4j.xml.DOMConfigurator;<br />
public class Log4jApp {<br />
&nbsp;&nbsp; public static void main(String[] args) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DOMConfigurator.configure("E:/study/log4j/log4j.xml");//加载.xml文件<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //PropertyConfigurator.configure("E:/study/log4j/log4j.properties");//加载.properties文件<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Logger log=Logger.getLogger("org.zblog.test");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; log.info("测试");<br />
&nbsp;&nbsp; }<br />
}<br />
<strong><span style="color: #121874;">四、项目使用log4j</span></strong><br />
在web
应用中，可以将配置文件的加载放在一个单独的servlet中，并在web.xml中配置该servlet在应用启动时候加载。对于在多人项目中，可以给
每一个人设置一个输出通道，这样在每个人在构建Logger时，用自己的域名称，让调试信息输出到自己的log文件中。<br />
五、常用输出格式<br />
# -X号:X信息输出时左对齐；<br />
# %p:日志信息级别<br />
# %d{}:日志信息产生时间<br />
# %c:日志信息所在地（类名）<br />
# %m:产生的日志具体信息<br />
# %n:输出日志信息换行</span></span></span></font></font>
<img src ="http://www.blogjava.net/botson/aggbug/187404.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/botson/" target="_blank">Jam Chan</a> 2008-03-20 09:39 <a href="http://www.blogjava.net/botson/archive/2008/03/20/187404.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【转】Log4j基本使用方法</title><link>http://www.blogjava.net/botson/archive/2008/03/20/187402.html</link><dc:creator>Jam Chan</dc:creator><author>Jam Chan</author><pubDate>Thu, 20 Mar 2008 01:27:00 GMT</pubDate><guid>http://www.blogjava.net/botson/archive/2008/03/20/187402.html</guid><wfw:comment>http://www.blogjava.net/botson/comments/187402.html</wfw:comment><comments>http://www.blogjava.net/botson/archive/2008/03/20/187402.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/botson/comments/commentRss/187402.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/botson/services/trackbacks/187402.html</trackback:ping><description><![CDATA[<p>Log4j由三个重要的组件构成：日志信息的优先级，日志信息的输出目的地，日志信息的输出格式。日志信息的优先级从高到低有ERROR、
WARN、INFO、DEBUG，分别用来指定这条日志信息的重要程度；日志信息的输出目的地指定了日志将打印到控制台还是文件中；而输出格式则控制了日
志信息的显示内容。</p>
<p><a name="N100D7"><span class="smalltitle"><span style="color: red;">3.1.定义配置文件</span></span></a></p>
<p>
</p>
<p>其实您也可以完全不使用配置文件，而是在代码中配置Log4j环境。但是，使用配置文件将使您的应用程序更加灵活。</p>
<p>Log4j支持两种配置文件格式，一种是XML格式的文件，一种是Java特性文件（键=值）。下面我们介绍使用Java特性文件做为配置文件的方法：</p>
<ol>
    <li>	配置根Logger，其语法为：
    <p>log4j.rootLogger = [ level ] , appenderName, appenderName, &#8230;</p>
    其中，level
    是日志记录的优先级，分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定义的级别。Log4j建议只使用四个级别，优
    先级从高到低分别是ERROR、WARN、INFO、DEBUG。通过在这里定义的级别，您可以控制到应用程序中相应级别的日志信息的开关。比如在这里定
    义了INFO级别，则应用程序中所有DEBUG级别的日志信息将不被打印出来。 <br />
    appenderName就是指定日志信息输出到哪个地方。您可以同时指定多个输出目的地。
    </li>
    <li>配置日志信息输出目的地Appender，其语法为
    <pre>log4j.appender.appenderName = fully.qualified.name.of.appender.class<br />
    log4j.appender.appenderName.option1 = value1<br />
    &#8230;<br />
    log4j.appender.appenderName.option = valueN</pre>
    其中，Log4j提供的appender有以下几种：
    <br />
    org.apache.log4j.ConsoleAppender（控制台），
    <br />
    org.apache.log4j.FileAppender（文件），
    <br />
    org.apache.log4j.DailyRollingFileAppender（每天产生一个日志文件），org.apache.log4j.RollingFileAppender（文件大小到达指定尺寸的时候产生一个新的文件），
    <br />
    org.apache.log4j.WriterAppender（将日志信息以流格式发送到任意指定的地方）
    </li>
    <li>配置日志信息的格式（布局），其语法为：
    <pre>log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class<br />
    log4j.appender.appenderName.layout.option1 = value1<br />
    &#8230;<br />
    log4j.appender.appenderName.layout.option = valueN</pre>
    其中，Log4j提供的layout有以下几种：
    <br />
    org.apache.log4j.HTMLLayout（以HTML表格形式布局），
    <br />
    org.apache.log4j.PatternLayout（可以灵活地指定布局模式），
    <br />
    org.apache.log4j.SimpleLayout（包含日志信息的级别和信息字符串），
    <br />
    org.apache.log4j.TTCCLayout（包含日志产生的时间、线程、类别等等信息）
    </li>
</ol>
<p><a name="N1010C"><span class="smalltitle"><span style="color: red;">3.2.在代码中使用Log4j</span></span></a></p>
<p>
</p>
<p>下面将讲述在程序代码中怎样使用Log4j。</p>
<p>
<strong>3.2.1.得到记录器</strong>
</p>
<p>使用Log4j，第一步就是获取日志记录器，这个记录器将负责控制日志信息。其语法为：</p>
<p>public static Logger getLogger( String name)，</p>
<p>通过指定的名字获得记录器，如果必要的话，则为这个名字创建一个新的记录器。Name一般取本类的名字，比如：</p>
<p>static Logger logger = Logger.getLogger ( ServerWithLog4j.class.getName () ) ;</p>
<p>
<strong>3.2.2.读取配置文件</strong>
</p>
<p>当获得了日志记录器之后，第二步将配置Log4j环境，其语法为：
<br />
BasicConfigurator.configure ()： 自动快速地使用缺省Log4j环境。
<br />
PropertyConfigurator.configure ( String configFilename) ：读取使用Java的特性文件编写的配置文件。
<br />
DOMConfigurator.configure ( String filename ) ：读取XML形式的配置文件。
</p>
<p>
<strong>3.2.3.插入记录信息（格式化日志信息）</strong>
</p>
<p>当上两个必要步骤执行完毕，您就可以轻松地使用不同优先级别的日志记录语句插入到您想记录日志的任何地方，其语法如下：</p>
<p>
Logger.debug ( Object message ) ;
<br />
Logger.info ( Object message ) ;
<br />
Logger.warn ( Object message ) ;
<br />
Logger.error ( Object message ) ;
</p>
<br />
<br />
<p><a name="resources"><span class="atitle">参考资料 </span></a></p>
<p>如果您想更深入地了解Log4j，请经常访问下面提及的相关链接。</p>
<p>Log4j项目主页------------------------------------------------------
<a href="http://www.log4j.org/">www.log4j.org</a>
</p>
<p>Log4j FAQ    -------------------------------------------------------
<a href="http://www.log4j.org/log4j/faq.html">www.log4j.org/log4j/faq.html</a></p>
<p><br />
</p>
<p><a name="author"><span class="atitle">关于作者</span></a></p>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
    <tbody>
        <tr>
            <td colspan="3"><img alt="" src="http://www.ibm.com/i/c.gif" height="5" width="100%" /></td>
        </tr>
        <tr align="left" valign="top">
            <td><br />
            </td>
            <td><img alt="" src="http://www.ibm.com/i/c.gif" height="5" width="4" /></td>
            <td width="100%">
            <p>葵贞祥，SCJP（Sun Certified Java 2 Programmer），具有7年国内国外知名企业工作经历，目前兴趣集中在对Java的C/S、B/S大型应用上，您可以通过
            <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#99;&#104;&#105;&#110;&#101;&#115;&#101;&#109;&#97;&#114;&#115;&#64;&#104;&#111;&#116;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#63;&#99;&#99;&#61;&#99;&#104;&#105;&#110;&#101;&#115;&#101;&#109;&#97;&#114;&#115;&#64;&#104;&#111;&#116;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;">chinesemars@hotmail.com</a>和他联系。
            </p>
            </td>
        </tr>
    </tbody>
</table>
<p>
</p>
<img src ="http://www.blogjava.net/botson/aggbug/187402.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/botson/" target="_blank">Jam Chan</a> 2008-03-20 09:27 <a href="http://www.blogjava.net/botson/archive/2008/03/20/187402.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【原创】编写Oracle存储过程，按照条件把数据导出至XML文件</title><link>http://www.blogjava.net/botson/archive/2008/03/19/187362.html</link><dc:creator>Jam Chan</dc:creator><author>Jam Chan</author><pubDate>Wed, 19 Mar 2008 13:48:00 GMT</pubDate><guid>http://www.blogjava.net/botson/archive/2008/03/19/187362.html</guid><wfw:comment>http://www.blogjava.net/botson/comments/187362.html</wfw:comment><comments>http://www.blogjava.net/botson/archive/2008/03/19/187362.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.blogjava.net/botson/comments/commentRss/187362.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/botson/services/trackbacks/187362.html</trackback:ping><description><![CDATA[需要解析的xml文件：<u>people.xml<br />
</u>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #008080;">&nbsp;1</span>&nbsp;<span style="color: #0000ff;">&lt;?</span><span style="color: #ff00ff;">xml&nbsp;version="1.0"</span><span style="color: #0000ff;">?&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;2</span>&nbsp;<span style="color: #0000ff;">&lt;</span><span style="color: #800000;">PEOPLE</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;3</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">PERSON&nbsp;</span><span style="color: #ff0000;">PERSONID</span><span style="color: #0000ff;">="E01"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;4</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">NAME</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">Tony&nbsp;Blair</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">NAME</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;5</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">ADDRESS</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">10&nbsp;Downing&nbsp;Street,&nbsp;London,&nbsp;UK</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">ADDRESS</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;6</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">TEL</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">(061)&nbsp;98765</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">TEL</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;7</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">FAX</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">(061)&nbsp;98768</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">FAX</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;8</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">EMAIL</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">blair@everywhere.com</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">EMAIL</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;9</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">PERSON</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">10</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">PERSON&nbsp;</span><span style="color: #ff0000;">PERSONID</span><span style="color: #0000ff;">="E02"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">11</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">NAME</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">Bill&nbsp;Clinton</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">NAME</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">12</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">ADDRESS</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">White&nbsp;House,&nbsp;USA</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">ADDRESS</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">13</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">TEL</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">(001)&nbsp;6400&nbsp;98765</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">TEL</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">14</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">FAX</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">(001)&nbsp;6400&nbsp;98769</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">FAX</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">15</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">EMAIL</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">bill@everywhere.com</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">EMAIL</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">16</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">PERSON</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">17</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">PERSON&nbsp;</span><span style="color: #ff0000;">PERSONID</span><span style="color: #0000ff;">="E03"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">18</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">NAME</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">Tom&nbsp;Cruise</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">NAME</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">19</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">ADDRESS</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">57&nbsp;Jumbo&nbsp;Street,&nbsp;New&nbsp;York,&nbsp;USA</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">ADDRESS</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">20</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">TEL</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">(001)&nbsp;4500&nbsp;67859</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">TEL</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">21</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">FAX</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">(001)&nbsp;4500&nbsp;67895</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">FAX</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">22</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">EMAIL</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">cruise@everywhere.com</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">EMAIL</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">23</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">PERSON</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">24</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">PERSON&nbsp;</span><span style="color: #ff0000;">PERSONID</span><span style="color: #0000ff;">="E04"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">25</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">NAME</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">Linda&nbsp;Goodman</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">NAME</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">26</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">ADDRESS</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">78&nbsp;Crax&nbsp;Lane,&nbsp;London,&nbsp;UK</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">ADDRESS</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">27</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">TEL</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">(061)&nbsp;54&nbsp;56789</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">TEL</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">28</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">FAX</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">(061)&nbsp;54&nbsp;56772</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">FAX</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">29</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">EMAIL</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">linda@everywhere.com</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">EMAIL</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">30</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">PERSON</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">31</span>&nbsp;<span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">PEOPLE</span><span style="color: #0000ff;">&gt;</span></div>
<br />
我以scott用户为例，新建表：<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #008080;">1</span>&nbsp;<span style="color: #0000ff;">CREATE</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">TABLE</span><span style="color: #000000;">&nbsp;PEOPLE<br />
</span><span style="color: #008080;">2</span>&nbsp;<span style="color: #000000;">(<br />
</span><span style="color: #008080;">3</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;PERSONID&nbsp;</span><span style="color: #000000; font-weight: bold;">VARCHAR2</span><span style="color: #000000;">(</span><span style="color: #800000; font-weight: bold;">4</span><span style="color: #000000;">)&nbsp;</span><span style="color: #0000ff;">PRIMARY</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">KEY</span><span style="color: #000000;">,<br />
</span><span style="color: #008080;">4</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;NAME&nbsp;</span><span style="color: #000000; font-weight: bold;">VARCHAR2</span><span style="color: #000000;">(</span><span style="color: #800000; font-weight: bold;">50</span><span style="color: #000000;">),<br />
</span><span style="color: #008080;">5</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;ADDRESS&nbsp;</span><span style="color: #000000; font-weight: bold;">VARCHAR2</span><span style="color: #000000;">(</span><span style="color: #800000; font-weight: bold;">200</span><span style="color: #000000;">),<br />
</span><span style="color: #008080;">6</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;TEL&nbsp;</span><span style="color: #000000; font-weight: bold;">VARCHAR2</span><span style="color: #000000;">(</span><span style="color: #800000; font-weight: bold;">20</span><span style="color: #000000;">),<br />
</span><span style="color: #008080;">7</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;FAX&nbsp;</span><span style="color: #000000; font-weight: bold;">VARCHAR2</span><span style="color: #000000;">(</span><span style="color: #800000; font-weight: bold;">20</span><span style="color: #000000;">),<br />
</span><span style="color: #008080;">8</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;EMAIL&nbsp;</span><span style="color: #000000; font-weight: bold;">VARCHAR2</span><span style="color: #000000;">(</span><span style="color: #800000; font-weight: bold;">100</span><span style="color: #000000;">)<br />
</span><span style="color: #008080;">9</span>&nbsp;<span style="color: #000000;">);</span></div>
<br />
假设表里面已经有数据，如果想从XML插入数据请看<a title="【原创】编写Oracle存储过程解析XML，并把数据持久化" target="_blank" href="http://www.blogjava.net/botson/archive/2008/03/19/187360.html">【原创】编写Oracle存储过程解析XML，并把数据持久化</a><br />
<br />
以下是把查询结果生成XML文件的存储过程代码：<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #008080;">&nbsp;1</span>&nbsp;<span style="color: #008080;">/*</span><span style="color: #008080;">*<br />
</span><span style="color: #008080;">&nbsp;2</span>&nbsp;<span style="color: #008080;">*sqlStr&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;附加的查询条件&nbsp;如：where&nbsp;PERSONID&nbsp;=&nbsp;'E01',查询所有输入''<br />
</span><span style="color: #008080;">&nbsp;3</span>&nbsp;<span style="color: #008080;">*file_path&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;文件保存路径&nbsp;&nbsp;&nbsp;如：D:\OracleTest\outpeople.xml<br />
</span><span style="color: #008080;">&nbsp;4</span>&nbsp;<span style="color: #008080;">*</span><span style="color: #008080;">*/</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;5</span>&nbsp;<span style="color: #0000ff;">CREATE</span><span style="color: #000000;">&nbsp;</span><span style="color: #808080;">OR</span><span style="color: #000000;">&nbsp;</span><span style="color: #ff00ff;">REPLACE</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">PROCEDURE</span><span style="color: #000000;">&nbsp;OUTPUTPEOPLE(sqlStr&nbsp;</span><span style="color: #000000; font-weight: bold;">VARCHAR2</span><span style="color: #000000;">,file_path&nbsp;</span><span style="color: #000000; font-weight: bold;">VARCHAR2</span><span style="color: #000000;">)<br />
</span><span style="color: #008080;">&nbsp;6</span>&nbsp;<span style="color: #0000ff;">AS</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;7</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;personRow&nbsp;PEOPLE</span><span style="color: #808080;">%</span><span style="color: #000000;">ROWTYPE;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008080;">--</span><span style="color: #008080;">获取游标的行变量</span><span style="color: #008080;"><br />
</span><span style="color: #008080;">&nbsp;8</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;TYPE&nbsp;person_cur&nbsp;</span><span style="color: #0000ff;">IS</span><span style="color: #000000;">&nbsp;REF&nbsp;</span><span style="color: #0000ff;">CURSOR</span><span style="color: #000000;">;&nbsp;</span><span style="color: #008080;">--</span><span style="color: #008080;">自定义REF游标</span><span style="color: #008080;"><br />
</span><span style="color: #008080;">&nbsp;9</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;cur&nbsp;person_cur;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">10</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;tempSql&nbsp;</span><span style="color: #000000; font-weight: bold;">varchar2</span><span style="color: #000000;">(</span><span style="color: #800000; font-weight: bold;">500</span><span style="color: #000000;">)&nbsp;:</span><span style="color: #808080;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #ff0000;">'</span><span style="color: #ff0000;">SELECT&nbsp;*&nbsp;FROM&nbsp;PEOPLE&nbsp;</span><span style="color: #ff0000;">'</span><span style="color: #000000;">;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008080;">--</span><span style="color: #008080;">初始的查询语句</span><span style="color: #008080;"><br />
</span><span style="color: #008080;">11</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;doc&nbsp;xmlDom.DOMDocument&nbsp;:</span><span style="color: #808080;">=</span><span style="color: #000000;">&nbsp;xmldom.newDOMDocument;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008080;">--</span><span style="color: #008080;">&nbsp;创建文档对象</span><span style="color: #008080;"><br />
</span><span style="color: #008080;">12</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;main_node&nbsp;xmlDom.DOMNode&nbsp;:</span><span style="color: #808080;">=</span><span style="color: #000000;">&nbsp;xmldom.makeNode(doc);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008080;">--</span><span style="color: #008080;">&nbsp;获得文档节点</span><span style="color: #008080;"><br />
</span><span style="color: #008080;">13</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;root_elmt&nbsp;xmlDom.DOMElement:</span><span style="color: #808080;">=</span><span style="color: #000000;">&nbsp;xmldom.createElement(doc,&nbsp;</span><span style="color: #ff0000;">'</span><span style="color: #ff0000;">PEOPLE</span><span style="color: #ff0000;">'</span><span style="color: #000000;">);&nbsp;&nbsp;&nbsp;</span><span style="color: #008080;">--</span><span style="color: #008080;">&nbsp;创建根元素</span><span style="color: #008080;"><br />
</span><span style="color: #008080;">14</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008080;">--</span><span style="color: #008080;">==================================================</span><span style="color: #008080;"><br />
</span><span style="color: #008080;">15</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008080;">--</span><span style="color: #008080;">以下定义元素</span><span style="color: #008080;"><br />
</span><span style="color: #008080;">16</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;person_elmt&nbsp;xmlDom.DOMElement;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008080;">--</span><span style="color: #008080;">定义PERSON元素</span><span style="color: #008080;"><br />
</span><span style="color: #008080;">17</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;name_elmt&nbsp;xmlDom.DOMElement;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008080;">--</span><span style="color: #008080;">定义NAME元素</span><span style="color: #008080;"><br />
</span><span style="color: #008080;">18</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;address_elmt&nbsp;xmlDom.DOMElement;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008080;">--</span><span style="color: #008080;">定义ADDRESS元素</span><span style="color: #008080;"><br />
</span><span style="color: #008080;">19</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;tel_elmt&nbsp;xmlDom.DOMElement;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008080;">--</span><span style="color: #008080;">定义TEL元素&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008080;"><br />
</span><span style="color: #008080;">20</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;email_elmt&nbsp;xmlDom.DOMElement;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008080;">--</span><span style="color: #008080;">定义EMAIL元素&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008080;"><br />
</span><span style="color: #008080;">21</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008080;">--</span><span style="color: #008080;">==================================================</span><span style="color: #008080;"><br />
</span><span style="color: #008080;">22</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008080;">--</span><span style="color: #008080;">以下定义节点</span><span style="color: #008080;"><br />
</span><span style="color: #008080;">23</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;root_node&nbsp;xmlDom.DOMNode;&nbsp;&nbsp;&nbsp;</span><span style="color: #008080;">--</span><span style="color: #008080;">定义PEOPLE节点</span><span style="color: #008080;"><br />
</span><span style="color: #008080;">24</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;person_node&nbsp;xmlDom.DOMNode;&nbsp;&nbsp;&nbsp;</span><span style="color: #008080;">--</span><span style="color: #008080;">定义PERSON节点</span><span style="color: #008080;"><br />
</span><span style="color: #008080;">25</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;name_node&nbsp;xmlDom.DOMNode;&nbsp;&nbsp;&nbsp;</span><span style="color: #008080;">--</span><span style="color: #008080;">定义NAME节点</span><span style="color: #008080;"><br />
</span><span style="color: #008080;">26</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;address_node&nbsp;xmlDom.DOMNode;&nbsp;&nbsp;&nbsp;</span><span style="color: #008080;">--</span><span style="color: #008080;">定义ADDRESS节点</span><span style="color: #008080;"><br />
</span><span style="color: #008080;">27</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;tel_node&nbsp;xmlDom.DOMNode;&nbsp;&nbsp;&nbsp;</span><span style="color: #008080;">--</span><span style="color: #008080;">定义TEL节点</span><span style="color: #008080;"><br />
</span><span style="color: #008080;">28</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;email_node&nbsp;xmlDom.DOMNode;&nbsp;&nbsp;&nbsp;</span><span style="color: #008080;">--</span><span style="color: #008080;">定义EMAIL节点</span><span style="color: #008080;"><br />
</span><span style="color: #008080;">29</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;temp_node&nbsp;xmlDom.DOMNode;<br />
</span><span style="color: #008080;">30</span>&nbsp;<span style="color: #0000ff;">BEGIN</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">31</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008080;">--</span><span style="color: #008080;">&nbsp;向文档节点加入根节点:&lt;PEOPLE&gt;&lt;/PEOPLE&gt;</span><span style="color: #008080;"><br />
</span><span style="color: #008080;">32</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;root_node&nbsp;:</span><span style="color: #808080;">=</span><span style="color: #000000;">&nbsp;xmldom.appendChild(main_node,&nbsp;xmldom.makeNode(root_elmt));<br />
</span><span style="color: #008080;">33</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008080;">--</span><span style="color: #008080;">附加查询条件</span><span style="color: #008080;"><br />
</span><span style="color: #008080;">34</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;tempSql&nbsp;:</span><span style="color: #808080;">=</span><span style="color: #000000;">&nbsp;tempSql</span><span style="color: #808080;">||</span><span style="color: #000000;">sqlStr;<br />
</span><span style="color: #008080;">35</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008080;">--</span><span style="color: #008080;">打开游标</span><span style="color: #008080;"><br />
</span><span style="color: #008080;">36</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">OPEN</span><span style="color: #000000;">&nbsp;cur&nbsp;</span><span style="color: #0000ff;">FOR</span><span style="color: #000000;">&nbsp;tempSql;<br />
</span><span style="color: #008080;">37</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008080;">--</span><span style="color: #008080;">遍历游标</span><span style="color: #008080;"><br />
</span><span style="color: #008080;">38</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;LOOP<br />
</span><span style="color: #008080;">39</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">FETCH</span><span style="color: #000000;">&nbsp;cur&nbsp;</span><span style="color: #0000ff;">INTO</span><span style="color: #000000;">&nbsp;personRow;<br />
</span><span style="color: #008080;">40</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">EXIT</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">WHEN</span><span style="color: #000000;">&nbsp;cur</span><span style="color: #808080;">%</span><span style="color: #000000;">NOTFOUND;<br />
</span><span style="color: #008080;">41</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008080;">--</span><span style="color: #008080;">===========================================================================--</span><span style="color: #008080;"><br />
</span><span style="color: #008080;">42</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;person_elmt&nbsp;:</span><span style="color: #808080;">=</span><span style="color: #000000;">&nbsp;xmldom.createElement(doc,&nbsp;</span><span style="color: #ff0000;">'</span><span style="color: #ff0000;">PERSON</span><span style="color: #ff0000;">'</span><span style="color: #000000;">);&nbsp;</span><span style="color: #008080;">--</span><span style="color: #008080;">创建PERSON元素</span><span style="color: #008080;"><br />
</span><span style="color: #008080;">43</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008080;">--</span><span style="color: #008080;">&nbsp;向PEOPLE节点加入PERSON节点&lt;PERSON&gt;&lt;/PERSON&gt;</span><span style="color: #008080;"><br />
</span><span style="color: #008080;">44</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;person_node&nbsp;:</span><span style="color: #808080;">=</span><span style="color: #000000;">&nbsp;xmldom.appendChild(root_node,&nbsp;xmldom.makeNode(person_elmt));<br />
</span><span style="color: #008080;">45</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008080;">--</span><span style="color: #008080;">===========================================================================--</span><span style="color: #008080;"><br />
</span><span style="color: #008080;">46</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008080;">--</span><span style="color: #008080;">向PERSON节点加入属性PERSONID</span><span style="color: #008080;"><br />
</span><span style="color: #008080;">47</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xmlDom.SETATTRIBUTE(&nbsp;person_elmt,&nbsp;</span><span style="color: #ff0000;">'</span><span style="color: #ff0000;">PERSONID</span><span style="color: #ff0000;">'</span><span style="color: #000000;">,&nbsp;personRow.personId&nbsp;);<br />
</span><span style="color: #008080;">48</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008080;">--</span><span style="color: #008080;">===========================================================================--</span><span style="color: #008080;"><br />
</span><span style="color: #008080;">49</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name_elmt&nbsp;:</span><span style="color: #808080;">=</span><span style="color: #000000;">&nbsp;xmldom.createElement(doc,&nbsp;</span><span style="color: #ff0000;">'</span><span style="color: #ff0000;">NAME</span><span style="color: #ff0000;">'</span><span style="color: #000000;">);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008080;">--</span><span style="color: #008080;">创建NAME元素</span><span style="color: #008080;"><br />
</span><span style="color: #008080;">50</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008080;">--</span><span style="color: #008080;">向PERSON节点加入子节点NAME</span><span style="color: #008080;"><br />
</span><span style="color: #008080;">51</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name_node&nbsp;:</span><span style="color: #808080;">=</span><span style="color: #000000;">&nbsp;xmldom.appendChild(person_node,xmlDom.makeNode(name_elmt));<br />
</span><span style="color: #008080;">52</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008080;">--</span><span style="color: #008080;">向NAME节点加入文本</span><span style="color: #008080;"><br />
</span><span style="color: #008080;">53</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;temp_node&nbsp;:</span><span style="color: #808080;">=</span><span style="color: #000000;">&nbsp;xmldom.appendChild(name_node&nbsp;,&nbsp;xmlDom.makeNode(xmldom.createTextNode(doc,personRow.name)));<br />
</span><span style="color: #008080;">54</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008080;">--</span><span style="color: #008080;">===========================================================================--</span><span style="color: #008080;"><br />
</span><span style="color: #008080;">55</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;address_elmt&nbsp;:</span><span style="color: #808080;">=</span><span style="color: #000000;">&nbsp;xmldom.createElement(doc,&nbsp;</span><span style="color: #ff0000;">'</span><span style="color: #ff0000;">ADDRESS</span><span style="color: #ff0000;">'</span><span style="color: #000000;">);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008080;">--</span><span style="color: #008080;">创建ADDRESS元素</span><span style="color: #008080;"><br />
</span><span style="color: #008080;">56</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008080;">--</span><span style="color: #008080;">向PERSON节点加入子节点ADDRESS</span><span style="color: #008080;"><br />
</span><span style="color: #008080;">57</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;address_node&nbsp;:</span><span style="color: #808080;">=</span><span style="color: #000000;">&nbsp;xmldom.appendChild(person_node,xmlDom.makeNode(address_elmt));<br />
</span><span style="color: #008080;">58</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008080;">--</span><span style="color: #008080;">向ADDRESS节点加入文本</span><span style="color: #008080;"><br />
</span><span style="color: #008080;">59</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;temp_node&nbsp;:</span><span style="color: #808080;">=</span><span style="color: #000000;">&nbsp;xmldom.appendChild(address_node,&nbsp;xmlDom.makeNode(xmldom.createTextNode(doc,personRow.address)));<br />
</span><span style="color: #008080;">60</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008080;">--</span><span style="color: #008080;">===========================================================================--</span><span style="color: #008080;"><br />
</span><span style="color: #008080;">61</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tel_elmt&nbsp;:</span><span style="color: #808080;">=</span><span style="color: #000000;">&nbsp;xmldom.createElement(doc,&nbsp;</span><span style="color: #ff0000;">'</span><span style="color: #ff0000;">TEL</span><span style="color: #ff0000;">'</span><span style="color: #000000;">);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008080;">--</span><span style="color: #008080;">创建TEL元素&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008080;"><br />
</span><span style="color: #008080;">62</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008080;">--</span><span style="color: #008080;">向TEL节点加入子节点NAME</span><span style="color: #008080;"><br />
</span><span style="color: #008080;">63</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tel_node&nbsp;:</span><span style="color: #808080;">=</span><span style="color: #000000;">&nbsp;xmldom.appendChild(person_node,xmlDom.makeNode(tel_elmt));<br />
</span><span style="color: #008080;">64</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008080;">--</span><span style="color: #008080;">向TEL节点加入文本</span><span style="color: #008080;"><br />
</span><span style="color: #008080;">65</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;temp_node&nbsp;:</span><span style="color: #808080;">=</span><span style="color: #000000;">&nbsp;xmldom.appendChild(tel_node,&nbsp;xmlDom.makeNode(xmldom.createTextNode(doc,personRow.tel)));<br />
</span><span style="color: #008080;">66</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008080;">--</span><span style="color: #008080;">===========================================================================--</span><span style="color: #008080;"><br />
</span><span style="color: #008080;">67</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;email_elmt&nbsp;:</span><span style="color: #808080;">=</span><span style="color: #000000;">&nbsp;xmldom.createElement(doc,&nbsp;</span><span style="color: #ff0000;">'</span><span style="color: #ff0000;">EMAIL</span><span style="color: #ff0000;">'</span><span style="color: #000000;">);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008080;">--</span><span style="color: #008080;">创建EMAIL元素&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008080;"><br />
</span><span style="color: #008080;">68</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008080;">--</span><span style="color: #008080;">向PERSON节点加入子节点EMAIL</span><span style="color: #008080;"><br />
</span><span style="color: #008080;">69</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;email_node&nbsp;:</span><span style="color: #808080;">=</span><span style="color: #000000;">&nbsp;xmldom.appendChild(person_node,xmlDom.makeNode(email_elmt));<br />
</span><span style="color: #008080;">70</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008080;">--</span><span style="color: #008080;">向EMAIL节点加入文本</span><span style="color: #008080;"><br />
</span><span style="color: #008080;">71</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;temp_node&nbsp;:</span><span style="color: #808080;">=</span><span style="color: #000000;">&nbsp;xmldom.appendChild(email_node,&nbsp;xmlDom.makeNode(xmldom.createTextNode(doc,personRow.email)));<br />
</span><span style="color: #008080;">72</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008080;">--</span><span style="color: #008080;">===========================================================================--</span><span style="color: #008080;"><br />
</span><span style="color: #008080;">73</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">END</span><span style="color: #000000;">&nbsp;LOOP;<br />
</span><span style="color: #008080;">74</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">CLOSE</span><span style="color: #000000;">&nbsp;cur;<br />
</span><span style="color: #008080;">75</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008080;">--</span><span style="color: #008080;">写入硬盘</span><span style="color: #008080;"><br />
</span><span style="color: #008080;">76</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;xmlDom.writeToFile(doc,file_path,</span><span style="color: #ff0000;">'</span><span style="color: #ff0000;">GBK</span><span style="color: #ff0000;">'</span><span style="color: #000000;">);<br />
</span><span style="color: #008080;">77</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;EXCEPTION<br />
</span><span style="color: #008080;">78</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">WHEN</span><span style="color: #000000;">&nbsp;OTHERS&nbsp;</span><span style="color: #0000ff;">THEN</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">79</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DBMS_output.PUT_LINE(SQLERRM);<br />
</span><span style="color: #008080;">80</span>&nbsp;<span style="color: #0000ff;">END</span><span style="color: #000000;">&nbsp;OUTPUTPEOPLE;</span></div>
<br />
<br />
<br />
<br />
<br />
<img src ="http://www.blogjava.net/botson/aggbug/187362.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/botson/" target="_blank">Jam Chan</a> 2008-03-19 21:48 <a href="http://www.blogjava.net/botson/archive/2008/03/19/187362.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【原创】编写Oracle存储过程解析XML，并把数据持久化</title><link>http://www.blogjava.net/botson/archive/2008/03/19/187360.html</link><dc:creator>Jam Chan</dc:creator><author>Jam Chan</author><pubDate>Wed, 19 Mar 2008 13:40:00 GMT</pubDate><guid>http://www.blogjava.net/botson/archive/2008/03/19/187360.html</guid><wfw:comment>http://www.blogjava.net/botson/comments/187360.html</wfw:comment><comments>http://www.blogjava.net/botson/archive/2008/03/19/187360.html#Feedback</comments><slash:comments>19</slash:comments><wfw:commentRss>http://www.blogjava.net/botson/comments/commentRss/187360.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/botson/services/trackbacks/187360.html</trackback:ping><description><![CDATA[需要解析的xml文件：<u>people.xml<br />
</u>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #008080;">&nbsp;1</span>&nbsp;<span style="color: #0000ff;">&lt;?</span><span style="color: #ff00ff;">xml&nbsp;version="1.0"</span><span style="color: #0000ff;">?&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;2</span>&nbsp;<span style="color: #0000ff;">&lt;</span><span style="color: #800000;">PEOPLE</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;3</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">PERSON&nbsp;</span><span style="color: #ff0000;">PERSONID</span><span style="color: #0000ff;">="E01"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;4</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">NAME</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">Tony&nbsp;Blair</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">NAME</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;5</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">ADDRESS</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">10&nbsp;Downing&nbsp;Street,&nbsp;London,&nbsp;UK</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">ADDRESS</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;6</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">TEL</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">(061)&nbsp;98765</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">TEL</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;7</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">FAX</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">(061)&nbsp;98768</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">FAX</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;8</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">EMAIL</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">blair@everywhere.com</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">EMAIL</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;9</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">PERSON</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">10</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">PERSON&nbsp;</span><span style="color: #ff0000;">PERSONID</span><span style="color: #0000ff;">="E02"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">11</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">NAME</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">Bill&nbsp;Clinton</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">NAME</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">12</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">ADDRESS</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">White&nbsp;House,&nbsp;USA</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">ADDRESS</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">13</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">TEL</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">(001)&nbsp;6400&nbsp;98765</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">TEL</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">14</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">FAX</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">(001)&nbsp;6400&nbsp;98769</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">FAX</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">15</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">EMAIL</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">bill@everywhere.com</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">EMAIL</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">16</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">PERSON</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">17</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">PERSON&nbsp;</span><span style="color: #ff0000;">PERSONID</span><span style="color: #0000ff;">="E03"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">18</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">NAME</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">Tom&nbsp;Cruise</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">NAME</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">19</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">ADDRESS</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">57&nbsp;Jumbo&nbsp;Street,&nbsp;New&nbsp;York,&nbsp;USA</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">ADDRESS</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">20</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">TEL</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">(001)&nbsp;4500&nbsp;67859</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">TEL</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">21</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">FAX</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">(001)&nbsp;4500&nbsp;67895</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">FAX</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">22</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">EMAIL</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">cruise@everywhere.com</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">EMAIL</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">23</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">PERSON</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">24</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">PERSON&nbsp;</span><span style="color: #ff0000;">PERSONID</span><span style="color: #0000ff;">="E04"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">25</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">NAME</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">Linda&nbsp;Goodman</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">NAME</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">26</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">ADDRESS</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">78&nbsp;Crax&nbsp;Lane,&nbsp;London,&nbsp;UK</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">ADDRESS</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">27</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">TEL</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">(061)&nbsp;54&nbsp;56789</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">TEL</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">28</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">FAX</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">(061)&nbsp;54&nbsp;56772</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">FAX</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">29</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">EMAIL</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">linda@everywhere.com</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">EMAIL</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">30</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">PERSON</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">31</span>&nbsp;<span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">PEOPLE</span><span style="color: #0000ff;">&gt;</span></div>
<br />
我以scott用户为例，新建表：<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #008080;">1</span>&nbsp;<span style="color: #0000ff;">CREATE</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">TABLE</span><span style="color: #000000;">&nbsp;PEOPLE<br />
</span><span style="color: #008080;">2</span>&nbsp;<span style="color: #000000;">(<br />
</span><span style="color: #008080;">3</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;PERSONID&nbsp;</span><span style="color: #000000; font-weight: bold;">VARCHAR2</span><span style="color: #000000;">(</span><span style="color: #800000; font-weight: bold;">4</span><span style="color: #000000;">)&nbsp;</span><span style="color: #0000ff;">PRIMARY</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">KEY</span><span style="color: #000000;">,<br />
</span><span style="color: #008080;">4</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;NAME&nbsp;</span><span style="color: #000000; font-weight: bold;">VARCHAR2</span><span style="color: #000000;">(</span><span style="color: #800000; font-weight: bold;">50</span><span style="color: #000000;">),<br />
</span><span style="color: #008080;">5</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;ADDRESS&nbsp;</span><span style="color: #000000; font-weight: bold;">VARCHAR2</span><span style="color: #000000;">(</span><span style="color: #800000; font-weight: bold;">200</span><span style="color: #000000;">),<br />
</span><span style="color: #008080;">6</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;TEL&nbsp;</span><span style="color: #000000; font-weight: bold;">VARCHAR2</span><span style="color: #000000;">(</span><span style="color: #800000; font-weight: bold;">20</span><span style="color: #000000;">),<br />
</span><span style="color: #008080;">7</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;FAX&nbsp;</span><span style="color: #000000; font-weight: bold;">VARCHAR2</span><span style="color: #000000;">(</span><span style="color: #800000; font-weight: bold;">20</span><span style="color: #000000;">),<br />
</span><span style="color: #008080;">8</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;EMAIL&nbsp;</span><span style="color: #000000; font-weight: bold;">VARCHAR2</span><span style="color: #000000;">(</span><span style="color: #800000; font-weight: bold;">100</span><span style="color: #000000;">)<br />
</span><span style="color: #008080;">9</span>&nbsp;<span style="color: #000000;">);</span></div>
<br />
解析并持久化的存储过程代码：<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #008080;">&nbsp;1</span>&nbsp;<span style="color: #008080;">/*</span><span style="color: #008080;">*<br />
</span><span style="color: #008080;">&nbsp;2</span>&nbsp;<span style="color: #008080;">*file_path&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;需要解析的XML文件路径&nbsp;如：D:\OracleTest\people.xml<br />
</span><span style="color: #008080;">&nbsp;3</span>&nbsp;<span style="color: #008080;">*log_path&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;保存日志的文件的路径&nbsp;&nbsp;如:&nbsp;D:\OracleTest\xmllog.txt<br />
</span><span style="color: #008080;">&nbsp;4</span>&nbsp;<span style="color: #008080;">*</span><span style="color: #008080;">*/</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;5</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;6</span>&nbsp;<span style="color: #0000ff;">CREATE</span><span style="color: #000000;">&nbsp;</span><span style="color: #808080;">OR</span><span style="color: #000000;">&nbsp;</span><span style="color: #ff00ff;">REPLACE</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">PROCEDURE</span><span style="color: #000000;">&nbsp;addPerson(file_path&nbsp;</span><span style="color: #000000; font-weight: bold;">VARCHAR2</span><span style="color: #000000;">,log_path&nbsp;</span><span style="color: #000000; font-weight: bold;">VARCHAR2</span><span style="color: #000000;">)<br />
</span><span style="color: #008080;">&nbsp;7</span>&nbsp;<span style="color: #0000ff;">AS</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;8</span>&nbsp;<span style="color: #008080;">--</span><span style="color: #008080;">//XML解析器</span><span style="color: #008080;"><br />
</span><span style="color: #008080;">&nbsp;9</span>&nbsp;<span style="color: #000000;">xmlPar&nbsp;XMLPARSER.parser&nbsp;:</span><span style="color: #808080;">=</span><span style="color: #000000;">&nbsp;XMLPARSER.NEWPARSER;<br />
</span><span style="color: #008080;">10</span>&nbsp;<span style="color: #008080;">--</span><span style="color: #008080;">//DOM文档对象</span><span style="color: #008080;"><br />
</span><span style="color: #008080;">11</span>&nbsp;<span style="color: #000000;">doc&nbsp;xmldom.DOMDocument;<br />
</span><span style="color: #008080;">12</span>&nbsp;<span style="color: #ff00ff;">len</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000; font-weight: bold;">integer</span><span style="color: #000000;">;<br />
</span><span style="color: #008080;">13</span>&nbsp;<span style="color: #000000;">personNodes&nbsp;xmldom.DOMNodeList;<br />
</span><span style="color: #008080;">14</span>&nbsp;<span style="color: #000000;">chilNodes&nbsp;xmldom.DOMNodeList;<br />
</span><span style="color: #008080;">15</span>&nbsp;<span style="color: #000000;">tempNode&nbsp;xmldom.DOMNode;<br />
</span><span style="color: #008080;">16</span>&nbsp;<span style="color: #000000;">tempArrMap&nbsp;xmldom.DOMNamedNodeMap;<br />
</span><span style="color: #008080;">17</span>&nbsp;<span style="color: #008080;">--</span><span style="color: #008080;">================================</span><span style="color: #008080;"><br />
</span><span style="color: #008080;">18</span>&nbsp;<span style="color: #008080;">--</span><span style="color: #008080;">以下变量用于获取XML节点的值</span><span style="color: #008080;"><br />
</span><span style="color: #008080;">19</span>&nbsp;<span style="color: #000000;">pid&nbsp;</span><span style="color: #000000; font-weight: bold;">varchar2</span><span style="color: #000000;">(</span><span style="color: #800000; font-weight: bold;">4</span><span style="color: #000000;">);<br />
</span><span style="color: #008080;">20</span>&nbsp;<span style="color: #000000;">name&nbsp;</span><span style="color: #000000; font-weight: bold;">varchar2</span><span style="color: #000000;">(</span><span style="color: #800000; font-weight: bold;">50</span><span style="color: #000000;">);<br />
</span><span style="color: #008080;">21</span>&nbsp;<span style="color: #000000;">address&nbsp;</span><span style="color: #000000; font-weight: bold;">varchar2</span><span style="color: #000000;">(</span><span style="color: #800000; font-weight: bold;">200</span><span style="color: #000000;">);<br />
</span><span style="color: #008080;">22</span>&nbsp;<span style="color: #000000;">tel&nbsp;</span><span style="color: #000000; font-weight: bold;">varchar2</span><span style="color: #000000;">(</span><span style="color: #800000; font-weight: bold;">20</span><span style="color: #000000;">);<br />
</span><span style="color: #008080;">23</span>&nbsp;<span style="color: #000000;">fax&nbsp;</span><span style="color: #000000; font-weight: bold;">varchar2</span><span style="color: #000000;">(</span><span style="color: #800000; font-weight: bold;">20</span><span style="color: #000000;">);<br />
</span><span style="color: #008080;">24</span>&nbsp;<span style="color: #000000;">email&nbsp;</span><span style="color: #000000; font-weight: bold;">varchar</span><span style="color: #000000;">(</span><span style="color: #800000; font-weight: bold;">100</span><span style="color: #000000;">);<br />
</span><span style="color: #008080;">25</span>&nbsp;<span style="color: #000000;">tmp&nbsp;</span><span style="color: #000000; font-weight: bold;">integer</span><span style="color: #000000;">;<br />
</span><span style="color: #008080;">26</span>&nbsp;<span style="color: #008080;">--</span><span style="color: #008080;">================================</span><span style="color: #008080;"><br />
</span><span style="color: #008080;">27</span>&nbsp;<span style="color: #0000ff;">BEGIN</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">28</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;xmlPar&nbsp;:</span><span style="color: #808080;">=</span><span style="color: #000000;">&nbsp;xmlparser.newParser;<br />
</span><span style="color: #008080;">29</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;xmlparser.setErrorLog(&nbsp;xmlPar,&nbsp;log_path);<br />
</span><span style="color: #008080;">30</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;xmlparser.parse(xmlPar,&nbsp;file_path);<br />
</span><span style="color: #008080;">31</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;doc&nbsp;:</span><span style="color: #808080;">=</span><span style="color: #000000;">&nbsp;xmlparser.getDocument(&nbsp;xmlPar&nbsp;);&nbsp;&nbsp;<br />
</span><span style="color: #008080;">32</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;</span><span style="color: #008080;">--</span><span style="color: #008080;">&nbsp;释放解析器实例</span><span style="color: #008080;"><br />
</span><span style="color: #008080;">33</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;xmlparser.freeParser(xmlPar);<br />
</span><span style="color: #008080;">34</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;</span><span style="color: #008080;">--</span><span style="color: #008080;">&nbsp;获取所有PERSON元素</span><span style="color: #008080;"><br />
</span><span style="color: #008080;">35</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;personNodes&nbsp;:</span><span style="color: #808080;">=</span><span style="color: #000000;">&nbsp;xmldom.getElementsByTagName(&nbsp;doc,&nbsp;</span><span style="color: #ff0000;">'</span><span style="color: #ff0000;">PERSON</span><span style="color: #ff0000;">'</span><span style="color: #000000;">&nbsp;);<br />
</span><span style="color: #008080;">36</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;</span><span style="color: #ff00ff;">len</span><span style="color: #000000;">&nbsp;:</span><span style="color: #808080;">=</span><span style="color: #000000;">&nbsp;xmldom.getLength(&nbsp;personNodes&nbsp;);<br />
</span><span style="color: #008080;">37</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;</span><span style="color: #008080;">--</span><span style="color: #008080;">遍历所有PERSON元素</span><span style="color: #008080;"><br />
</span><span style="color: #008080;">38</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;</span><span style="color: #0000ff;">FOR</span><span style="color: #000000;">&nbsp;i&nbsp;</span><span style="color: #808080;">in</span><span style="color: #000000;">&nbsp;</span><span style="color: #800000; font-weight: bold;">0</span><span style="color: #000000;">..</span><span style="color: #ff00ff;">len</span><span style="color: #808080;">-</span><span style="color: #800000; font-weight: bold;">1</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">39</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;LOOP<br />
</span><span style="color: #008080;">40</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp; </span><span style="color: #008080;">--</span><span style="color: #008080;">获取第i个PERSON</span><span style="color: #008080;"><br />
</span><span style="color: #008080;">41</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;tempNode&nbsp;:</span><span style="color: #808080;">=</span><span style="color: #000000;">&nbsp;xmldom.item(&nbsp;personNodes,&nbsp;i&nbsp;);<br />
</span><span style="color: #008080;">42</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008080;">--</span><span style="color: #008080;">所有属性</span><span style="color: #008080;"><br />
</span><span style="color: #008080;">43</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;tempArrMap&nbsp;:</span><span style="color: #808080;">=</span><span style="color: #000000;">&nbsp;xmldom.getAttributes(tempNode);<br />
</span><span style="color: #008080;">44</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008080;">--</span><span style="color: #008080;">获取PERSONID的值</span><span style="color: #008080;"><br />
</span><span style="color: #008080;">45</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;pid&nbsp;:</span><span style="color: #808080;">=</span><span style="color: #000000;">&nbsp;xmldom.getNodeValue(xmldom.getNamedItem(tempArrMap,</span><span style="color: #ff0000;">'</span><span style="color: #ff0000;">PERSONID</span><span style="color: #ff0000;">'</span><span style="color: #000000;">));<br />
</span><span style="color: #008080;">46</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008080;">--</span><span style="color: #008080;">获取子元素的值</span><span style="color: #008080;"><br />
</span><span style="color: #008080;">47</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;chilNodes&nbsp;:</span><span style="color: #808080;">=</span><span style="color: #000000;">&nbsp;xmldom.getChildNodes(tempNode);<br />
</span><span style="color: #008080;">48</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;tmp&nbsp;:</span><span style="color: #808080;">=</span><span style="color: #000000;">&nbsp;xmldom.GETLENGTH(&nbsp;chilNodes&nbsp;);<br />
</span><span style="color: #008080;">49</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;name&nbsp;:</span><span style="color: #808080;">=</span><span style="color: #000000;">&nbsp;xmldom.getNodeValue(xmldom.getFirstChild(xmldom.item(&nbsp;chilNodes,&nbsp;</span><span style="color: #800000; font-weight: bold;">0</span><span style="color: #000000;">&nbsp;)));<br />
</span><span style="color: #008080;">50</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;address&nbsp;:</span><span style="color: #808080;">=</span><span style="color: #000000;">&nbsp;xmldom.getNodeValue(xmldom.getFirstChild(xmldom.item(&nbsp;chilNodes,&nbsp;</span><span style="color: #800000; font-weight: bold;">1</span><span style="color: #000000;">&nbsp;)));<br />
</span><span style="color: #008080;">51</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;tel&nbsp;:</span><span style="color: #808080;">=</span><span style="color: #000000;">&nbsp;xmldom.getNodeValue(xmldom.getFirstChild(xmldom.item(&nbsp;chilNodes,&nbsp;</span><span style="color: #800000; font-weight: bold;">2</span><span style="color: #000000;">&nbsp;)));<br />
</span><span style="color: #008080;">52</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;fax&nbsp;:</span><span style="color: #808080;">=</span><span style="color: #000000;">&nbsp;xmldom.getNodeValue(xmldom.getFirstChild(xmldom.item(&nbsp;chilNodes,&nbsp;</span><span style="color: #800000; font-weight: bold;">3</span><span style="color: #000000;">&nbsp;)));<br />
</span><span style="color: #008080;">53</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;email&nbsp;:</span><span style="color: #808080;">=</span><span style="color: #000000;">&nbsp;xmldom.getNodeValue(xmldom.getFirstChild(xmldom.item(&nbsp;chilNodes,&nbsp;</span><span style="color: #800000; font-weight: bold;">4</span><span style="color: #000000;">&nbsp;)));<br />
</span><span style="color: #008080;">54</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008080;">--</span><span style="color: #008080;">插入数据</span><span style="color: #008080;"><br />
</span><span style="color: #008080;">55</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">INSERT</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">INTO</span><span style="color: #000000;">&nbsp;PEOPLE&nbsp;</span><span style="color: #0000ff;">VALUES</span><span style="color: #000000;">&nbsp;(pid,name,address,tel,fax,email);<br />
</span><span style="color: #008080;">56</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">COMMIT</span><span style="color: #000000;">;<br />
</span><span style="color: #008080;">57</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;</span><span style="color: #0000ff;">END</span><span style="color: #000000;">&nbsp;LOOP;<br />
</span><span style="color: #008080;">58</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;</span><span style="color: #008080;">--</span><span style="color: #008080;">&nbsp;释放文档对象</span><span style="color: #008080;"><br />
</span><span style="color: #008080;">59</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;xmldom.freeDocument(doc);<br />
</span><span style="color: #008080;">60</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;EXCEPTION<br />
</span><span style="color: #008080;">61</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">WHEN</span><span style="color: #000000;">&nbsp;OTHERS&nbsp;</span><span style="color: #0000ff;">THEN</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">62</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DBMS_output.PUT_LINE(SQLERRM);<br />
</span><span style="color: #008080;">63</span>&nbsp;<span style="color: #0000ff;">END</span><span style="color: #000000;">&nbsp;addPerson; <br />
</span></div>
<br />
<br />
有许多朋友都说执行时出现错误，现在我把我在Oracle9i使用的截图贴出来，以作参考：<br />
<br />
<br />
<img src="http://www.blogjava.net/images/blogjava_net/botson/31689/r_3.gif" alt="存储过程截图" />
<img src ="http://www.blogjava.net/botson/aggbug/187360.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/botson/" target="_blank">Jam Chan</a> 2008-03-19 21:40 <a href="http://www.blogjava.net/botson/archive/2008/03/19/187360.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>