﻿<?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-beyond duke!</title><link>http://www.blogjava.net/beyondduke/</link><description /><language>zh-cn</language><lastBuildDate>Wed, 29 Apr 2026 16:49:34 GMT</lastBuildDate><pubDate>Wed, 29 Apr 2026 16:49:34 GMT</pubDate><ttl>60</ttl><item><title>初学flex</title><link>http://www.blogjava.net/beyondduke/archive/2008/03/12/185689.html</link><dc:creator>beyondduke</dc:creator><author>beyondduke</author><pubDate>Wed, 12 Mar 2008 06:28:00 GMT</pubDate><guid>http://www.blogjava.net/beyondduke/archive/2008/03/12/185689.html</guid><wfw:comment>http://www.blogjava.net/beyondduke/comments/185689.html</wfw:comment><comments>http://www.blogjava.net/beyondduke/archive/2008/03/12/185689.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/beyondduke/comments/commentRss/185689.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/beyondduke/services/trackbacks/185689.html</trackback:ping><description><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp; 上大学的时候，看到好多精彩炫丽的flash，学习了一些flash的知识。那个时候不怎么会写脚本，就用动画的概念一帧一帧的拼出一个flash。后来工作以后，给客户在线演示产品，有接触了Captivate。2006年末的时候，客户要求开发一个在线产品展示平台，我偶然搜到了adobe用flex开发的网上购物演示，就体会到如果用flex来实现这个产品展示平台将是很动人的事情，由于某种原因最终未能如愿。最近在做一个通用视频培训平台时又用到了FLV播放器，也是用Flex开发的，最终效果和土豆、优酷非常类似。这些场景使我对flash的展现效果情有独钟，况且有adobe这样的公司在运作flash，如果可能的话应该在合适的场合来把flex集成到我们现在开发的应用中，比如图表功能、表单功能、打印功能等等。基于以上的经历和思路，决定花功夫学习一下flex还是值得的。<br />
&nbsp;&nbsp;&nbsp; 首先，到adobe官方网站下载flex builder 3（当前最新版本）并安装。安装完毕后会看到一些入门文章中提到的Flex SDK已经在builder中存在了，所以初学仅下载个builder就够了。<br />
&nbsp;&nbsp;&nbsp; 然后，打开builder发现它就是基于eclipse开发的，我想这个IDE对于大多数java开发着再熟悉不过了。首次进入时会有一个欢迎界面和初学者向导，我比较习惯看看这些东西，点击下载提供的入门工程Flex3GSEIII_a_WorkingWithData_JSP，并导入builder中。看看工程结构跟我们平时的JAVAEE工程有了一些不同。多了bin-debug和html-template文件夹，文件类型主要是*.mxml、*.as。在工程的左侧视图右键*.mxml运行（类似与运行java文件），会有一个编译过程，过后弹出一个html，html中运行的正式flash。当时比较好奇，一个mxml是如何经过编译产生html和flash的，打开刚才提到的bin-debug发现两个文件生成到了这个文件夹。仔细读一下mxml的代码发现跟XHTML基本类似，其中的一些function都是AS写的。至此我分析得到如下结论：mxml+as--&gt;swf,中间的转换是adobe集成在builder中的转换工具完成的。如此跟我们以往HTML+JS的编程习惯很类似了，并且XHTML与AS的结合更紧密一些。由于初学原理性的知识我就理解至此了。<br />
&nbsp;&nbsp; 最后，我们关心的是用flex都能实现哪些控件，并且控件的效果如何。我没有迫不及待的去google，而是又深入到builder的安装目录下，在D:\Flex Builder 3\sdks\3.0.0发现了好东西，别的我不关心，先看samples，子目录下有一个explorer，其中包含一个build.bat。看到这个bat我更加确定了我以上的结论。于是运行bat，开始编译其下的mxml文件逐一生成swf文件。花一段时间生成完毕，打开类似于index的swf文件，sdk中提供的样例控件就都尽收眼底了。<br />
&nbsp;&nbsp; 后续：有源文件，有开发工具，你可以随意摆弄这些代码，熟悉语法，熟悉开发环境，熟悉对象属性，拼拼凑凑完成自己的一个组合界面了。</p>
<img src ="http://www.blogjava.net/beyondduke/aggbug/185689.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/beyondduke/" target="_blank">beyondduke</a> 2008-03-12 14:28 <a href="http://www.blogjava.net/beyondduke/archive/2008/03/12/185689.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>谈一谈在家办公的利弊</title><link>http://www.blogjava.net/beyondduke/archive/2008/01/31/178621.html</link><dc:creator>beyondduke</dc:creator><author>beyondduke</author><pubDate>Thu, 31 Jan 2008 01:48:00 GMT</pubDate><guid>http://www.blogjava.net/beyondduke/archive/2008/01/31/178621.html</guid><wfw:comment>http://www.blogjava.net/beyondduke/comments/178621.html</wfw:comment><comments>http://www.blogjava.net/beyondduke/archive/2008/01/31/178621.html#Feedback</comments><slash:comments>12</slash:comments><wfw:commentRss>http://www.blogjava.net/beyondduke/comments/commentRss/178621.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/beyondduke/services/trackbacks/178621.html</trackback:ping><description><![CDATA[<div class="blog_content">
<div class="quote_div"><br />
为缓解早晚高峰带来的拥堵，北京交通委经过调研，拟从商业机构、大型商场开始试行错峰上下班，同时拟在IT行业、科研单位试行弹性工作制。昨天，市人大代表赵凤桐透露，具体方案政府还在拟订中。 <br />
市人大代表刘国祥在去年的人代会上提出&#8220;合理调整上下班时间&#8221;建议(见新闻附件)。市交通委对此予以回复称，本市拟试行错开上下班时间和实行弹性工作时间两种方法，缓解早晚高峰的交通压力。目前，已经在开展商业、机关企事业单位等错峰上下班的研究，并提出了调整商业、机关企事业单位上下班时间的初步方案，拟从商业机构开始实施。 此外，交通委还与相关部门进行了协商，对中关村等地区进行调研，拟对某些行业(如IT行业、科研单位等)实行弹性工作制，鼓励在家网上办公。如果这些措施能够实施，则在一定程度上可以削减高峰时段的交通流峰值。 <br />
据了解，截至2007年底，北京的机动车保有量已达到310万辆。市交通委表示，从城市交通运行态势来看，出行需求和机动车保有量仍在持续快速增长，高峰时段道路拥堵区域不断扩大、局部路段平均车速下降，缓解拥堵的措施大多被持续快速增长的交通需求所抵消，交通形势依然十分严峻。 </div>
<br />
<br />
这是前两周的新闻了，当时一看到新闻就感觉这条消息很利好，尤其对我们北京的程序员来说。在家办公的利弊，现在业内也没有个具体的说法，这几天有幸在家办公，体验了一把想跟大家谈一谈我的看法。 <br />
一，利： <br />
1，节约时间：花在等车、路上、堵车、倒车或开车、停车等交通出行的时间成本。 <br />
2，节约金钱：上下班的路费或车位费、油费等，还不算看不到的时间兑换的钱（时间就是金钱）。 <br />
3，为国家做贡献：不但给上述新闻中的交通部门减少压力，而且减少了碳的排放量（节能减排）。 <br />
4，为公司节约日常费用：占位费，水费，餐费，办公费，交通费。。。。 <br />
5，自己时间把握更准确：由于减少了交通环节，个人时间上更有可控性。 <br />
二，弊： <br />
1，缺少办公气氛：家中的环境毕竟没有公司那么统一，一个家一个样儿，有条件给自己打造办公环境和气氛的员工恐怕只有少数。 <br />
2，增加交流成本：公司面对面的交流只能改成手机对手机，或麦克对麦克，或手指对手指。这些肯定都比面对面花的时间长，还要通讯费上网费。 <br />
3，容易受外界干扰：如果家中有妻儿老小，家里很难给你一个封闭环境，你会不断的被&#8220;骚扰&#8221;，毕竟工作的事情像写程序需要比较心静的环境。 <br />
4，容易自由散漫：没有了公司领导的监控和同事的督促，人的自控能力是有限的，没准看新闻泡论坛玩游戏就过了头，耽误的肯定是正事。 <br />
5，造成公共资源浪费：公司里的公共资源在家是很难利用好的，比如内部的服务器，局域网和通讯工具。 <br />
以上这些是我所能想到的，至于利大还是弊大我没有偏向都是5条。个人还是觉得天时地利人和才适合在家办公，对于不同的人或同一个人的不同时间段都是利弊难辨的。 <br />
希望大家能聊一聊自己的看法。 </div>
<script type="text/javascript">
  dp.SyntaxHighlighter.ClipboardSwf = '/javascripts/syntaxhighlighter/clipboard.swf';
  dp.SyntaxHighlighter.HighlightAll('code', true, true);

  Event.observe(window,'load',function() {
    fix_image_size($('main'), 700);
  });  
</script>
 <img src ="http://www.blogjava.net/beyondduke/aggbug/178621.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/beyondduke/" target="_blank">beyondduke</a> 2008-01-31 09:48 <a href="http://www.blogjava.net/beyondduke/archive/2008/01/31/178621.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Excel报表之js版</title><link>http://www.blogjava.net/beyondduke/archive/2006/08/05/61911.html</link><dc:creator>beyondduke</dc:creator><author>beyondduke</author><pubDate>Sat, 05 Aug 2006 03:14:00 GMT</pubDate><guid>http://www.blogjava.net/beyondduke/archive/2006/08/05/61911.html</guid><wfw:comment>http://www.blogjava.net/beyondduke/comments/61911.html</wfw:comment><comments>http://www.blogjava.net/beyondduke/archive/2006/08/05/61911.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://www.blogjava.net/beyondduke/comments/commentRss/61911.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/beyondduke/services/trackbacks/61911.html</trackback:ping><description><![CDATA[ 半年以前做过server端生成excel的简单引擎，总感觉不够轻便，尤其在一些固定格式，数据量又不是很大的情况下，上周写了一<br /><br />个根据表单数据在client端用js生成excle的demo，令我我激动了半天------js太强了！<br /><br />下面分享一下这段js： <br />  
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #008080"> 1</span><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000"> excel  </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> ActiveXObject(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Excel.Application</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">); </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">创建AX对象excel</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080"> 2</span><span style="COLOR: #008000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">excel.visible </span><span style="COLOR: #000000">=</span><span style="COLOR: #0000ff">true</span><span style="COLOR: #000000">; </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">设置excel可见属性</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080"> 3</span><span style="COLOR: #008000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000"> workbook </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> excel.Workbooks.Add; </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">获取workbook对象</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080"> 4</span><span style="COLOR: #008000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000"> sheet1 </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> xlBook.Worksheets(</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">);  </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">创建sheet1</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080"> 5</span><span style="COLOR: #008000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000"> sheet2 </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> xlBook.Worksheets(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">);  </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">创建sheet2</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080"> 6</span><span style="COLOR: #008000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">sheet1.Range(sheet1.Cells(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">),sheet1.Cells(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">14</span><span style="COLOR: #000000">)).mergecells</span><span style="COLOR: #000000">=</span><span style="COLOR: #0000ff">true</span><span style="COLOR: #000000">; </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">合并单元格</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080"> 7</span><span style="COLOR: #008000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">sheet1.Range(sheet1.Cells(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">),sheet1.Cells(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">14</span><span style="COLOR: #000000">)).value</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">员工月考核成绩</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">; </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">设置单元格内容</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080"> 8</span><span style="COLOR: #008000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">sheet1.Range(sheet1.Cells(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">),sheet1.Cells(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">14</span><span style="COLOR: #000000">)).Interior.ColorIndex</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">6</span><span style="COLOR: #000000">;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">设置底色 </span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080"> 9</span><span style="COLOR: #008000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">sheet1.Range(sheet1.Cells(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">),sheet1.Cells(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">14</span><span style="COLOR: #000000">)).Font.ColorIndex</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">5</span><span style="COLOR: #000000">;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">设置字体色 </span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080">10</span><span style="COLOR: #008000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">sheet1.Rows(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">).RowHeight </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">20</span><span style="COLOR: #000000">; </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">设置列高</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080">11</span><span style="COLOR: #008000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">sheet1.Rows(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">).Font.Size</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">16</span><span style="COLOR: #000000">;  </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">设置文字大小</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080">12</span><span style="COLOR: #008000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">sheet1.Rows(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">).Font.Name</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">宋体</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">; </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">设置字体</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080">13</span><span style="COLOR: #008000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />//</span><span style="COLOR: #008000">设置每一列的标题</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080">14</span><span style="COLOR: #008000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">sheet1.Cells(</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">).Value</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">工程师考核项</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080">15</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />sheet1.Cells(</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">).Value</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">总分</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080">16</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />sheet1.Cells(</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">).Value</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">研发进度</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080">17</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />sheet1.Cells(</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">4</span><span style="COLOR: #000000">).Value</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">出勤率</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080">18</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />sheet1.Cells(</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">5</span><span style="COLOR: #000000">).Value</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">执行力</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080">19</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />sheet1.Cells(</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">6</span><span style="COLOR: #000000">).Value</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">责任心</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080">20</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />sheet1.Cells(</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">7</span><span style="COLOR: #000000">).Value</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">工作规范</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080">21</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />sheet1.Cells(</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">8</span><span style="COLOR: #000000">).Value</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">协作精神</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080">22</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />sheet1.Cells(</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">9</span><span style="COLOR: #000000">).Value</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">进取性</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080">23</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />sheet1.Cells(</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">10</span><span style="COLOR: #000000">).Value</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">工作合理性</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080">24</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />sheet1.Cells(</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">11</span><span style="COLOR: #000000">).Value</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">解决问题能力</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080">25</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />sheet1.Cells(</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">12</span><span style="COLOR: #000000">).Value</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">应变能力</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080">26</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />sheet1.Cells(</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">13</span><span style="COLOR: #000000">).Value</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">人际技能</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080">27</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />sheet1.Cells(</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">14</span><span style="COLOR: #000000">).Value</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">理解能力</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080">28</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">从表单循环控件中取出数据逐行插入对应列的数据</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080">29</span><span style="COLOR: #008000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000"> count </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> sfform.GetAttributeValue('Repeat','Count');<br /></span><span style="COLOR: #008080">30</span><span style="COLOR: #000000"><img id="Codehighlighter1_1253_2657_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1253_2657_Open_Text.style.display='none'; Codehighlighter1_1253_2657_Closed_Image.style.display='inline'; Codehighlighter1_1253_2657_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_1253_2657_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1253_2657_Closed_Text.style.display='none'; Codehighlighter1_1253_2657_Open_Image.style.display='inline'; Codehighlighter1_1253_2657_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">(</span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000"> line</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;line</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">count;line</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)</span><span id="Codehighlighter1_1253_2657_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_1253_2657_Open_Text"><span style="COLOR: #000000">{ </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">begin for</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080">31</span><span style="COLOR: #008000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="COLOR: #000000">  </span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000"> name  </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> sfform.GetValue('Repeat['</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">line</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">'].name');<br /></span><span style="COLOR: #008080">32</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />  </span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000"> total</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> sfform.GetValue('Repeat['</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">line</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">'].total');<br /></span><span style="COLOR: #008080">33</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />  </span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000"> yfjd </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> sfform.GetValue('Repeat['</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">line</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">'].yfjd');<br /></span><span style="COLOR: #008080">34</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />  </span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000"> jh </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> sfform.GetValue('Repeat['</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">line</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">'].jh');<br /></span><span style="COLOR: #008080">35</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />  </span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000"> gcgj </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> sfform.GetValue('Repeat['</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">line</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">'].gcgj');<br /></span><span style="COLOR: #008080">36</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />  </span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000"> cql </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> sfform.GetValue('Repeat['</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">line</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">'].cql');<br /></span><span style="COLOR: #008080">37</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />  </span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000"> zxl </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> sfform.GetValue('Repeat['</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">line</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">'].zxl');<br /></span><span style="COLOR: #008080">38</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />  </span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000"> gzgf </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> sfform.GetValue('Repeat['</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">line</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">'].gzgf');<br /></span><span style="COLOR: #008080">39</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />  </span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000"> zrx </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> sfform.GetValue('Repeat['</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">line</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">'].zrx');<br /></span><span style="COLOR: #008080">40</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />  </span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000"> xzjs </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> sfform.GetValue('Repeat['</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">line</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">'].xzjs');<br /></span><span style="COLOR: #008080">41</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />  </span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000"> jqx </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> sfform.GetValue('Repeat['</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">line</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">'].jqx');<br /></span><span style="COLOR: #008080">42</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />  </span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000"> gzhl </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> sfform.GetValue('Repeat['</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">line</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">'].gzh');<br /></span><span style="COLOR: #008080">43</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />  </span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000"> jjwt </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> sfform.GetValue('Repeat['</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">line</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">'].jjwt');<br /></span><span style="COLOR: #008080">44</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />  </span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000"> ybnl </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> sfform.GetValue('Repeat['</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">line</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">'].ybnl');<br /></span><span style="COLOR: #008080">45</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />  </span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000"> rjjn </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> sfform.GetValue('Repeat['</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">line</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">'].rjjn');<br /></span><span style="COLOR: #008080">46</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />  </span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000"> ljnl </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> sfform.GetValue('Repeat['</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">line</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">'].ljnl');<br /></span><span style="COLOR: #008080">47</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />  sheet1.Cells(</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">line,</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">).Value</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">name;<br /></span><span style="COLOR: #008080">48</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />  sheet1.Cells(</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">line,</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">).Value</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">total;<br /></span><span style="COLOR: #008080">49</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />  sheet1.Cells(</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">line,</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">).Value</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">yfjd;<br /></span><span style="COLOR: #008080">50</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />  sheet1.Cells(</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">line,</span><span style="COLOR: #000000">4</span><span style="COLOR: #000000">).Value</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">cql;<br /></span><span style="COLOR: #008080">51</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />  sheet1.Cells(</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">line,</span><span style="COLOR: #000000">5</span><span style="COLOR: #000000">).Value</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">zxl;<br /></span><span style="COLOR: #008080">52</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />  sheet1.Cells(</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">line,</span><span style="COLOR: #000000">6</span><span style="COLOR: #000000">).Value</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">gzgf;<br /></span><span style="COLOR: #008080">53</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />  sheet1.Cells(</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">line,</span><span style="COLOR: #000000">7</span><span style="COLOR: #000000">).Value</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">zrx;<br /></span><span style="COLOR: #008080">54</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />  sheet1.Cells(</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">line,</span><span style="COLOR: #000000">8</span><span style="COLOR: #000000">).Value</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">xzjs;<br /></span><span style="COLOR: #008080">55</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />  sheet1.Cells(</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">line,</span><span style="COLOR: #000000">9</span><span style="COLOR: #000000">).Value</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">jqx;<br /></span><span style="COLOR: #008080">56</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />  sheet1.Cells(</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">line,</span><span style="COLOR: #000000">10</span><span style="COLOR: #000000">).Value</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">gzhl;<br /></span><span style="COLOR: #008080">57</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />  sheet1.Cells(</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">line,</span><span style="COLOR: #000000">11</span><span style="COLOR: #000000">).Value</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">jjwt;<br /></span><span style="COLOR: #008080">58</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />  sheet1.Cells(</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">line,</span><span style="COLOR: #000000">12</span><span style="COLOR: #000000">).Value</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">ybnl;<br /></span><span style="COLOR: #008080">59</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />  sheet1.Cells(</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">line,</span><span style="COLOR: #000000">13</span><span style="COLOR: #000000">).Value</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">rjjn;<br /></span><span style="COLOR: #008080">60</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />  sheet1.Cells(</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">line,</span><span style="COLOR: #000000">14</span><span style="COLOR: #000000">).Value</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">ljnl;<br /></span><span style="COLOR: #008080">61</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br /></span><span style="COLOR: #008080">62</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">end for</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080">63</span><span style="COLOR: #008000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">64</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span></div><br />基本的代码已经实现了，生成excel的格式和一些统计计算，用js写应该是很方便的，以后有例子再作补充。<br /><br />从代码角度来看这种写法不是很灵活，但在能满足用户的需求前提下，这种生成方式还是很受欢迎的，给用户的感觉就是轻<br /><br />便。个人认为简单就是美！<img src ="http://www.blogjava.net/beyondduke/aggbug/61911.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/beyondduke/" target="_blank">beyondduke</a> 2006-08-05 11:14 <a href="http://www.blogjava.net/beyondduke/archive/2006/08/05/61911.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>数据库常见的三种join方式（收藏）</title><link>http://www.blogjava.net/beyondduke/archive/2006/05/18/46745.html</link><dc:creator>beyondduke</dc:creator><author>beyondduke</author><pubDate>Thu, 18 May 2006 01:43:00 GMT</pubDate><guid>http://www.blogjava.net/beyondduke/archive/2006/05/18/46745.html</guid><wfw:comment>http://www.blogjava.net/beyondduke/comments/46745.html</wfw:comment><comments>http://www.blogjava.net/beyondduke/archive/2006/05/18/46745.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/beyondduke/comments/commentRss/46745.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/beyondduke/services/trackbacks/46745.html</trackback:ping><description><![CDATA[
		<p>数据库常见的join方式有三种：inner join, left outter join, right outter join(还有一种full join，因不常用，本文不讨论)。这三种连接方式都是将两个以上的表通过on条件语句，拼成一个大表。以下是它们的共同点：</p>
		<p>  1. 关于左右表的概念。左表指的是在SQL语句中排在left join左边的表，右表指的是排在left join右边的表。<br />  2. 在拼成的大表中，左表排在左边，右表排在右边。<br />  3. on条件语句最好用=号对两表相应的主外键进行连接。当然，也可以用其他操作符，如&gt;, &lt;, 来连接两表的任一字段，此时的关系将非常复杂，连接后的记录数也随之而变得不确定。如果在一些特殊的场合中需要用到这种方式，必须通过简单的实例加以确认，否则，连接结果很可能不是我们所想要的！<br />  4. on条件语句不能省略。<br />  5. 可以连锁使用join，每次使用join都令另一表与当前的表或连接的结果相连接。</p>
		<p>
				<br />在下文中，用到了两个表，"部门"表与"组织"表，其中，"部门"表有一名为"组织编号"的外键，指向"组织"表中的主键"编号"。</p>
		<p>
				<strong>
						<font size="4">inner join</font>
				</strong>
		</p>
		<p>  格式：select * from 部门 inner join 组织 on 部门.组织编号 = 组织.编号</p>
		<p>  目的：将两表中符合on条件的所有记录都找出来。</p>
		<p>  规律：</p>
		<p>    1. 拼出的大表记录不会增加。<br />    2. 如果左边与右表的关系是一对多的关系，在选出的任一记录中，假若右表有多个记录与其对应，那么，连接后的左表，主键将不再唯一。</p>
		<p>  典型应用：将存在多关系的引用表放在左表，将存在一关系的被引用表放在右表，通过=号将主外键进行连接，通过对右表设定过滤条件，选出相应的且主键唯一的左表记录。</p>
		<p>  备注：inner join 是默认的连接方式，可缩写为join。</p>
		<p>  转化为where子句：</p>
		<p>    select * from 部门, 组织 where 部门.组织编号 = 组织.编号</p>
		<p> </p>
		<p>
				<strong>
						<font size="4">left outter join</font>
				</strong>
		</p>
		<p>  格式: select * from 部门 left join 组织 on 部门.组织编号 = 组织.编号</p>
		<p>  格式: select * from 组织 left join 部门 on 组织.编号 = 部门.组织编号</p>
		<p>  目的：将左表的所有记录列出，右表中只要符合on条件的，与左表记录相拼合，不符合条件的，填以null值。</p>
		<p>  规律：</p>
		<p>    1. 选出所有符合条件的左表，如果左边与右表的关系是一对一的关系，则拼成的大表记录不会改变。<br />       如果左边与右表的关系是多对一的关系，则拼成的大表记录也不会改变。<br />       如果左边与右表的关系是一对多的关系，则拼成的大表记录会增加。对于每一具有一对多关系的左表记录，如果左表1：N与右表对应，那么会多出N-1条记录。例如，如果左表第一条记录1：3对应于右表，多出2条记录。如果左表第二条记录1：2对应于右表，则再多出1条记录。这样，总共多出3条记录。其他类推。<br />    2. 如果左边与右表的关系是一对多的关系，在选出的任一记录中，假若右表有多个记录与其对应，那么，连接后的左表，主键将不再唯一。<br />    3. 如果左边与右表的关系是一对多的关系，对于左表任一记录，如果右表没有记录与其相对应，则全部填以null值。</p>
		<p>  典型应用：将存在多关系的引用表放在左表，将存在一关系的被引用表放在右表，通过对右表设定过滤条件，选出相应的且主键唯一的左表记录。</p>
		<p>  备注：left outter join可用left join代替。在有些数据库中，如HSqlDb, 只能使用left join而不能使用left outter join。</p>
		<p>  转化为where子句：</p>
		<p>    select * from 部门, 组织 where 部门.组织编号 = 组织.编号</p>
		<p>
				<br />
				<strong>
						<font size="4">right outter join</font>
				</strong>
		</p>
		<p>  格式: select * from 部门 right join 组织 on 部门.组织编号 = 组织.编号</p>
		<p>  格式: select * from 组织 right join 部门 on 部门.组织编号 = 组织.编号</p>
		<p>  目的：将右表的所有记录列出，左表中只要符合on条件的，与右表记录相拼合，不符合条件的，填以null值。</p>
		<p>  规律：(与left outter join相反)</p>
		<p>  典型应用：可转化成left outter join。例如</p>
		<p>    select * from 组织 right join 部门 on 部门.组织编号 = 组织.编号<br />    与<br />    select * from 部门 left join 组织 on 部门.组织编号 = 组织.编号<br />    的效果一样</p>
		<p>  备注：right outter join可用right join代替。在有些数据库中，如HSqlDb, 没有实现right join功能。</p>
		<p>  转化为where子句：</p>
		<p>    select * from 部门, 组织 where 部门.组织编号 = 组织.编号</p>
<img src ="http://www.blogjava.net/beyondduke/aggbug/46745.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/beyondduke/" target="_blank">beyondduke</a> 2006-05-18 09:43 <a href="http://www.blogjava.net/beyondduke/archive/2006/05/18/46745.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>递归小程序</title><link>http://www.blogjava.net/beyondduke/archive/2006/03/29/37965.html</link><dc:creator>beyondduke</dc:creator><author>beyondduke</author><pubDate>Wed, 29 Mar 2006 01:31:00 GMT</pubDate><guid>http://www.blogjava.net/beyondduke/archive/2006/03/29/37965.html</guid><wfw:comment>http://www.blogjava.net/beyondduke/comments/37965.html</wfw:comment><comments>http://www.blogjava.net/beyondduke/archive/2006/03/29/37965.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/beyondduke/comments/commentRss/37965.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/beyondduke/services/trackbacks/37965.html</trackback:ping><description><![CDATA[递归<img src ="http://www.blogjava.net/beyondduke/aggbug/37965.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/beyondduke/" target="_blank">beyondduke</a> 2006-03-29 09:31 <a href="http://www.blogjava.net/beyondduke/archive/2006/03/29/37965.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>程序员的方向</title><link>http://www.blogjava.net/beyondduke/archive/2006/03/25/37317.html</link><dc:creator>beyondduke</dc:creator><author>beyondduke</author><pubDate>Sat, 25 Mar 2006 03:21:00 GMT</pubDate><guid>http://www.blogjava.net/beyondduke/archive/2006/03/25/37317.html</guid><wfw:comment>http://www.blogjava.net/beyondduke/comments/37317.html</wfw:comment><comments>http://www.blogjava.net/beyondduke/archive/2006/03/25/37317.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/beyondduke/comments/commentRss/37317.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/beyondduke/services/trackbacks/37317.html</trackback:ping><description><![CDATA[转眼做程序已经1年半了，现在的工作似乎很不可思议，自己也搞不清是否真正属于一个程序员。每天面对msn上几十个客户（大多数都是程序员），忙得不亦乐乎，总是不断的switch workspace，客户的问题你要能重现才行。也许这也是一种锻炼吧，需要十足的耐心，千万不能浮躁，一旦出现问题还要不断的debug！<img src ="http://www.blogjava.net/beyondduke/aggbug/37317.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/beyondduke/" target="_blank">beyondduke</a> 2006-03-25 11:21 <a href="http://www.blogjava.net/beyondduke/archive/2006/03/25/37317.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>linux 下配置java环境（jdk和tomcat)</title><link>http://www.blogjava.net/beyondduke/archive/2006/02/14/30573.html</link><dc:creator>beyondduke</dc:creator><author>beyondduke</author><pubDate>Tue, 14 Feb 2006 04:34:00 GMT</pubDate><guid>http://www.blogjava.net/beyondduke/archive/2006/02/14/30573.html</guid><wfw:comment>http://www.blogjava.net/beyondduke/comments/30573.html</wfw:comment><comments>http://www.blogjava.net/beyondduke/archive/2006/02/14/30573.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/beyondduke/comments/commentRss/30573.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/beyondduke/services/trackbacks/30573.html</trackback:ping><description><![CDATA[<P><STRONG><FONT size=4>JDK的配置：</FONT></STRONG><BR><BR>&nbsp;&nbsp;&nbsp; 1,&nbsp; 下载j2sdk-linux-i386-rpm.bin<BR>&nbsp;&nbsp; &nbsp;2，运行命令：<FONT style="BACKGROUND-COLOR: #d3d3d3" color=#0000ff>chmod +x j2sdk-linux-i386-rpm.bin&nbsp;&nbsp;&nbsp;&nbsp; <FONT style="BACKGROUND-COLOR: #ffffff" color=#000000>（修改成可执行权限）<BR></FONT></FONT>&nbsp; &nbsp; 3，执行<FONT style="BACKGROUND-COLOR: #d3d3d3" color=#0000ff>：./ j2sdk-1_3_1-linux-i386-rpm.bin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT style="BACKGROUND-COLOR: #ffffff" color=#000000>(执行后生成rpm安装包j2sdk-linux-i386.rpm)</FONT></FONT><BR>&nbsp; &nbsp; 4，<FONT style="BACKGROUND-COLOR: #d3d3d3" color=#0000ff>rpm -ivh j2sdk-1_3_1-linux-i386-rpm&nbsp;&nbsp;&nbsp;&nbsp;<FONT style="BACKGROUND-COLOR: #ffffff"> (<FONT color=#000000>安装成功后，jdk将被安装在/usr/java/目录下)<BR>&nbsp;&nbsp;&nbsp; 5,&nbsp;&nbsp; vi当前用户（例root目录下）的.bash_profile文件，添加内容如下：</P>
<DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><FONT size=3><SPAN style="COLOR: #008080">1</SPAN><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #000000">export&nbsp;JAVA_HOME</SPAN><SPAN style="COLOR: #000000">=/</SPAN><SPAN style="COLOR: #000000">usr</SPAN><SPAN style="COLOR: #000000">/</SPAN><SPAN style="COLOR: #000000">java</SPAN><SPAN style="COLOR: #000000">/</SPAN><SPAN style="COLOR: #000000">j2sdk1</SPAN><SPAN style="COLOR: #000000">.</SPAN><SPAN style="COLOR: #800000">4</SPAN><SPAN style="COLOR: #000000">.</SPAN></FONT><FONT size=3><SPAN style="COLOR: #000000">2_10<BR></SPAN><SPAN style="COLOR: #008080">2</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>export&nbsp;CLASSPATH</SPAN><SPAN style="COLOR: #000000">=.:</SPAN><SPAN style="COLOR: #800080">$JAVA_HOME</SPAN><SPAN style="COLOR: #000000">/</SPAN><SPAN style="COLOR: #000000">lib</SPAN><SPAN style="COLOR: #000000">/</SPAN><SPAN style="COLOR: #000000">dt</SPAN><SPAN style="COLOR: #000000">.</SPAN><SPAN style="COLOR: #000000">jar</SPAN><SPAN style="COLOR: #000000">:</SPAN><SPAN style="COLOR: #800080">$JAVA_HOME</SPAN><SPAN style="COLOR: #000000">/</SPAN><SPAN style="COLOR: #000000">lib</SPAN><SPAN style="COLOR: #000000">/</SPAN><SPAN style="COLOR: #000000">tools</SPAN><SPAN style="COLOR: #000000">.</SPAN></FONT><FONT size=3><SPAN style="COLOR: #000000">jar<BR></SPAN><SPAN style="COLOR: #008080">3</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>export&nbsp;PATH</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #800080">$PATH</SPAN><SPAN style="COLOR: #000000">:</SPAN><SPAN style="COLOR: #800080">$JAVA_HOME</SPAN><SPAN style="COLOR: #000000">/</SPAN><SPAN style="COLOR: #000000">bin</SPAN></FONT></DIV>
<P></FONT></FONT></FONT><FONT style="BACKGROUND-COLOR: #d3d3d3" color=#0000ff><FONT style="BACKGROUND-COLOR: #ffffff"><FONT color=#000000>&nbsp;&nbsp; &nbsp; 6，java命令，验证环境是否配置成功。<BR><BR><STRONG>TOMCAT的配置：<BR>&nbsp;&nbsp;&nbsp;&nbsp;<BR></STRONG>&nbsp;&nbsp;&nbsp;&nbsp; 1，下载jakarta-tomcat-5.0.28.tar.gz<BR>&nbsp;&nbsp;&nbsp;&nbsp; 2， <FONT style="BACKGROUND-COLOR: #d3d3d3" color=#0000ff>tar zxvf jakarta-tomcat.tar.gz<BR></FONT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3， 转换路径cd到tomcat/bin目录下<FONT style="BACKGROUND-COLOR: #d3d3d3" color=#0000ff>：./startup.sh</FONT> (启动tomcat)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4， 在ie浏览器输入<A href="http://servername:port">http://servername:port</A>&nbsp;&nbsp; （验证tomcat是否启动成功）<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR><BR>&nbsp;&nbsp;&nbsp;<BR></P></FONT></FONT></FONT><img src ="http://www.blogjava.net/beyondduke/aggbug/30573.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/beyondduke/" target="_blank">beyondduke</a> 2006-02-14 12:34 <a href="http://www.blogjava.net/beyondduke/archive/2006/02/14/30573.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JDBC实现oracle blob 出库入库</title><link>http://www.blogjava.net/beyondduke/archive/2006/02/14/30542.html</link><dc:creator>beyondduke</dc:creator><author>beyondduke</author><pubDate>Tue, 14 Feb 2006 01:23:00 GMT</pubDate><guid>http://www.blogjava.net/beyondduke/archive/2006/02/14/30542.html</guid><wfw:comment>http://www.blogjava.net/beyondduke/comments/30542.html</wfw:comment><comments>http://www.blogjava.net/beyondduke/archive/2006/02/14/30542.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/beyondduke/comments/commentRss/30542.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/beyondduke/services/trackbacks/30542.html</trackback:ping><description><![CDATA[1，首先建一个足够简单的表imageTable<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;varchar（20）<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; image&nbsp;&nbsp; blob<BR>2，blob入库<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;拷贝Sunset.jpg图片在C盘根目录下&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><SPAN style="COLOR: #008080">&nbsp;1</SPAN><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: #000000">DriverManager.registerDriver(</SPAN><SPAN style="COLOR: #0000ff">new</SPAN><SPAN style="COLOR: #000000">&nbsp;oracle.jdbc.driver.OracleDriver());&nbsp;<BR></SPAN><SPAN style="COLOR: #008080">&nbsp;2</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Connection&nbsp;conn&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;DriverManager.getConnection(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">jdbc:oracle:thin:@localhost:1521:beyondduke</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">,</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">duke</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">,</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">duke</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);&nbsp;<BR></SPAN><SPAN style="COLOR: #008080">&nbsp;3</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;conn.setAutoCommit(</SPAN><SPAN style="COLOR: #0000ff">false</SPAN><SPAN style="COLOR: #000000">);&nbsp;<BR></SPAN><SPAN style="COLOR: #008080">&nbsp;4</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BLOB&nbsp;blob&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">null</SPAN><SPAN style="COLOR: #000000">;&nbsp;<BR></SPAN><SPAN style="COLOR: #008080">&nbsp;5</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PreparedStatement&nbsp;pstmt&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;conn.prepareStatement(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">insert&nbsp;into&nbsp;imageTable(id,image)&nbsp;values(?,empty_blob())</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);&nbsp;<BR></SPAN><SPAN style="COLOR: #008080">&nbsp;6</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pstmt.setString(</SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">,</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">10001</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);&nbsp;<BR></SPAN><SPAN style="COLOR: #008080">&nbsp;7</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pstmt.executeUpdate();&nbsp;<BR></SPAN><SPAN style="COLOR: #008080">&nbsp;8</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pstmt.close();&nbsp;<BR></SPAN><SPAN style="COLOR: #008080">&nbsp;9</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pstmt&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;conn.prepareStatement(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">select&nbsp;content&nbsp;from&nbsp;imageTable&nbsp;where&nbsp;id=&nbsp;?&nbsp;for&nbsp;update</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);&nbsp;<BR></SPAN><SPAN style="COLOR: #008080">10</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pstmt.setString(</SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">,</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">10001</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);&nbsp;<BR></SPAN><SPAN style="COLOR: #008080">11</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ResultSet&nbsp;rs&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;pstmt.executeQuery();&nbsp;<BR></SPAN><SPAN style="COLOR: #008080">12</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000">&nbsp;(rs.next())&nbsp;blob&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;(BLOB)&nbsp;rs.getBlob(</SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">);&nbsp;<BR></SPAN><SPAN style="COLOR: #008080">13</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;fileName&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">c://Sunset.jpg</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">;&nbsp;<BR></SPAN><SPAN style="COLOR: #008080">14</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;File&nbsp;f&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">new</SPAN><SPAN style="COLOR: #000000">&nbsp;File(fileName);&nbsp;<BR></SPAN><SPAN style="COLOR: #008080">15</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FileInputStream&nbsp;fin&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">new</SPAN><SPAN style="COLOR: #000000">&nbsp;FileInputStream(f);&nbsp;<BR></SPAN><SPAN style="COLOR: #008080">16</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">file&nbsp;size&nbsp;=&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">+</SPAN><SPAN style="COLOR: #000000">&nbsp;fin.available());&nbsp;<BR></SPAN><SPAN style="COLOR: #008080">17</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pstmt&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;conn.prepareStatement(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">update&nbsp;imageTable&nbsp;set&nbsp;image=?&nbsp;where&nbsp;id=?</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);&nbsp;<BR></SPAN><SPAN style="COLOR: #008080">18</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OutputStream&nbsp;out&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;blob.getBinaryOutputStream();&nbsp;<BR></SPAN><SPAN style="COLOR: #008080">19</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">byte</SPAN><SPAN style="COLOR: #000000">[]&nbsp;data&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">new</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">byte</SPAN><SPAN style="COLOR: #000000">[(</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">)fin.available()];&nbsp;<BR></SPAN><SPAN style="COLOR: #008080">20</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fin.read(data);&nbsp;<BR></SPAN><SPAN style="COLOR: #008080">21</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.write(data);&nbsp;<BR></SPAN><SPAN style="COLOR: #008080">22</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.close();&nbsp;<BR></SPAN><SPAN style="COLOR: #008080">23</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fin.close();&nbsp;<BR></SPAN><SPAN style="COLOR: #008080">24</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR></SPAN><SPAN style="COLOR: #008080">25</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pstmt.setBlob(</SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">,blob);&nbsp;<BR></SPAN><SPAN style="COLOR: #008080">26</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pstmt.setString(</SPAN><SPAN style="COLOR: #000000">2</SPAN><SPAN style="COLOR: #000000">,</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">fankai</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);&nbsp;<BR></SPAN><SPAN style="COLOR: #008080">27</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR></SPAN><SPAN style="COLOR: #008080">28</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pstmt.executeUpdate();&nbsp;<BR></SPAN><SPAN style="COLOR: #008080">29</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pstmt.close();&nbsp;<BR></SPAN><SPAN style="COLOR: #008080">30</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR></SPAN><SPAN style="COLOR: #008080">31</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;conn.commit();&nbsp;<BR></SPAN><SPAN style="COLOR: #008080">32</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;conn.close();&nbsp;</SPAN></DIV>浏览数据库的数据，发现image项中数据大小与图片大小一致，说明入库了！<BR>&nbsp;3，blob出库<BR>
<DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><SPAN style="COLOR: #008080">&nbsp;1</SPAN><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp; <SPAN style="COLOR: #000000">DriverManager.registerDriver(</SPAN><SPAN style="COLOR: #0000ff">new</SPAN><SPAN style="COLOR: #000000">&nbsp;oracle.jdbc.driver.OracleDriver());<BR></SPAN><SPAN style="COLOR: #008080">&nbsp;2</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;Connection&nbsp;conn&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;DriverManager.getConnection(&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">jdbc:oracle:thin:@localhost:1521:beyondduke</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">,&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">duke</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">,</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">duke</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; conn.setAutoCommit(</SPAN><SPAN style="COLOR: #0000ff">false</SPAN><SPAN style="COLOR: #000000">);<BR></SPAN><SPAN style="COLOR: #008080">&nbsp;3</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;Statement&nbsp;stmt&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;conn.createStatement();<BR></SPAN><SPAN style="COLOR: #008080">&nbsp;4</SPAN><SPAN style="COLOR: #000000"><IMG id=Codehighlighter1_254_267_Open_Image onclick="this.style.display='none'; Codehighlighter1_254_267_Open_Text.style.display='none'; Codehighlighter1_254_267_Closed_Image.style.display='inline'; Codehighlighter1_254_267_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align=top><IMG id=Codehighlighter1_254_267_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_254_267_Closed_Text.style.display='none'; Codehighlighter1_254_267_Open_Image.style.display='inline'; Codehighlighter1_254_267_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align=top></SPAN><SPAN id=Codehighlighter1_254_267_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/**/</SPAN><SPAN id=Codehighlighter1_254_267_Open_Text><SPAN style="COLOR: #008000">/*</SPAN><SPAN style="COLOR: #008000">&nbsp;查询BLOB对象&nbsp;</SPAN><SPAN style="COLOR: #008000">*/</SPAN></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080">&nbsp;5</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp; ResultSet&nbsp;rs&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;stmt.executeQuery(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">SELECT&nbsp;content&nbsp;FROM&nbsp;javatest&nbsp;WHERE&nbsp;id='1001'</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);<BR></SPAN><SPAN style="COLOR: #008080">&nbsp;6</SPAN><SPAN style="COLOR: #000000"><IMG id=Codehighlighter1_369_765_Open_Image onclick="this.style.display='none'; Codehighlighter1_369_765_Open_Text.style.display='none'; Codehighlighter1_369_765_Closed_Image.style.display='inline'; Codehighlighter1_369_765_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align=top><IMG id=Codehighlighter1_369_765_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_369_765_Closed_Text.style.display='none'; Codehighlighter1_369_765_Open_Image.style.display='inline'; Codehighlighter1_369_765_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">while</SPAN><SPAN style="COLOR: #000000">&nbsp;(rs.next())&nbsp;</SPAN><SPAN id=Codehighlighter1_369_765_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_369_765_Open_Text><SPAN style="COLOR: #000000">{<BR></SPAN><SPAN style="COLOR: #008080">&nbsp;7</SPAN><SPAN style="COLOR: #000000"><IMG id=Codehighlighter1_371_385_Open_Image onclick="this.style.display='none'; Codehighlighter1_371_385_Open_Text.style.display='none'; Codehighlighter1_371_385_Closed_Image.style.display='inline'; Codehighlighter1_371_385_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_371_385_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_371_385_Closed_Text.style.display='none'; Codehighlighter1_371_385_Open_Image.style.display='inline'; Codehighlighter1_371_385_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top></SPAN><SPAN id=Codehighlighter1_371_385_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/**/</SPAN><SPAN id=Codehighlighter1_371_385_Open_Text><SPAN style="COLOR: #008000">/*</SPAN><SPAN style="COLOR: #008000">&nbsp;取出此BLOB对象&nbsp;</SPAN><SPAN style="COLOR: #008000">*/</SPAN></SPAN><SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<BR></SPAN><SPAN style="COLOR: #008080">&nbsp;8</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp; oracle.sql.BLOB&nbsp;blob&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;(oracle.sql.BLOB)&nbsp;rs.getBlob(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">image</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);<BR></SPAN><SPAN style="COLOR: #008080">&nbsp;9</SPAN><SPAN style="COLOR: #000000"><IMG id=Codehighlighter1_450_463_Open_Image onclick="this.style.display='none'; Codehighlighter1_450_463_Open_Text.style.display='none'; Codehighlighter1_450_463_Closed_Image.style.display='inline'; Codehighlighter1_450_463_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_450_463_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_450_463_Closed_Text.style.display='none'; Codehighlighter1_450_463_Open_Image.style.display='inline'; Codehighlighter1_450_463_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top></SPAN><SPAN style="COLOR: #000000">&nbsp;BufferedOutputStream&nbsp;out&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">new</SPAN><SPAN style="COLOR: #000000">&nbsp;BufferedOutputStream(</SPAN><SPAN style="COLOR: #0000ff">new</SPAN><SPAN style="COLOR: #000000">&nbsp;FileOutputStream(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">d://Sunset.jpg</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">));&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BufferedInputStream&nbsp;in&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">new</SPAN><SPAN style="COLOR: #000000">&nbsp;BufferedInputStream(blob&nbsp;&nbsp;&nbsp;&nbsp;.getBinaryStream());&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR></SPAN><SPAN style="COLOR: #008080">10</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">&nbsp;c;<BR></SPAN><SPAN style="COLOR: #008080">11</SPAN><SPAN style="COLOR: #000000"><IMG id=Codehighlighter1_677_698_Open_Image onclick="this.style.display='none'; Codehighlighter1_677_698_Open_Text.style.display='none'; Codehighlighter1_677_698_Closed_Image.style.display='inline'; Codehighlighter1_677_698_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_677_698_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_677_698_Closed_Text.style.display='none'; Codehighlighter1_677_698_Open_Image.style.display='inline'; Codehighlighter1_677_698_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">while</SPAN><SPAN style="COLOR: #000000">&nbsp;((c&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;in.read())&nbsp;</SPAN><SPAN style="COLOR: #000000">!=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">-</SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">)&nbsp;</SPAN><SPAN id=Codehighlighter1_677_698_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_677_698_Open_Text><SPAN style="COLOR: #000000">{&nbsp;out.write(c);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR></SPAN><SPAN style="COLOR: #008080">12</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp; }</SPAN></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080">13</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp; in.close();<BR></SPAN><SPAN style="COLOR: #008080">14</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp; out.close();<BR></SPAN><SPAN style="COLOR: #008080">15</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;rs.close();<BR></SPAN><SPAN style="COLOR: #008080">16</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp; stmt.close();<BR></SPAN><SPAN style="COLOR: #008080">17</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp; conn.close();<BR></SPAN><SPAN style="COLOR: #008080">18</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top></SPAN></DIV></SPAN>检查D盘根目录，会发现Sunset.jpg文件，跟C盘下是一样的，说明入库出库成功！<img src ="http://www.blogjava.net/beyondduke/aggbug/30542.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/beyondduke/" target="_blank">beyondduke</a> 2006-02-14 09:23 <a href="http://www.blogjava.net/beyondduke/archive/2006/02/14/30542.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java名人录（csdn摘）</title><link>http://www.blogjava.net/beyondduke/archive/2006/01/07/26974.html</link><dc:creator>beyondduke</dc:creator><author>beyondduke</author><pubDate>Sat, 07 Jan 2006 05:59:00 GMT</pubDate><guid>http://www.blogjava.net/beyondduke/archive/2006/01/07/26974.html</guid><wfw:comment>http://www.blogjava.net/beyondduke/comments/26974.html</wfw:comment><comments>http://www.blogjava.net/beyondduke/archive/2006/01/07/26974.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/beyondduke/comments/commentRss/26974.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/beyondduke/services/trackbacks/26974.html</trackback:ping><description><![CDATA[<TABLE style="FONT-SIZE: 10pt; BORDER-COLLAPSE: collapse" cellSpacing=0 cellPadding=0 width=721 border=1>
<TBODY>
<TR>
<TD><FONT size=3>Adrian Colyer</FONT></TD>
<TD><FONT size=3>AspectJ leader，AJDJ leader，IBM&nbsp;</FONT></TD>
<TD><FONT size=3>&nbsp;</FONT></TD></TR>
<TR>
<TD><FONT size=3>Ben Galbraith</FONT></TD>
<TD><FONT size=3>活跃人士</FONT></TD>
<TD><FONT size=3>&nbsp;</FONT></TD></TR>
<TR>
<TD><FONT size=3>Benjamin Renaud</FONT></TD>
<TD><FONT size=3>BEA副CTO</FONT></TD>
<TD><FONT size=3>&nbsp;</FONT></TD></TR>
<TR>
<TD><STRONG><FONT size=3>Bill Burke</FONT></STRONG></TD>
<TD><FONT size=3>JBoss 架构师，EJB 3.0专家组里的Jboss代表</FONT></TD>
<TD><FONT size=3>&nbsp;</FONT></TD></TR>
<TR>
<TD><FONT size=3>Bob McWhirter</FONT></TD>
<TD><FONT size=3>Groovy,Drools founder</FONT></TD>
<TD><FONT size=3>&nbsp;</FONT></TD></TR>
<TR>
<TD x:str="Cliff Schmidt "><STRONG><FONT size=3>Cedric Beust</FONT></STRONG></TD>
<TD><FONT size=3>Weblogic架构师,BEA</FONT></TD>
<TD><FONT size=3>&nbsp;</FONT></TD></TR>
<TR>
<TD x:str="Cliff Schmidt "><A href="http://blog.itpub.net/post/1476/33503"><FONT size=3>Cameron Purpy</FONT></A></TD>
<TD><FONT size=3>&nbsp;JCache Lead，Tangosol公司CEO</FONT></TD>
<TD><A href="http://www.jroller.com/page/cpurdy"><FONT size=3>blog</FONT></A></TD></TR>
<TR>
<TD x:str="Cliff Schmidt "><FONT size=3>Cliff Schmidt&nbsp;</FONT></TD>
<TD><FONT size=3>BEA's Open source strategist and Apache Beehive leader</FONT></TD>
<TD><FONT size=3>&nbsp;</FONT></TD></TR>
<TR>
<TD><STRONG><FONT size=3>Craig McClanahan</FONT></STRONG></TD>
<TD><FONT size=3>Struts founder, JSF 1.0 spec lead, Java Studio Creator leader，《Struts in action作者》, SUN</FONT></TD>
<TD><FONT size=3>&nbsp;</FONT></TD></TR>
<TR>
<TD x:str="Dion Almaer "><FONT size=3>David Nuescheler</FONT></TD>
<TD><FONT size=3>JSR 170, Content Repository for Java spec lead</FONT></TD>
<TD><FONT size=3>&nbsp;</FONT></TD></TR>
<TR>
<TD x:str="Dion Almaer "><FONT size=3><STRONG>Dion Almaer</STRONG>&nbsp;</FONT></TD>
<TD><FONT size=3>TSS主编, JDO专家组成员</FONT></TD>
<TD><FONT color=#0000cc size=3><A href="http://www.almaer.com/blog/">blog</A></FONT><FONT size=3> </FONT></TD></TR>
<TR>
<TD><FONT size=3>Doug Cutting</FONT></TD>
<TD><FONT size=3>Lucene founder</FONT></TD>
<TD><FONT size=3></FONT></TD></TR>
<TR>
<TD><FONT size=3>Ed Roman</FONT></TD>
<TD><FONT size=3>TSS CEO, MiddleWare CEO，《Mastering EJB》作者</FONT></TD>
<TD><FONT size=3>&nbsp;</FONT></TD></TR>
<TR>
<TD><STRONG><FONT size=3>Erich Gamma</FONT></STRONG></TD>
<TD><FONT size=3>设计模式开创者，Eclipse 的总设计师， Junit founder，IBM</FONT></TD>
<TD><FONT size=3>&nbsp;</FONT></TD></TR>
<TR>
<TD><FONT size=3>Edward Burns</FONT></TD>
<TD><FONT size=3>JSF 1.2 spec leader</FONT></TD>
<TD><FONT size=3>&nbsp;</FONT></TD></TR>
<TR>
<TD><FONT size=3>Floyd Marinescu</FONT></TD>
<TD><FONT size=3>TSS General Manager，《EJB Design Patterns》作者</FONT></TD>
<TD><FONT size=3>&nbsp;</FONT></TD></TR>
<TR>
<TD><STRONG><A href="http://blog.itpub.net/post/1476/33960"><FONT size=3>Gavin King</FONT></A></STRONG></TD>
<TD><FONT size=3>Hibernate founder,《Hibernate in Action》作者，Jboss</FONT></TD>
<TD><FONT size=3></FONT></TD></TR>
<TR>
<TD x:str="Gregor Hohpe "><FONT size=3>Gregor Hohpe&nbsp;</FONT></TD>
<TD><FONT size=3>《Enterprise Integration Patterns》作者，ThoughtWorks</FONT></TD>
<TD><FONT size=3>&nbsp;</FONT></TD></TR>
<TR>
<TD><FONT size=3>Gregor Kiczales</FONT></TD>
<TD><FONT size=3>AOP之父,AspectJ founder</FONT></TD>
<TD><FONT size=3>&nbsp;</FONT></TD></TR>
<TR>
<TD><STRONG><FONT size=3>Graham Hamilton</FONT></STRONG></TD>
<TD><FONT size=3>Sun副总裁，J2SE1.3,1.4,5.0 leader</FONT></TD>
<TD><FONT size=3>&nbsp;</FONT></TD></TR>
<TR>
<TD><STRONG><A href="http://blog.itpub.net/post/1476/33620"><FONT size=3>Hani Suleiman</FONT></A></STRONG></TD>
<TD><FONT size=3>OSWorkflow开发者，BileBlog作者</FONT></TD>
<TD><A href="http://www.jroller.com/page/fate"><FONT size=3>blog</FONT></A></TD></TR>
<TR>
<TD><STRONG><FONT size=3>Howard Lewis Ship</FONT></STRONG></TD>
<TD><FONT size=3>Tapestry和Hivemind founder，《Tapestry in Action 》作者</FONT></TD>
<TD><FONT size=3></FONT></TD></TR>
<TR>
<TD><STRONG><FONT size=3>James Duncan Davidson</FONT></STRONG></TD>
<TD><FONT size=3>Ant and Tomcat founder</FONT></TD>
<TD><FONT size=3></FONT></TD></TR>
<TR>
<TD><FONT size=3>James Strachan</FONT></TD>
<TD><FONT size=3>Geronimo的发起者之一, Jakarta项目管理委员会成员,N多JSR expert group的成员</FONT></TD>
<TD><FONT size=3>&nbsp;</FONT></TD></TR>
<TR>
<TD x:str="Jason Careria "><FONT size=3><STRONG>Jason Careria</STRONG>&nbsp;</FONT></TD>
<TD x:str="Webwork2，Xwork core developer  &#13;&#10;&#13;&#10;"><FONT size=3>Webwork2，Xwork core developer&nbsp;&nbsp;</FONT></TD>
<TD><A href="http://www.jroller.com/page/jcarreira"><FONT size=3>blog</FONT></A></TD></TR>
<TR>
<TD><STRONG><FONT size=3>Jason Hunter</FONT></STRONG></TD>
<TD><FONT size=3>Apache基金会管理员，《Java Servlet Programming》作者,Xquery,Jdom等的开发者</FONT></TD>
<TD><FONT size=3>&nbsp;</FONT></TD></TR>
<TR>
<TD><FONT size=3>John Crupi</FONT></TD>
<TD><FONT size=3>目前专著于SOA, Sun</FONT></TD>
<TD><FONT size=3>&nbsp;</FONT></TD></TR>
<TR>
<TD x:str="Jonathan Bruce "><FONT size=3>Jonathan Bruce&nbsp;</FONT></TD>
<TD><FONT size=3>JDBC spec leader,Sun</FONT></TD>
<TD><FONT size=3>&nbsp;</FONT></TD></TR>
<TR>
<TD><STRONG><FONT size=3>Joshua Bloch</FONT></STRONG></TD>
<TD><FONT size=3>《Effective Java》作者，前java平台核心开发者，目前在google。</FONT></TD>
<TD><FONT size=3>&nbsp;</FONT></TD></TR>
<TR>
<TD><FONT size=3>Jon Tirsen</FONT></TD>
<TD x:str="Nanning lead developer, &#13;&#10;&#13;&#10;PicoContainer和NanoContainer活跃开者,ThoughtWorks "><FONT size=3>Nanning lead developer, PicoContainer和NanoContainer活跃开 者,ThoughtWorks&nbsp;</FONT></TD>
<TD><FONT size=3>&nbsp;</FONT></TD></TR>
<TR>
<TD><FONT size=3>Juergen Hoeler</FONT></TD>
<TD><FONT size=3>SpringFramework core developer,Co-Author Of《J2EE Development without EJB》</FONT></TD>
<TD><FONT size=3>&nbsp;</FONT></TD></TR>
<TR>
<TD><STRONG><FONT size=3>Kent Beck</FONT></STRONG></TD>
<TD><FONT size=3>设计模式的开创者之一。XP 和 TDD 的创始人，xUnit 的开发者。</FONT></TD>
<TD><FONT size=3>&nbsp;</FONT></TD></TR>
<TR>
<TD><FONT size=3>Linda DeMichiel&nbsp;</FONT></TD>
<TD><FONT size=3>EJB 3.0 spec lead，Sun</FONT></TD>
<TD><FONT size=3>&nbsp;</FONT></TD></TR>
<TR>
<TD><STRONG><FONT size=3>Marc Fleury</FONT></STRONG></TD>
<TD><FONT size=3>JBoss Group CEO</FONT></TD>
<TD><FONT size=3>&nbsp;</FONT></TD></TR>
<TR>
<TD x:str="Mark Hapner "><FONT size=3>Mark Hapner&nbsp;</FONT></TD>
<TD><FONT size=3>J2EE1.4 lead. Sun Chief WebService Strategist and&nbsp; JMS spec lead </FONT></TD>
<TD><FONT size=3>&nbsp;</FONT></TD></TR>
<TR>
<TD><STRONG><FONT size=3>Martin Fowler</FONT></STRONG></TD>
<TD><FONT size=3>软件工程和建模领域的大师,Thoughtworks CEO</FONT></TD>
<TD><A href="http://www.martinfowler.com/bliki/"><FONT size=3>blog</FONT></A></TD></TR>
<TR>
<TD><FONT size=3>Matt Raible</FONT></TD>
<TD><FONT size=3>《Spring live》作者</FONT></TD>
<TD><A href="http://www.jroller.com/page/raible"><FONT size=3>blog</FONT></A></TD></TR>
<TR>
<TD x:str="Pat Lightbody "><STRONG><A href="http://blog.itpub.net/post/1476/33769"><FONT size=3>Mike Cannon-Brookes</FONT></A></STRONG><FONT size=3> <BR></FONT></TD>
<TD><FONT size=3>OpenSymphony founder,Atlassian founder(JIRA的公司),<BR>&lt;Java Open Source programing&gt;作者,javablogs founder</FONT></TD>
<TD><FONT size=3>&nbsp;</FONT></TD></TR>
<TR>
<TD x:str="Pat Lightbody "><FONT size=3>Pat Lightbody&nbsp;</FONT></TD>
<TD><FONT size=3>Webwork founder</FONT></TD>
<TD><FONT size=3>&nbsp;</FONT></TD></TR>
<TR>
<TD><FONT size=3>Patrick Linskey <BR></FONT></TD>
<TD><FONT size=3>JDO活跃人士，JDO2.0,EJB3.0专家组成员</FONT></TD>
<TD><FONT size=3>&nbsp;</FONT></TD></TR>
<TR>
<TD><FONT size=3>Rick Ross</FONT></TD>
<TD><FONT size=3>Javalobby founder</FONT></TD>
<TD><FONT size=3>&nbsp;</FONT></TD></TR>
<TR>
<TD><STRONG><FONT size=3>Rickard Oberg</FONT></STRONG></TD>
<TD><FONT size=3>Xdoclet,Webwork founder, jboss的前架构师，目前主要研究AOP</FONT></TD>
<TD><FONT size=3>&nbsp;</FONT></TD></TR>
<TR>
<TD><FONT size=3>Robin Roos </FONT></TD>
<TD x:str="SpringFramework "><FONT size=3>JDO2.0活跃人士，《Java Data Object》作者</FONT></TD>
<TD><FONT size=3>&nbsp;</FONT></TD></TR>
<TR>
<TD><STRONG><A href="http://blog.itpub.net/post/1476/33422"><FONT size=3>Rod Johnson</FONT></A></STRONG></TD>
<TD x:str="SpringFramework "><FONT size=3>SpringFramework&nbsp;</FONT></TD>
<TD><FONT size=3>&nbsp;</FONT></TD></TR>
<TR>
<TD><FONT size=3>Scott Ambler</FONT></TD>
<TD><FONT size=3>Senior Consultant， 很多书的作者</FONT></TD>
<TD><FONT size=3>&nbsp;</FONT></TD></TR>
<TR>
<TD><STRONG><FONT size=3>Sergey Dmitriev</FONT></STRONG></TD>
<TD><FONT size=3>Jetbrains CEO，Intelij IDEA founder</FONT></TD>
<TD><FONT size=3>&nbsp;</FONT></TD></TR>
<TR>
<TD><STRONG><A href="http://blog.itpub.net/post/1476/33427"><FONT size=3>Ted Neward</FONT></A></STRONG></TD>
<TD><FONT size=3>《Effective Enterprise Java》作者</FONT></TD>
<TD><A href="http://neward.net/ted/weblog/index.jsp"><FONT size=3>blog</FONT></A></TD></TR>
<TR>
<TD><FONT size=3>Vincent Massol</FONT></TD>
<TD><FONT size=3>Jakarta Cactus founder，Maven开发组成员, 《Junit in action》作者</FONT></TD></TR></TBODY></TABLE><BR>
<SCRIPT type=text/javascript><!--
google_ad_client = "pub-1898422187969981";
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = "468x60_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "FFFFFF";
google_color_bg = "FFFFFF";
google_color_link = "CC0033";
google_color_url = "000000";
google_color_text = "000000";
//--></SCRIPT>

<SCRIPT src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type=text/javascript>
</SCRIPT><img src ="http://www.blogjava.net/beyondduke/aggbug/26974.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/beyondduke/" target="_blank">beyondduke</a> 2006-01-07 13:59 <a href="http://www.blogjava.net/beyondduke/archive/2006/01/07/26974.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>TheServerSide.com's 4th annual Java Symposium --Session Descriptions </title><link>http://www.blogjava.net/beyondduke/archive/2005/12/24/25287.html</link><dc:creator>beyondduke</dc:creator><author>beyondduke</author><pubDate>Sat, 24 Dec 2005 02:55:00 GMT</pubDate><guid>http://www.blogjava.net/beyondduke/archive/2005/12/24/25287.html</guid><wfw:comment>http://www.blogjava.net/beyondduke/comments/25287.html</wfw:comment><comments>http://www.blogjava.net/beyondduke/archive/2005/12/24/25287.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/beyondduke/comments/commentRss/25287.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/beyondduke/services/trackbacks/25287.html</trackback:ping><description><![CDATA[<P class=pageheading><FONT size=2>Session Descriptions </FONT></P>
<DIV align=center>
<P align=left><A href="http://javasymposium.techtarget.com/html/det_descriptions.htm#MClarkDozen" lid="A Dozen Ways to Get the Testing Bug"><FONT size=2>A Dozen Ways to Get the Testing Bug</FONT></A><FONT size=2> ¦ </FONT><A href="http://javasymposium.techtarget.com/html/det_descriptions.htm#AmblerXP" lid="Advanced Agile Technologies: Beyond XP"><FONT size=2>Advanced Agile Technologies: Beyond XP</FONT></A><FONT size=2> ¦ </FONT><A href="http://javasymposium.techtarget.com/html/det_descriptions.htm#HornickMining" lid="Advanced Analytic Applications with Java Data Mining"><FONT size=2>Advanced Analytic Applications with Java Data Mining</FONT></A><FONT size=2> ¦ </FONT><A href="http://javasymposium.techtarget.com/html/det_descriptions.htm#BeustTesting" lid="Advanced Testing Techniques with TestNG"><FONT size=2>Advanced Testing Techniques with TestNG</FONT></A><FONT size=2> ¦ </FONT><A href="http://javasymposium.techtarget.com/html/det_descriptions.htm#ColyerAOP" lid="AOP in the Enterprise"><FONT size=2>AOP in the Enterprise</FONT></A><FONT size=2> ¦ </FONT><A href="http://javasymposium.techtarget.com/html/det_descriptions.htm#JGenenderApache" lid="Apache Geronimo Prime-time"><SPAN class=bodytext><FONT size=2>Apache Geronimo Prime-time</FONT></SPAN></A><SPAN class=bodytext><FONT size=2> ¦ </FONT></SPAN><A href="http://javasymposium.techtarget.com/html/det_descriptions.htm#BTateBeyond" lid="Beyond Java: Technologies to Watch"><FONT size=2>Beyond Java: Technologies to Watch</FONT></A><FONT size=2> ¦ </FONT><A href="http://javasymposium.techtarget.com/html/det_descriptions.htm#CBeginAgile" lid='"Bottom 10" Reasons Agile Teams Fail'><FONT size=2>"Bottom 10" Reasons Agile Teams Fail</FONT></A><FONT size=2> ¦ </FONT><A href="http://javasymposium.techtarget.com/html/det_descriptions.htm#StepkaID" lid="Building Identity Management Solutions"><FONT size=2>Building Identity Management Solutions</FONT></A><FONT size=2> ¦ </FONT><A href="http://javasymposium.techtarget.com/html/det_descriptions.htm#GehtlandAlmaerAjax" lid="Building Quality Applications with Ajax"><FONT size=2>Building Quality Applications with Ajax</FONT></A><FONT size=2> ¦ </FONT><A href="http://javasymposium.techtarget.com/html/det_descriptions.htm#GehtlandAlmaerAjaxF" lid="Building Quality Applications with Ajax Frameworks"><FONT size=2>Building Quality Applications with Ajax Frameworks</FONT></A><FONT size=2> ¦ </FONT><A href="http://javasymposium.techtarget.com/html/det_descriptions.htm#PurdyCaching" lid="Distributed Caching: Essential Lessons"><FONT size=2>Distributed Caching: Essential Lessons</FONT></A><FONT size=2> ¦ </FONT><A href="http://javasymposium.techtarget.com/html/det_descriptions.htm#GBevinRife" lid="Dive into RIFE"><FONT size=2>Dive into RIFE</FONT></A><FONT size=2> ¦ </FONT><A href="http://javasymposium.techtarget.com/html/det_descriptions.htm#DClarkeEJB" lid="Essential EJB 3.0 Persistence"><FONT size=2>Essential EJB 3.0 Persistence</FONT></A><FONT size=2> ¦ </FONT><A href="http://javasymposium.techtarget.com/html/det_descriptions.htm#JHunterExtreme" lid="Extreme Web Caching"><FONT size=2>Extreme Web Caching</FONT></A><FONT size=2> ¦ </FONT><A class=bodytext href="http://javasymposium.techtarget.com/html/det_descriptions.htm#FCohenFast" lid="FastSOA: Applying Native XML Database Technology To Improve SOA Performance"><FONT size=2>FastSOA: <SPAN class=bodytext>Applying Native XML Database Technology To Improve SOA Performance</SPAN></FONT></A><FONT size=2> ¦ </FONT><A href="http://javasymposium.techtarget.com/html/det_descriptions.htm#GBevinFlow" lid="Flow with Continuations"><FONT size=2>Flow with Continuations</FONT></A><FONT size=2> ¦ </FONT><A href="http://javasymposium.techtarget.com/html/det_descriptions.htm#HKabutzJava" lid="Java Specialists in Action"><FONT size=2>Java Specialists in Action</FONT></A><FONT size=2> ¦ </FONT><A href="http://javasymposium.techtarget.com/html/det_descriptions.htm#NeuschelerJCR" lid='JCR vs. RDBMS: Your App. is a "Content App.", 10 symptoms!'><FONT size=2>JCR vs. RDBMS: Your App. is a "Content App.", 10 symptoms!</FONT></A><FONT size=2> ¦ </FONT><A href="http://javasymposium.techtarget.com/html/det_descriptions.htm#ECiuranaMobile" lid="The Mobile Java Application Continuum"><FONT size=2>The Mobile Java Application Continuum</FONT></A><FONT size=2> ¦ </FONT><A href="http://javasymposium.techtarget.com/html/det_descriptions.htm#GHohpePatterns" lid="Patterns in Service-Oriented Architectures"><FONT size=2>Patterns in Service-Oriented Architectures</FONT></A><FONT size=2> ¦ </FONT><A href="http://javasymposium.techtarget.com/html/det_descriptions.htm#StrachanOSSOA" lid="Open Source SOA using POJOs"><FONT size=2>Open Source SOA using POJOs</FONT></A><FONT size=2> ¦</FONT><A href="http://javasymposium.techtarget.com/html/det_descriptions.htm#Suleiman" lid="OSWorkflow"><FONT size=2> OSWorkflow</FONT></A><FONT size=2> ¦ </FONT><A href="http://javasymposium.techtarget.com/html/det_descriptions.htm#CBeginiBATIS" lid="Persistence with iBATIS - Hands On"><FONT size=2>Persistence with iBATIS - Hands On</FONT></A><FONT size=2> ¦ </FONT><A href="http://javasymposium.techtarget.com/html/det_descriptions.htm#KMannJSF" lid="Portlet Development with JSF"><FONT size=2>Portlet Development with JSF</FONT></A><FONT size=2> ¦ </FONT><A href="http://javasymposium.techtarget.com/html/det_descriptions.htm#KabutzProductive" lid="Productive Coder"><FONT size=2>Productive Coder</FONT></A><FONT size=2> ¦ </FONT><A href="http://javasymposium.techtarget.com/html/det_descriptions.htm#NelsonRAD" lid="RAD That Ain't Bad: Domain Driven Development with Trails"><FONT size=2>RAD That Ain't Bad: Domain Driven Development with Trails</FONT></A><FONT size=2> ¦ </FONT><A href="http://javasymposium.techtarget.com/html/det_descriptions.htm#AmblerDatabases" lid="Refactoring Databases: Evolutionary Database Design"><FONT size=2>Refactoring Databases: Evolutionary Database Design</FONT></A><FONT size=2> ¦ </FONT><A href="http://javasymposium.techtarget.com/html/det_descriptions.htm#McClanahanShale" lid="Shale: The Next Struts?"><FONT size=2>Shale: The Next Struts?</FONT></A><FONT size=2> ¦ </FONT><A href="http://javasymposium.techtarget.com/html/det_descriptions.htm#GHohpeSoftware" lid="Software Visualization and Model Generation"><FONT size=2>Software Visualization and Model Generation</FONT></A><FONT size=2> ¦ </FONT><A href="http://javasymposium.techtarget.com/html/det_descriptions.htm#McClanahanWeb" lid="State of Web Frameworks"><FONT size=2>State of Web Frameworks</FONT></A><FONT size=2> ¦ </FONT><A href="http://javasymposium.techtarget.com/html/det_descriptions.htm#SnyderService" lid="Using Java Business Integration to Enable Composite Applications with ServiceMix"><FONT size=2>Using Java Business Integration to Enable Composite Applications with ServiceMix</FONT></A><FONT size=2> ¦ </FONT><A href="http://javasymposium.techtarget.com/html/det_descriptions.htm#JHunterXQuery" lid="XQuery for the Java Geek"><FONT size=2>XQuery for the Java Geek</FONT></A><FONT size=2> ¦ </FONT><A href="http://javasymposium.techtarget.com/html/det_descriptions.htm#FCohenXML" lid="XML, Schemas and Performance"><FONT size=2>XML, Schemas and Performance</FONT></A><FONT size=2> ¦ <SPAN class=caagtext><A href="http://javasymposium.techtarget.com/html/det_descriptions.htm#TerracottaBOF" lid="The Importance of Preserving Object Identity while Clustering">The Importance of Preserving Object Identity while Clustering</A></SPAN></FONT></P>
<P align=left><BR><BR><SPAN class=subheadingdark><A name=MClarkDozen></A><FONT size=2>A Dozen Ways to Get the Testing Bug</FONT></SPAN><FONT size=2> <BR><SPAN class=bodytextbold><A href="http://javasymposium.techtarget.com/html/det_speakers.htm#MClark" lid="Mike Clark">Mike Clark </A></SPAN></FONT></P></DIV>
<P><FONT size=2>You've heard everyone praising the benefits of test-driven development, and you'd really like to try it yourself, but how do you get started on a real project? This talk gives you 12 practical ways to start writing tests, and keep writing them, regardless of your project's technology or development process. You'll be able to immediately apply these no-nonsense techniques toward improving your design and testing skills. In no time you'll be writing better software, and faster! </FONT></P>
<P><BR><A id=AmblerXP name=AmblerXP></A><FONT size=2><SPAN class=subheadingdark>Advanced Agile Techniques: Beyond XP </SPAN><BR><SPAN class=bodytextbold><A href="http://javasymposium.techtarget.com/html/det_speakers.htm#SAmbler" lid="Scott Ambler">Scott Ambler</A></SPAN></FONT></P>
<P><FONT size=2>Many development teams have adopted some, if not all, of the techniques of Extreme Programming (XP). There is far more to agile software development, however, than XP. In this presentation you'll learn advanced techniques such as initial architectural modeling, database refactoring, model storming, and agile documentation practices (yes, you still have to write documentation). </FONT></P>
<P><BR><A id=HornickMining name=HornickMining></A><FONT size=2><SPAN class=subheadingdark>Advanced Analytic Applications with Java Data Mining </SPAN><BR><SPAN class=bodytextbold><A href="http://javasymposium.techtarget.com/html/det_speakers.htm#Hornick" lid="Mark Hornick">Mark Hornick </A></SPAN></FONT></P>
<P><FONT size=2>Building applications without advanced analytics is becoming a dangerous practice. Applications that merely collect and report data using queries or OLAP will soon give way to competitor applications that enlist the help of advanced analytics capabilities such as data mining. The Java Data Mining standard (JSR-73) enables building advanced analytic applications natively in Java. </FONT></P>
<P><FONT size=2>In this session, Mark highlights an application involving campaign management – selecting customers for a product promotion. Response modeling involves identifying which customers are likely to respond to the promotion. First, Mark explores a solution without the use of data mining, then illustrate how that same application can be augmented with data mining technology to improve the response rate as well as the profitability of the campaign. Mark also provides an overview of JDM 1.0 (JSR-73) and the upcoming JDM 2.0 (JSR-247) standards and how these can be used to build such applications. </FONT></P>
<P><BR><A id=BeustTesting name=BeustTesting></A><FONT size=2><SPAN class=subheadingdark>Advanced Testing Techniques with TestNG</SPAN><BR><SPAN class=bodytextbold><A href="http://javasymposium.techtarget.com/html/det_speakers.htm#Beust" lid="Cedric Beust">Cedric Beust </A></SPAN></FONT></P>
<P><FONT size=2>TestNG is a recent testing framework built on annotations that offers advanced testing functionalities such as test groups, method parameters, dependent methods and time-outs.&nbsp; This presentation will offer a short introduction to TestNG and then will discuss some testing scenarios typically encountered by programmers in various software areas and how TestNG can help create elegant and simple testing designs.</FONT></P>
<P class=pageheading><SPAN class=subheadingdark><BR><A id=ColyerAOP name=ColyerAOP></A><FONT size=2>AOP in the Enterprise </FONT></SPAN><BR><SPAN class=bodytextbold><A href="http://javasymposium.techtarget.com/html/det_speakers.htm#Colyer/" lid="Adrian Colyer"><FONT size=2>Adrian Colyer </FONT></A></SPAN></P>
<P><FONT size=2>In this session Adrian will describe how and why you should be using AOP within your enterprise applications. You will gain a deeper understanding of the goals of AOP, and the different ways that AOP frameworks realize those goals. Spring AOP and AspectJ 5 will then be introduced, and their complementary roles within enterprise applications explained. Recommendations and a roadmap for getting started with these technologies will be presented (with examples and demos) so that you can begin applying what you learn during the talk straight away.</FONT></P>
<P><BR><SPAN class=pageheading><SPAN class=subheadingdark><A id=JGenenderApache name=JGenenderApache></A></SPAN></SPAN><FONT size=2><SPAN class=subheadingdark>Apache Geronimo Prime-time<BR></SPAN><SPAN class=bodytextbold><A href="http://javasymposium.techtarget.com/html/det_speakers.htm#Genender" lid="Jeff Genender">Jeff Genender</A></SPAN> </FONT></P>
<P><FONT size=2>Apache Geronimo is the latest open source application server to achieve J2EE 1.4 certification, making it ready for prime time in the Enterprise. It is now a real contender in the open source application server market and offers a unique architecture making different open-source projects pluggable and capable of building customized stacks. This session will present an overview of Apache Geronimo, its architecture, its major open source components, how it works, and how to configure and use the application server. This session will cover Geronimo's different concepts such as the kernel, GBeans, deployment and different configurations, and running the application server. </FONT></P>
<P><BR><BR><A name=BTateBeyond></A><FONT size=2><SPAN class=subheadingdark>Beyond Java: Technologies to Watch</SPAN><BR><SPAN class=bodytextbold><A href="http://javasymposium.techtarget.com/html/det_speakers.htm#BTate" lid="Bruce Tate">Bruce Tate </A></SPAN></FONT></P>
<P><FONT size=2>Recently, we've seen a flurry of innovation happen in dynamic languages. From the Ruby on Rails framework to continuation servers to Erlang, a language based on concurrency, we've seen incredible innovation over the last two years. Many of these ideas are just now showing up on the Java platform in frameworks like Rife, Seam and Spring Web Flow.<BR></FONT></P>
<P><A id=CBeginAgile name=CBeginAgile></A><FONT size=2><SPAN class=subheadingdark><STRONG>"Bottom 10" Reasons Agile Teams Fail</STRONG></SPAN><BR><SPAN class=bodytextbold><A href="http://javasymposium.techtarget.com/html/det_speakers.htm#CBegin" lid="Clinton Begin">Clinton Begin</A></SPAN></FONT></P>
<P><FONT size=2>Agile methodologies such as eXtreme Programming and SCRUM are hot topics today -- and they are also hot targets.&nbsp; When things go wrong on an agile project, it's far too convenient to blame the methodology.&nbsp; Consequently it's often the case that the methodology is blamed, instead of the people charged with implementing it correctly.&nbsp; In this talk Clinton will discuss the most common reasons a team may fail when trying to execute a project using an agile methodology.&nbsp; He'll cover how to learn from the mistakes of others, and avoid repeating new mistakes of your own.<BR></FONT></P>
<P><SPAN class=subheadingdark><A name=StepkaID></A><FONT size=2>Building Identity Management Solutions </FONT></SPAN><BR><SPAN class=bodytextbold><A href="http://javasymposium.techtarget.com/html/det_speakers.htm#JStepka" lid="Justen Stepka"><FONT size=2>Justen Stepka</FONT></A></SPAN><FONT size=2> </FONT></P>
<P><FONT size=2>Application developers are with what seems to be an unlimited number of approaches to integrating identity management and single sign-on(SSO).<BR><BR>This presentation will focus on the existing solutions that are available, commerical and open-source and examples from each to help you understand what solution might best work for you. Best practices and lessons learned from popular approaches will be covered too. <BR></FONT></P>
<P><SPAN class=subheadingdark><A id=GehtlandAlmaerAjax name=GehtlandAlmaerAjax></A><FONT size=2>Building Quality Applications with Ajax </FONT></SPAN><BR><SPAN class=bodytextbold><A href="http://javasymposium.techtarget.com/html/det_speakers.htm#Almaer" lid="Dion Almaer"><FONT size=2>Dion Almaer</FONT></A><FONT size=2> &amp; </FONT><A href="http://javasymposium.techtarget.com/html/det_speakers.htm#JGehtland" lid="Justin Gehtland"><FONT size=2>Justin Gehtland</FONT></A><FONT size=2> </FONT></SPAN></P>
<P><FONT size=2>Ajax has revolutionized Web application development in the short year since the term was coined. What is it all about? Why are we excited about a set of capabilities that have been sitting in our browser for years? What can you do with it? And, how can you do it? </FONT></P>
<P><FONT size=2>Ajax , short for Asynchronous JavaScript and XML, is a technique for communicating with servers from within a web page without causing a page refresh. </FONT></P>
<P><FONT size=2>This session provides: </FONT></P>
<UL>
<LI><FONT size=2>An introduction to Ajax and an orientation to the state of the ajaxian universe </FONT>
<LI><FONT size=2>A demonstration of the basic ajaxian techniques through live coding. More advanced examples of Ajax will be demonstrated and deconstructed </FONT></LI></UL>
<P><FONT size=2>You will understand:</FONT></P>
<UL>
<LI><FONT size=2>How the Google Maps UI is built (and why it isn't as hard as it looks) </FONT>
<LI><FONT size=2>How Ajax can improve portals, community sites, and pretty much any other type of web application. </FONT></LI></UL>
<P><FONT size=2>Furthermore, the issues surrounding how to create an Ajax application that doesn't turn into an unmaintainable pile of hacked up crap JavaScript will be discussed. </FONT></P>
<P><FONT size=2>This talk will be presented by the founders of Ajaxian.com, a popular Ajax-related web portal. </FONT></P>
<P><BR><SPAN class=subheadingdark><A id=GehtlandAlmaerAjaxF name=GehtlandAlmaerAjaxF></A><FONT size=2>Building Quality Applications with Ajax Frameworks</FONT></SPAN><BR><SPAN class=bodytextbold><A href="http://javasymposium.techtarget.com/html/det_speakers.htm#Almaer" lid="Dion Almaer"><FONT size=2>Dion Almaer</FONT></A><FONT size=2> &amp; </FONT><A href="http://javasymposium.techtarget.com/html/det_speakers.htm#JGehtland" lid="Justin Gehtland"><FONT size=2>Justin Gehtland</FONT></A><FONT size=2> </FONT></SPAN></P>
<P><FONT size=2>Ajax techniques can lend tremendous richness to your Web UIs. But Ajax can be tedious and difficult to implement from scratch. Fortunately, there are a number of powerful frameworks that can make it much easier to do Ajax, including some that integrate with Java-based Web frameworks. </FONT></P>
<P><FONT size=2>This session demonstrates (through live coding): </FONT></P>
<UL>
<LI><FONT size=2>The popular Prototype, Dojo, MochiKit, DWR and Scriptaculous frameworks, each of which offers unique abilities to enhance your applications. These frameworks can be used with any server-side framework </FONT>
<LI><FONT size=2>Their use with Struts and JavaServer Faces applications </FONT></LI></UL>
<P><FONT size=2>This talk will also discuss the state of Ajax support for JavaServer Faces via third-party JSF components and JSF-specific frameworks. </FONT></P>
<P><FONT size=2>You will understand: </FONT></P>
<UL>
<LI><FONT size=2>How to easily add amazing Ajax effects to your Java-based Web application. </FONT></LI></UL>
<P><BR><SPAN class=subheadingdark><A name=GBevinRife></A><FONT size=2>Distributed Caching: Essential Lessons</FONT></SPAN><FONT size=2> <BR></FONT><A href="http://javasymposium.techtarget.com/html/det_speakers.htm#Purdy" lid="Cameron Purdy"><STRONG><FONT size=2>Cameron Purdy</FONT></STRONG></A><FONT size=2> </FONT></P>
<P><FONT size=2>This presentation covers application development considerations for achieving maximum scalable performance and reliability in clustered J2EE environments, improving scalability and scalable performance of applications through the use of clustered caching to reliably share live data among clustered JVMs in the application tier, providing transparent fail-over as a key element of uninterrupted operation, and reduced load on the database tier as a key element of scalability. </FONT></P>
<P><BR><SPAN class=subheadingdark><A name=GBevinRife></A><FONT size=2>Dive into RIFE </FONT></SPAN><BR><SPAN class=bodytextbold><A href="http://javasymposium.techtarget.com/html/det_speakers.htm#GBevin" lid="Geert Bevin"><FONT size=2>Geert Bevin</FONT></A><FONT size=2> </FONT></SPAN></P>
<P><FONT size=2>RIFE is a full-stack, open-source Java web application framework, offering fast results with the promise of maintainability and code clarity. This presentation gives you an exclusive insight into its goals and underlying ideas. Through some practical examples, the most important modules are introduced and you'll understand that it's very easy to quickly cover a great distance. <BR></FONT></P>
<P><SPAN class=subheadingdark><A id=DClarkeEJB name=DClarkeEJB></A><FONT size=2>Essential EJB 3.0 Persistence</FONT></SPAN><BR><SPAN class=bodytextbold><A href="http://javasymposium.techtarget.com/html/det_speakers.htm#DClarke" lid="Doug Clarke"><FONT size=2>Doug Clarke</FONT></A><FONT size=2> </FONT></SPAN></P>
<P><FONT size=2>A crash course introduction to EJB 3.0 Persistence of Java Enterprise Edition 5.0. The goal of this session is to demonstrate how to apply the EJB 3.0 Persistence functionality in enterprise application development. Attendees will leave with enough information to get them started building enterprise applications using this new standard. The material will be presented using live demos of application development, testing, and deployment. The persistence capabilities both within and outside of an EJB container will be highlighted. </FONT></P>
<P><FONT size=2>The open source reference implementation of the EJB 3.0 Persistence, TopLink Essentials, will be used in conjunction with the Eclipse Dali EJB ORM Project tools to build an end to end application illustrating common patterns and best practices. </FONT></P>
<P><BR><SPAN class=subheadingdark><A name=JHunterExtreme></A><FONT size=2>Extreme Web Caching </FONT></SPAN><BR><SPAN class=bodytextbold><A href="http://javasymposium.techtarget.com/html/det_speakers.htm#Hunter" lid="Jason Hunter"><FONT size=2>Jason Hunter </FONT></A></SPAN></P>
<P><FONT size=2>Web Caching is very important for high traffic, high performance web site but few people know all the professional-level strategies. In this talk I'll share some of the tricks of the trade, including advanced tips from Yahoo's Mike Radwin. </FONT></P>
<P><FONT size=2>We'll start with the basics: using client-side caches, conditional get, and proxies. Then we'll talk about more advanced features: how best to handle personalized content, setting up an image caching server, using a cookie-free domain for static content, and using randomization in URLs for accurate hit metering or sensitive content. </FONT></P>
<P><FONT size=2>Attendees should have experience or interest in how the web works and in cajoling the web into doing their bidding. </FONT></P>
<P><SPAN class=subheadingdark><BR><A id=FCohenFast name=FCohenFast></A><FONT size=2>FastSOA: Applying Native XML Database Technology To Improve SOA Performance<BR></FONT></SPAN><SPAN class=bodytextbold><A href="http://javasymposium.techtarget.com/html/Frank%20Cohen" lid="Frank Cohen"><FONT size=2>Frank Cohen</FONT></A></SPAN></P>
<P><FONT size=2>The choices Web Service architects and developers make on XML handling libraries, XML message encoding styles and binding utilities, and XML schema design and complexity, have a great impact on the scalability and performance of the deployed service. In this presentation, Frank Cohen will show the results of a recently completed research project that show the performance characteristics of three representative use case implementations on a variety of application servers, both commercial and open-source. Cohen will describe the developer learning curve and productivity story encountered when building the implementations with a wide variety of tools. Cohen will give attendees a kit of the software, a performance test, and developer guide book to use in your own environment.<BR></FONT></P>
<P><SPAN class=subheadingdark><A name=GBevinFlow></A><FONT size=2>Flow with Continuations</FONT></SPAN><BR><SPAN class=bodytextbold><A href="http://javasymposium.techtarget.com/html/det_techsessions.htm#GBevinFlow" lid="Geert Bevin"><FONT size=2>Geert Bevin </FONT></A></SPAN></P>
<P><FONT size=2>Get back in control of the natural flow of your application. </FONT></P>
<P><FONT size=2>Continuations leverage the expressiveness of Java for the creation of re-enterable execution points. This presentation explains what continuations are and why they are useful. The benefits quickly become apparent through side-by-side comparisons with traditional flow management. You'll get an overview of the different approaches of today's tools and will see that continuations are handy in many application domains. <BR></FONT></P>
<P><SPAN class=subheadingdark><STRONG><STRONG><A name=HKabutzJava></A></STRONG><FONT size=2>Java Specialists in Action</FONT></STRONG></SPAN><STRONG><BR><SPAN class=bodytextbold><A href="http://javasymposium.techtarget.com/html/det_speakers.htm#HKabutz" lid="Dr. Heinz Kabutz"><FONT size=2>Dr. Heinz Kabutz </FONT></A></SPAN></STRONG></P>
<P><FONT size=2>Java has some features that make it highly flexible to work with, like putty in the hands of a craftsman. Java specialists are not shy to use advanced features like dynamic proxies, generics, enums to their advantage. In this talk, we will demonstrate some approaches of using Java's dynamic proxies to create virtual proxies, protection proxies, dynamic object adapters and dynamic decorators. A part of the talk will also explore the performance implications and compare it with the benefits gained. P.S. If you are wondering why “enum” is listed under “advanced features” you should definitely attend this talk. </FONT></P>
<P><BR><SPAN class=subheadingdark><STRONG><STRONG><STRONG><A id=NeuschelerJCR name=NeuschelerJCR></A></STRONG></STRONG><FONT size=2>JCR vs. RDBMS: Your App. is a "Content App.", 10 symptoms! </FONT></STRONG></SPAN><STRONG><BR><FONT face=Arial size=2><SPAN class=footer><A class=bodytextbold href="http://javasymposium.techtarget.com/html/det_speakers.htm#Nuescheler" lid="David Nuescheler">David Nuescheler</A></SPAN></FONT></STRONG></P>
<P><FONT size=2>In many applications the typical short-comings of relational databases are covered up either by using database centric frameworks or even worse by using secondary storage. This shows in symptoms that we all know: Binaries go into a Filesystem, "unstructured" information is stored in XML, etc... <BR><BR>This session is geared to prove that a JCR compliant content repository is the ideal general purpose "Future Storage" for modern Applications that require commodity features like Versioning, Fulltext search, Hierarchy support, Ranking, Namespaces without sacrificing transactions, referencial integrity and scalability. </FONT></P>
<P><FONT size=2>Expect real-life examples and code-snippets. </FONT></P>
<P><SPAN class=subheadingdark><STRONG><STRONG><A id=ECiuranaMobile name=ECiuranaMobile></A><FONT size=2>The Mobile Java Application Continuum</FONT></STRONG><FONT size=2> </FONT></STRONG></SPAN><STRONG><BR><FONT face=Arial size=2><SPAN class=footer><A class=bodytextbold href="http://javasymposium.techtarget.com/html/det_speakers.htm#ECiurana" lid="Eugene Ciurana">Eugene Ciurana</A></SPAN></FONT></STRONG></P>
<P><FONT size=2>J Mobile Java has historically being confined to games and trivial applications for personal and mobile devices.&nbsp; Failure or reluctance on behalf of the manufacturers and carriers to implement a full range of services has prevented the wide adoption of the technology for robust applications.&nbsp; This presentation introduces an execution architecture for rich mobile Java applications and for interacting with e-commerce or enterprise systems.&nbsp; Robust mobile application design requires coordination with multiple tiers of resources and overcoming the limitations of J2ME/CLDC and the current crop of JSR implementations.&nbsp; This presentation will teach you how to design and implement a Java mobile application that operates in a seamless continuum from the handset device to your data warehouse and with third-party service providers.<BR></FONT></P>
<P class=subheadingdark><A id=JStrachanOSSOA name=JStrachanOSSOA></A><FONT size=2>Open Source SOA Using POJOs<BR></FONT><A class=bodytextbold href="http://javasymposium.techtarget.com/html/det_speakers.htm#JStrachan" lid="James Strachan"><FONT size=2>James Strachan</FONT></A><FONT size=2> </FONT></P>
<P><FONT size=2>This session will provide an overview of how folks should develop SOA applications so they can take advantage of various middleware technologies like JMS, RMI, WS, JBI, BPEL etc yet keep their code simple and POJO like and to deal with things like asynchronous messaging, ESBs and so forth showing examples using different Apache tools and frameworks. </FONT></P>
<P><SPAN class=subheadingdark><BR><A id=Suleiman name=Suleiman></A><FONT size=2>OSWorkflow</FONT></SPAN><BR><SPAN class=footer><A class=bodytextbold href="http://javasymposium.techtarget.com/html/det_speakers.htm#Suleiman" lid="Hani Suleiman"><FONT size=2>Hani Suleiman</FONT></A><FONT size=2> </FONT></SPAN></P>
<P><FONT size=2>OSWorkflow is a workflow engine from the OpenSymphony group. The talk will be an introduction of the osworkflow engine, a brief discussion of its architecture, as well as highlighting use cases and illustrating integration and usage patterns. <BR></FONT></P>
<P><SPAN class=subheadingdark><A name=GHohpePatterns></A><FONT size=2>Patterns in Service-Oriented Architectures </FONT></SPAN><BR><SPAN class=footer><A class=bodytextbold href="http://javasymposium.techtarget.com/html/det_speakers.htm#Hohpe" lid="Gregor Hohpe"><FONT size=2>Gregor Hohpe </FONT></A></SPAN></P>
<P><FONT size=2>If this was buzzword bingo I probably would be an instant winner with this session title. Nevertheless, patterns and service-oriented architectures do have very interesting and relevant intersection points. Both terms are fashionable, somewhat blurry and often abused. Both terms are also very much about architecture and design trade-offs – the softer side of software development. Despite all the hype, SOA brings alternative architecture styles and programming models into the mainstream. We now write software using process engines, asynchronous message flow, rules engines, transformations etc. Each style comes with a collection of patterns that should be recognized and documented so that we can build effective solutions and discuss design trade-offs outside of specific technology choices and implementations. <BR></FONT></P>
<P><BR><A id=CBeginiBATIS name=CBeginiBATIS></A><FONT size=2><SPAN class=subheadingdark><STRONG>Persistence with iBATIS - Hands On</STRONG></SPAN> <BR><SPAN class=bodytextbold><A href="http://javasymposium.techtarget.com/html/det_speakers.htm#CBegin" lid="Clinton Begin">Clinton Begin</A></SPAN></FONT></P>
<P><FONT size=2>A wise man once said: "PowerPoint is the worst thing ever to happen to public speaking." So, in this session, Clinton will use only a Java IDE and real-world examples to demonstrate how iBATIS is used to create an effective persistence layer for your application.&nbsp; He will risk life and limb (or at least his reputation) coding before an audience, to build the back end of a simple Java application using a Test Driven approach.&nbsp; No code snippets here, the persistence layer will be coded from scratch -- with no safety net! <BR><BR><BR><BR><SPAN class=subheadingdark><A id=KMannJSF name=KMannJSF></A>Portlet Development with JSF </SPAN><BR><SPAN class=footer><A class=bodytextbold href="http://javasymposium.techtarget.com/html/det_speakers.htm#Mann" lid="Kito Mann">Kito Mann </A></SPAN></FONT></P>
<P><FONT size=2>Component-oriented user interface frameworks such as JavaServer Faces (JSF) are growing in popularity, and organizations are also beginning to recognize the power of building application components with the Portlet API. What many don't realize, however, is the fact that JSF has integrated support for the Portlet API, making it a natural fit for building portlets. This session starts with a brief overview of JSF, portlets, and portals. It then explains how JSF portlet support works, and examines the process of developing portlets with JSF. Next, it walks through the development of a simple JSF application and deployment of that application as a portlet inside of Liferay Enterprise Portal, an open-source portal server.<BR></FONT></P>
<P><SPAN class=subheadingdark><A name=KabutzProductive></A><FONT size=2>Productive Coder </FONT></SPAN><BR><SPAN class=footer><A class=bodytextbold href="http://javasymposium.techtarget.com/html/det_speakers.htm#HKabutz" lid="Dr. Heinz Kabutz"><FONT size=2>Dr. Heinz Kabutz</FONT></A><FONT size=2> </FONT></SPAN></P>
<P><FONT size=2>Code Java at the speed of light. Modern IDEs have revolutionised the way in which we are able to churn out code. But sadly, most programmers are held back by bad habits and so never fully utilise the power that is at their fingertips. This talk will demonstrate practical tips on how to go from 2nd gear to overdrive. Topics range from keyboard skills to writing useful comments to refactoring quickly and correctly. Keywords such as final, which is not so final anymore in Java 5, and tools to help you detect dead and duplicate code. Have more fun in your day-to-day Java work by becoming one with your machine.</FONT></P>
<P><BR><SPAN class=subheadingdark><A id=NelsonRAD name=NelsonRAD></A><FONT size=2>RAD That Ain't Bad: Domain Driven Development with Trails</FONT></SPAN><BR><A href="http://javasymposium.techtarget.com/html/det_speakers.htm#Nelson" lid="Chris Nelson"><STRONG><FONT size=2>Chris Nelson</FONT></STRONG></A><FONT size=2> </FONT></P>
<P><FONT size=2>The Trails framework aims to take a new approach to Rapid Application Development in Java using proven frameworks like Spring, Tapestry, and Hibernate. By eliminating redundant steps in the development process and stressing convention over configuration, Trail can greatly accelerate development of RDBMS persistent web applications. In this session, we'll build a real Trails application in a few minutes, and then dive into the details of how Trails works and how to customize it to your heart's content. We'll also cover how Trails provides features you need to build real application such as validation, internationalization, and security. </FONT></P>
<P><BR><A id=AmblerDatabases name=AmblerDatabases></A><FONT size=2><SPAN class=subheadingdark>Refactoring Databases: Evolutionary Database Design</SPAN> <BR><SPAN class=bodytextbold><A href="http://javasymposium.techtarget.com/html/det_speakers.htm#SAmbler" lid="Scott Ambler">Scott Ambler</A></SPAN></FONT></P>
<P><FONT size=2>Just like you can refactor your Java code, you can also refactor your database schema. Unfortunately, it's about an order of magnitude tougher to do, in part because of the increased coupling which your schema is involved with, in part because of a lack of tooling, and in part because of cultural challenges within the data community (and that's the nice way to say it). In this presentation you'll learn how to successfully overcome these challenges and discover how to take an agile approach to database development.</FONT></P>
<P><BR><SPAN class=subheadingdark><A id=McClanahanShale name=McClanahanShale></A><FONT size=2>Shale: The Next Struts? </FONT></SPAN><BR><SPAN class="footer style1 style1 style2 style3"><A class=bodytextbold href="http://javasymposium.techtarget.com/html/det_speakers.htm#CMcClanahan" lid="Craig McClanahan"><FONT size=2>Craig McClanahan </FONT></A></SPAN></P>
<P><FONT size=2>The standardization of JavaServer Faces has led to support for this technology in existing web application frameworks. However, most of them treat it as a view tier technology only. Shale, on the other hand, leverages the fact that JavaServer Faces includes a controller tier as well, and focuses on adding value and ease of use features, rather than redundantly implementing functionality that is already available. This session will review the key features added by Shale, as well as its place in the Struts community.</FONT></P>
<P><BR><SPAN class=subheadingdark><A name=GHohpeSoftware></A><FONT size=2>Software Visualization and Model Generation </FONT></SPAN><BR><SPAN class="footer style1 style1 style2 style3"><A class=bodytextbold href="http://javasymposium.techtarget.com/html/det_speakers.htm#Hohpe" lid="Gregor Hohpe"><FONT size=2>Gregor Hohpe </FONT></A></SPAN></P>
<P><FONT size=2>Models are often viewed as something you create during design time and use to generate code. What if we turn the approach up-side-down and generate models from code? Humans are very good at recognizing patterns in images, making visualizations a valuable tool, for example to recognize dependencies or data flow. This is particularly true for dynamic, loosely coupled systems that are often less explicit and evolve over time. Once you have generated a model you can take&nbsp;things a step further and run checks and validations against&nbsp;it. Visualizations can also be used to plot out source code metrics over various dimensions to detect potential “hot spots” in the application that may require special attention. <BR><BR>This talk applies the concepts of visualization and model generation to a broad range of usage scenarios, such as asynchronous messaging, software components and object-oriented applications. </FONT></P>
<P><BR><SPAN class=subheadingdark><A id=McClanahanWeb name=McClanahanWeb></A><FONT size=2>The State of Web Frameworks </FONT></SPAN><BR><SPAN class="footer style1 style1 style2 style3"><A class=bodytextbold href="http://javasymposium.techtarget.com/html/det_speakers.htm#CMcClanahan" lid="Craig McClanahan"><FONT size=2>Craig McClanahan </FONT></A></SPAN></P>
<P><FONT size=2>The last couple of years have seen a burst of both standardization and increased innovation in web application frameworks, to say nothing of the very quick uptake in popularity of AJAX. What does it mean for choosing server side technology? What does AJAX mean to existing frameworks? Should we all go back to rich clients instead? Come to this session for a high level overview of the present, and future, of building rich applications for the web. </FONT></P>
<P><BR><A id=SnyderService name=SnyderService></A><FONT size=2><SPAN class=subheadingdark>Using Java Business Integration to Enable Composite Applications with ServiceMix </SPAN><BR><SPAN class=bodytextbold><A href="http://javasymposium.techtarget.com/html/det_speakers.htm#BSnyder" lid="Bruce Snyder">Bruce Snyder</A> </SPAN></FONT></P>
<P><FONT size=2>Java Business Integration (JBI) is a simple API to a Normalized Message Service and Router along with a component model to facilitate the deployment and management of integration services. ServiceMix is a leading open source Enterprise Service Bus (ESB) and Service Oriented Architecture (SOA) toolkit based on the Java Business Integration </FONT></P>
<P><FONT size=2>(JBI) specification. ServiceMix provides business integration capabilities using a complete JBI container and a host of JBI components including those for orchestration, rules, scheduling, transformation, validation and JBI transports including those for email, file, FTP, HTTP, JMS, RSS, VFS, VM and many more. </FONT></P>
<P><FONT size=2>This session will focus on using ServiceMix in a composite application scenario that takes advantage of its JBI implementation and its use of other Java Enterprise Edition specifications. </FONT></P>
<P><FONT size=2>Using the Apache License, not only can ServiceMix be deployed in a standalone configuration, but it is also fully integrated with Apache Geronimo or any other J2EE 1.4 compliant application server via the J2EE Connector Architecture (JCA). Fully embracing the Java Message Service (JMS) and Web Services standards allows ServiceMix to provide reliable and robust message delivery regardless of the message payload. The ServiceMix SOA platform provides for the managment of its JBI components via the Java Management eXtensions (JMX) using any JMX compliant management console. </FONT></P>
<P><BR><SPAN class=subheadingdark><A id=JHunterXQuery name=JHunterXQuery></A><FONT size=2>XQuery for the Java Geek </FONT></SPAN><BR><SPAN class=bodytextbold><A href="http://javasymposium.techtarget.com/html/det_speakers.htm#Hunter" lid="Jason Hunter"><FONT size=2>Jason Hunter </FONT></A></SPAN></P>
<P><FONT size=2>XQuery is a new language from the W3C that lets you query XML -- or anything that can be represented as XML, such as relational databases. </FONT></P>
<P><FONT size=2>As a Java developer -- especially a server-side Java developer -- XQuery is key to searching and manipulating large XML repositories or performing any XML-centric task. </FONT></P>
<P><FONT size=2>This talk introduces XQuery to the Java developer. I'll explain the XQuery language; I'll show how to call XQuery from Java (including coverage of JSR-225, the XQuery API for Java); and I'll show the XQuery and Java code behind a sample custom book publishing application. </FONT></P>
<P><FONT size=2>As the creator of JDOM, I'll also explain when to use XQuery instead of JDOM, and when to use both. </FONT></P>
<P class=subheadingdark><A id=#FCohenXML name=#FCohenXML></A><FONT size=2>XML, Schemas and Performance <BR><SPAN class=bodytextbold><A href="http://javasymposium.techtarget.com/html/det_speakers.htm#FCohen" lid="Frank Cohen">Frank Cohen</A></SPAN></FONT></P>
<P class=bodytext><FONT size=2>The IT world is dealing with an explosion of XML schemas and the average Java engineer is not prepared with today's XML tools and techniques. For instance, SOAP, RSS, REST, SOA schemas and protocols, and AJAX are challenging developers every day. In this session Frank Cohen will give many examples of XML schema incompatibility, inefficient and needlessly bulky code, and poor performance and scalability that come with popular XML handling libraries, tools, and techniques. Cohen will show how new strategies for on-the-fly data schema transformation, SOA metadata persistence and versioning and policy-driven intelligent data caching are viable solutions. </FONT></P>
<P class=bodytext><SPAN class=pageheading><FONT size=2>BOFs</FONT></SPAN></P>
<P class=bodytext><SPAN class=subheadingdark><A id=TerracottaBOF name=TerracottaBOF></A><FONT size=2>The Importance of Preserving Object Identity while Clustering</FONT></SPAN><FONT size=2> <BR><SPAN class=bodytextbold>Jonas Bonér and Patrick Calahan, Terracotta</SPAN> <BR><BR>Clustering and other forms of distributed computing are not easy in Java. The proliferation of clustered caches in the market today illustrates the need for tools to make clustering in Java easier. The problems with most current solutions are that they break Java's natural programming model – with unnatural API's and breaking fundamental object identity. This Birds of a Feather session will focus on the importance of preserving object identity in a cluster, and will illustrate a runtime system that understands the developer's domain objects and clusters objects across a cluster transparently while maintaining object identity, using detailed code examples to illustrate the concepts. </FONT></P>
<P class=bodytext><FONT size=2></FONT>&nbsp;</P><!-- #EndEditable --><img src ="http://www.blogjava.net/beyondduke/aggbug/25287.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/beyondduke/" target="_blank">beyondduke</a> 2005-12-24 10:55 <a href="http://www.blogjava.net/beyondduke/archive/2005/12/24/25287.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>