﻿<?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-鹰翔宇空</title><link>http://www.blogjava.net/TrampEagle/</link><description>学习和生活
</description><language>zh-cn</language><lastBuildDate>Tue, 28 Apr 2026 21:41:47 GMT</lastBuildDate><pubDate>Tue, 28 Apr 2026 21:41:47 GMT</pubDate><ttl>60</ttl><item><title>Linux上安装MQ7.5</title><link>http://www.blogjava.net/TrampEagle/archive/2013/01/05/393842.html</link><dc:creator>TrampEagle</dc:creator><author>TrampEagle</author><pubDate>Sat, 05 Jan 2013 14:33:00 GMT</pubDate><guid>http://www.blogjava.net/TrampEagle/archive/2013/01/05/393842.html</guid><wfw:comment>http://www.blogjava.net/TrampEagle/comments/393842.html</wfw:comment><comments>http://www.blogjava.net/TrampEagle/archive/2013/01/05/393842.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/TrampEagle/comments/commentRss/393842.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/TrampEagle/services/trackbacks/393842.html</trackback:ping><description><![CDATA[<p>1.root登录，查看jdk是否安装，如果没有安装先安装jdk<br />$cd /usr;mkdir java;cd java;<br />$cp /soft/jdk-6u37-linux-i586.bin jdk-6u37-linux-i586.bin<br />$chmod +x jdk-6u37-linux-i586.bin<br />$./jdk-6u37-linux-i586.bin<br />$vi /etc/profile<br />将下面的内容添加到最后并保存<br />#set java environment<br />JAVA_HOME=/usr/java/jdk1.6.0_37<br />CLASSPATH=.:$JAVA_HOME/lib.tools.jar<br />PATH=$JAVA_HOME/bin:$PATH<br />export JAVA_HOME CLASSPATH PATH<br />####$$$$$$$$执行下面的命令使之生效(注意英文符号&#8220;.&#8221;,空格后再加上文件名)$$$$$$$$$<br />[root@localhost mqsoft]#. /etc/profile<br />##查看jdk是否安装成功<br />[root@localhost mqsoft]#java -version<br />2.进入到MQ软件包所在的目录<br />[root@localhost mqsoft]#cd /soft<br />3.<br />[root@localhost mqsoft]#mkdir mqsoft<br />4.<br />[root@localhost mqsoft]#cd mqsoft<br />5.<br />[root@localhost mqsoft]#tar -zxvf ../MQ_7.5_TRIAL_FOR_LNX_ON_X86_32_ML.tar.gz<br />6.<br />[root@localhost mqsoft]#./mqlicense.sh -accept<br />7.<br />[root@localhost mqsoft]# rpm -ivh MQSeriesRuntime-7.5.0-0.i386.rpm<br />Creating group mqm<br />Creating user mqm<br />[root@localhost mqsoft]# rpm -ivh MQSeriesSDK-7.5.0-0.i386.rpm<br />[root@localhost mqsoft]# rpm -ivh MQSeriesServer-7.5.0-0.i386.rpm<br />[root@localhost mqsoft]# rpm -ivh MQSeriesClient-7.5.0-0.i386.rpm<br />[root@localhost mqsoft]# rpm -ivh MQSeriesSamples-7.5.0-0.i386.rpm<br />[root@localhost mqsoft]# rpm -ivh MQSeriesJava-7.5.0-0.i386.rpm<br />Preparing...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ########################################### [100%]<br />&nbsp;&nbsp; 1:MQSeriesJava&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ########################################### [100%]<br />[root@localhost mqsoft]# rpm -ivh MQSeriesMsg_Zh_CN-7.5.0-0.i386.rpm<br />Preparing...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ########################################### [100%]<br />&nbsp;&nbsp; 1:MQSeriesMsg_Zh_CN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ########################################### [100%]<br />[root@localhost mqsoft]# rpm -ivh MQSeriesMan-7.5.0-0.i386.rpm<br />Preparing...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ########################################### [100%]<br />&nbsp;&nbsp; 1:MQSeriesMan&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ########################################### [100%]<br />8.&nbsp; 安装过程创建了一个名为 mqm 的用户和一个同样名为 mqm 的组。此时，新用户是被锁定的，您必须设置一个密码来解锁，这样才能继续本文的第二部分。可用 passwd 命令做到这一点：<br />[root@localhost mqsoft]# passwd mqm<br />9.切换到mqm用户下执行crtmqm创建一个队列管理器<br />-bash-3.2$ crtmqm -q QM1<br />此 WebSphere MQ 副本的试用期还剩 90 天。<br />WebSphere MQ 队列管理器已创建。<br />已创建目录&#8220;/var/mqm/qmgrs/QM1&#8221;。<br />队列管理器与安装&#8220;Installation1&#8221;关联。<br />正在创建或替换队列管理器&#8220;QM1&#8221;的缺省对象。<br />缺省对象统计：74 个已创建。0 个已替换。0 个已失败。<br />正在完成设置。<br />设置完成。<br />10.如果执行crtmqm命令时提示<br />-bash-3.2$ crtmqm<br />-bash: crtmqm: command not found<br />则需要配置mqm用户的环境变量，编辑如下文件，并添加下面的内容，如下：<br />1）-bash-3.2$ vi /var/mqm/.bash_profile</p><p>PATH=$PATH:/opt/mqm/samp/bin:/opt/mqm/bin:bin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin<br />2）执行&#8220;.&#8221;命令，使这个文件生效<br />-bash-3.2$ . .bash_profile<br />3）再次尝试实行crtmqm或是dspmqm命令，即可发现已经生效。</p><img src ="http://www.blogjava.net/TrampEagle/aggbug/393842.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/TrampEagle/" target="_blank">TrampEagle</a> 2013-01-05 22:33 <a href="http://www.blogjava.net/TrampEagle/archive/2013/01/05/393842.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Oracle to buy sun </title><link>http://www.blogjava.net/TrampEagle/archive/2009/04/21/266837.html</link><dc:creator>TrampEagle</dc:creator><author>TrampEagle</author><pubDate>Tue, 21 Apr 2009 12:51:00 GMT</pubDate><guid>http://www.blogjava.net/TrampEagle/archive/2009/04/21/266837.html</guid><wfw:comment>http://www.blogjava.net/TrampEagle/comments/266837.html</wfw:comment><comments>http://www.blogjava.net/TrampEagle/archive/2009/04/21/266837.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.blogjava.net/TrampEagle/comments/commentRss/266837.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/TrampEagle/services/trackbacks/266837.html</trackback:ping><description><![CDATA[<p>&nbsp;</p>
可怜的人。。。可怜的公司。。。<br />
守着巨大的财富却变成了乞丐，最终进入了收容所。以后的开源界是否会大受影响，目前还不敢断定，但曾经的辉煌注定不再，起码不再由java引起。也许不久会爆发一场《java引发的&#8220;血案&#8221;》。<br />
<br />
其实对我个人而言，也许并未想过有多大影响，只是长久从事java开发后，对sun的一种难以割舍的情感，对于oracle也说不上太多的厌恶，上周还在想着IBM呢，周六就变成了oracle，过于突然。<br />
今天晚上回到家，不经意打开MySql，突然意识到，这家曾经和oracle争抢市场的开源数据库，几经周转后，终于还是回到了oracle的旗下。这是开源的幸运呢，还是开源的不幸？抑或是开源最终的捷径或者是归途。<br />
<br />
至于sun呢？只能是哀其不幸，怒其不争了。也许这就是人们常说的，这是一个最好的时代，也是一个最坏的时代，对于sun，也许是一件最好的事情，也许是最坏的事情，谁知道呢？<br />
<br />
再也许，天下合久必分，分久必合，任何事物也难以逃脱这个规律，sun的被收购，也许只是顺应了历史发展的潮流而已，说不定，过段时间，当oracle发现难以将sun消化时，也许会再次分开。也许，说不定什么时候，oracle也成为了被收购的对象，现在的社会，还有什么是不可能的呢？ 
<img src ="http://www.blogjava.net/TrampEagle/aggbug/266837.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/TrampEagle/" target="_blank">TrampEagle</a> 2009-04-21 20:51 <a href="http://www.blogjava.net/TrampEagle/archive/2009/04/21/266837.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ORACLE查询表方法</title><link>http://www.blogjava.net/TrampEagle/archive/2008/07/15/214865.html</link><dc:creator>TrampEagle</dc:creator><author>TrampEagle</author><pubDate>Tue, 15 Jul 2008 01:00:00 GMT</pubDate><guid>http://www.blogjava.net/TrampEagle/archive/2008/07/15/214865.html</guid><wfw:comment>http://www.blogjava.net/TrampEagle/comments/214865.html</wfw:comment><comments>http://www.blogjava.net/TrampEagle/archive/2008/07/15/214865.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/TrampEagle/comments/commentRss/214865.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/TrampEagle/services/trackbacks/214865.html</trackback:ping><description><![CDATA[<p>select 'drop table '||tname||';' from tab where lower(tname) like 'tb_evt_ydq_%'</p>
<p>select 'select * from&nbsp; '||tname||';' from tab where lower(tname) like 'tb_evt_ydq_%'</p>
<p>&nbsp;</p>
<img src ="http://www.blogjava.net/TrampEagle/aggbug/214865.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/TrampEagle/" target="_blank">TrampEagle</a> 2008-07-15 09:00 <a href="http://www.blogjava.net/TrampEagle/archive/2008/07/15/214865.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>本地化（国际化）rich:calendar控件</title><link>http://www.blogjava.net/TrampEagle/archive/2008/06/28/211343.html</link><dc:creator>TrampEagle</dc:creator><author>TrampEagle</author><pubDate>Sat, 28 Jun 2008 09:19:00 GMT</pubDate><guid>http://www.blogjava.net/TrampEagle/archive/2008/06/28/211343.html</guid><wfw:comment>http://www.blogjava.net/TrampEagle/comments/211343.html</wfw:comment><comments>http://www.blogjava.net/TrampEagle/archive/2008/06/28/211343.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/TrampEagle/comments/commentRss/211343.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/TrampEagle/services/trackbacks/211343.html</trackback:ping><description><![CDATA[rich:calendar是richfaces的一个非常有用的日期显示组件。可以通过datePattern非常方便的格式化日期<br />
&lt;rich:calendar id="tel_yuyueshijian" style="width:200px"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;readonly="true" size="16" datePattern="yyyy-MM-dd" /&gt;<br />
<br />
本地化其实非常简单，默认会根据浏览器自动本地化部分内容，但是可以在classpath下添加一个资源文件messages_zh_CN.properties，把相关内容设置一下就可以了，非常简单；<br />
例如：<br />
RICH_CALENDAR_TODAY_LABEL=今天<br />
RICH_CALENDAR_CLOSE_LABEL=关闭<br />
RICH_CALENDAR_OK_LABEL=确定<br />
RICH_CALENDAR_CLEAN_LABEL=清空<br />
RICH_CALENDAR_CANCEL_LABEL=取消<br />
<br />
具体可以参考richfaces-usersguide官方文档。
<img src ="http://www.blogjava.net/TrampEagle/aggbug/211343.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/TrampEagle/" target="_blank">TrampEagle</a> 2008-06-28 17:19 <a href="http://www.blogjava.net/TrampEagle/archive/2008/06/28/211343.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用Richface通过js脚本直接局部刷新</title><link>http://www.blogjava.net/TrampEagle/archive/2008/06/28/211342.html</link><dc:creator>TrampEagle</dc:creator><author>TrampEagle</author><pubDate>Sat, 28 Jun 2008 09:03:00 GMT</pubDate><guid>http://www.blogjava.net/TrampEagle/archive/2008/06/28/211342.html</guid><wfw:comment>http://www.blogjava.net/TrampEagle/comments/211342.html</wfw:comment><comments>http://www.blogjava.net/TrampEagle/archive/2008/06/28/211342.html#Feedback</comments><slash:comments>11</slash:comments><wfw:commentRss>http://www.blogjava.net/TrampEagle/comments/commentRss/211342.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/TrampEagle/services/trackbacks/211342.html</trackback:ping><description><![CDATA[<p>&lt;script&gt;<br />
&nbsp;&nbsp;&nbsp; function <span style="color: #0000ff">testAjaxWithJS</span>(){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: red">updateHTable</span>();//注意这里一定要和a4j:jsFunction的name的值一致，如红色标记。<br />
&nbsp;&nbsp;&nbsp; }<br />
&lt;/script&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;h:selectBooleanCheckbox id="existedBalAcct"&nbsp;&nbsp;&nbsp;onclick="return <span style="color: #0000ff">testAjaxWithJS</span>();"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;a4j:jsFunction name="<span style="color: red">updateHTable</span>" reRender="accountHTable"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/a4j:jsFunction&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;a4j:outputPanel id="accountHTable"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;h:dataTable headerClass="title2" &gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/h:dataTable&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/a4j:outputPanel&gt;</p>
<img src ="http://www.blogjava.net/TrampEagle/aggbug/211342.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/TrampEagle/" target="_blank">TrampEagle</a> 2008-06-28 17:03 <a href="http://www.blogjava.net/TrampEagle/archive/2008/06/28/211342.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jboss seam 常用控件</title><link>http://www.blogjava.net/TrampEagle/archive/2008/04/21/194626.html</link><dc:creator>TrampEagle</dc:creator><author>TrampEagle</author><pubDate>Mon, 21 Apr 2008 13:45:00 GMT</pubDate><guid>http://www.blogjava.net/TrampEagle/archive/2008/04/21/194626.html</guid><wfw:comment>http://www.blogjava.net/TrampEagle/comments/194626.html</wfw:comment><comments>http://www.blogjava.net/TrampEagle/archive/2008/04/21/194626.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/TrampEagle/comments/commentRss/194626.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/TrampEagle/services/trackbacks/194626.html</trackback:ping><description><![CDATA[<p>持续更心中：<br />
1。日期：<br />
&nbsp; &lt;rich:calendar value="#{flight.departureDate}" locale="#{locale}" datePattern="yyyy-MM-dd hh:mm" /&gt;&nbsp; </p>
2。
<img src ="http://www.blogjava.net/TrampEagle/aggbug/194626.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/TrampEagle/" target="_blank">TrampEagle</a> 2008-04-21 21:45 <a href="http://www.blogjava.net/TrampEagle/archive/2008/04/21/194626.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jboss seam 组件驱动的事件</title><link>http://www.blogjava.net/TrampEagle/archive/2008/03/25/188607.html</link><dc:creator>TrampEagle</dc:creator><author>TrampEagle</author><pubDate>Tue, 25 Mar 2008 14:49:00 GMT</pubDate><guid>http://www.blogjava.net/TrampEagle/archive/2008/03/25/188607.html</guid><wfw:comment>http://www.blogjava.net/TrampEagle/comments/188607.html</wfw:comment><comments>http://www.blogjava.net/TrampEagle/archive/2008/03/25/188607.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/TrampEagle/comments/commentRss/188607.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/TrampEagle/services/trackbacks/188607.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: jboss seam 组件驱动的事件&nbsp;&nbsp;<a href='http://www.blogjava.net/TrampEagle/archive/2008/03/25/188607.html'>阅读全文</a><img src ="http://www.blogjava.net/TrampEagle/aggbug/188607.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/TrampEagle/" target="_blank">TrampEagle</a> 2008-03-25 22:49 <a href="http://www.blogjava.net/TrampEagle/archive/2008/03/25/188607.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>多线程-synchronized</title><link>http://www.blogjava.net/TrampEagle/archive/2008/03/25/188598.html</link><dc:creator>TrampEagle</dc:creator><author>TrampEagle</author><pubDate>Tue, 25 Mar 2008 14:24:00 GMT</pubDate><guid>http://www.blogjava.net/TrampEagle/archive/2008/03/25/188598.html</guid><wfw:comment>http://www.blogjava.net/TrampEagle/comments/188598.html</wfw:comment><comments>http://www.blogjava.net/TrampEagle/archive/2008/03/25/188598.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/TrampEagle/comments/commentRss/188598.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/TrampEagle/services/trackbacks/188598.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: synchronized &nbsp;&nbsp;<a href='http://www.blogjava.net/TrampEagle/archive/2008/03/25/188598.html'>阅读全文</a><img src ="http://www.blogjava.net/TrampEagle/aggbug/188598.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/TrampEagle/" target="_blank">TrampEagle</a> 2008-03-25 22:24 <a href="http://www.blogjava.net/TrampEagle/archive/2008/03/25/188598.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jboss_seam初学入门建议</title><link>http://www.blogjava.net/TrampEagle/archive/2008/03/09/184803.html</link><dc:creator>TrampEagle</dc:creator><author>TrampEagle</author><pubDate>Sun, 09 Mar 2008 03:00:00 GMT</pubDate><guid>http://www.blogjava.net/TrampEagle/archive/2008/03/09/184803.html</guid><wfw:comment>http://www.blogjava.net/TrampEagle/comments/184803.html</wfw:comment><comments>http://www.blogjava.net/TrampEagle/archive/2008/03/09/184803.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/TrampEagle/comments/commentRss/184803.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/TrampEagle/services/trackbacks/184803.html</trackback:ping><description><![CDATA[刚开始学习seam，太多东西需要了解，但是刚开始的一个入门HelloWorld搞了挺长时间，却一直没有跑起来，很是郁闷，后来还是老老实实的使用seam-gen生成了一个小例子，然后在上面一步步地展开，终于开始比较顺畅起来。<br />
<br />
另：jboss_seam2.1自带的很多例子都跑不起来，郁闷阿，不过可以当作学习事例，可以自己修改，呵呵，这样一想，也挺高兴的，也算是锻炼吧。<br />
<br />
现在发现，其实seam学习起来也不是那么困难，主要就是第一步，但第一步，对于我这个总喜欢自己敲代码而不喜欢借助工具的人来说，网上介绍的东西也太少了。<br />
<br />
所以，希望初学者，最好不要自己直接写代码，因为很容易遗漏某些jar包或配置文件，再说了，如果自己去写一个个的配置文件确实也太麻烦了一点。<br />
另外，seam-gen确实和Ruby-on-Rails有得一拼，确实也非常简单的。<br />
具体内容可以参考<br />
<a href="http://www.redsaga.com/opendoc/Seam2.0/html_single/">http://www.redsaga.com/opendoc/Seam2.0/html_single/</a> 
<img src ="http://www.blogjava.net/TrampEagle/aggbug/184803.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/TrampEagle/" target="_blank">TrampEagle</a> 2008-03-09 11:00 <a href="http://www.blogjava.net/TrampEagle/archive/2008/03/09/184803.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何使用java动态创建ODBC数据源</title><link>http://www.blogjava.net/TrampEagle/archive/2007/09/30/149942.html</link><dc:creator>TrampEagle</dc:creator><author>TrampEagle</author><pubDate>Sun, 30 Sep 2007 08:38:00 GMT</pubDate><guid>http://www.blogjava.net/TrampEagle/archive/2007/09/30/149942.html</guid><wfw:comment>http://www.blogjava.net/TrampEagle/comments/149942.html</wfw:comment><comments>http://www.blogjava.net/TrampEagle/archive/2007/09/30/149942.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.blogjava.net/TrampEagle/comments/commentRss/149942.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/TrampEagle/services/trackbacks/149942.html</trackback:ping><description><![CDATA[好久没有使用过VFP了，记忆中似乎也只是在学校中使用过。这次出差，客户给了一大堆dbf文件，要求处理。<br />
无奈啊，顾客就是上帝。虽然可以通过许多途径来处理，但是总想用java语言来处理。最终还是需要通过JNI来处理，不过用到了一个开元的操作注册表的registry-3.1.3，使用后，发现蛮简单的，网上已有很多资料介绍，就不多说了。<br />
想了两种解决方法，第一种比较麻烦，但是看网上很多人问，就也总结了出来，其实就是通过java动态创建ODBC数据源来访问DBF文件，这个就需要用到registry，来修改注册表了。<br />
<br />
其实，主要是动态创建ODBC数据源，开始很简单，可以手工设置一次数据源，当然也可以通过程序直接生成，问题都不大。下面只说怎样修改。<br />
<p>import com.ice.jni.registry.RegStringValue;<br />
import com.ice.jni.registry.Registry;<br />
import com.ice.jni.registry.RegistryKey;</p>
<p><br />
public class TestC {<br />
&nbsp;public static void main(String[] str) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RegistryKey child = Registry.HKEY_CURRENT_USER<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .openSubKey("Software").openSubKey("ODBC").openSubKey("ODBC.INI").openSubKey("data_0930",RegistryKey.ACCESS_ALL);//操作权限是通过RegistryKey来获取的。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String de = "F:\\commony\\test\\data\\070901";&nbsp; //我的DBF数据的目录<br />
//其中，data_0930是我第一次设置的数据源的一个注册表的名称<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(child.getStringValue("SourceDB"));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; child.setValue(new RegStringValue(child,"SourceDB",de));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(child.getFullName());<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } catch (Exception e) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; e.printStackTrace();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; }</p>
<p>}<br />
然后就是通过，sun.jdbc.odbc.JdbcOdbcDriver来获取数据，<br />
</p>
<p>import java.sql.DriverManager;<br />
import java.sql.*;<br />
public class TestOdbc {<br />
&nbsp; public TestOdbc() {<br />
&nbsp; }<br />
&nbsp; public static void main(String[] args) {<br />
&nbsp;&nbsp;&nbsp; java.sql.Connection conn = null;<br />
&nbsp;&nbsp;&nbsp; java.sql.PreparedStatement pt = null;<br />
&nbsp;&nbsp;&nbsp; java.sql.ResultSet rs = null;<br />
&nbsp;&nbsp;&nbsp; try {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; catch (ClassNotFoundException ex1) {<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; try {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; conn = DriverManager.getConnection("jdbc:odbc:data_0930", "", "");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pt = conn.prepareStatement(" select *&nbsp; from test_table");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rs = pt.executeQuery();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while(rs.next()){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("==="+rs.getString(1));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("==="+rs.getString(2));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("==="+rs.getString(3));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("==="+rs.getString(4));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("==="+rs.getString(5));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; catch (SQLException ex) {<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp; }<br />
}</p>
<p>其实真的很简单。<br />
其实，文件名，是可以动态获取的，一般可以通过java中的File类来获取：<br />
</p>
<p>import java.io.File;</p>
<p><br />
public class TestD {</p>
<p>&nbsp;public static void main(String[] args){<br />
&nbsp;&nbsp;File file = new File("F:\\commony\\test<a href="file://\\data">\\data</a>");<br />
&nbsp;&nbsp;File[] df = file.listFiles();<br />
&nbsp;&nbsp;for(int k =0;k&lt;df.length;k++){<br />
&nbsp;&nbsp;&nbsp;if(df[k].isDirectory()){ //因为文件夹中包含DBF文件，所以判断是文件夹，而不是文件<br />
&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("===kkkk=="+k+"====="+df[k].getName());<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;}<br />
&nbsp;}<br />
}</p>
<p>第一种就是这样，需要注意的是registry的使用，其实很简单的，只要把DLL文件放到classpath下就可以了。<br />
第二种其实更简单，就是通过另一个开元的类包jdbf.jar，使用方法也很简单，网上有很多资料，可以查询。也就不多说了。<br />
&nbsp; </p>
<img src ="http://www.blogjava.net/TrampEagle/aggbug/149942.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/TrampEagle/" target="_blank">TrampEagle</a> 2007-09-30 16:38 <a href="http://www.blogjava.net/TrampEagle/archive/2007/09/30/149942.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>