<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Ursob &#187; Java</title>
	<atom:link href="http://ursob.org/category/java/feed/" rel="self" type="application/rss+xml" />
	<link>http://ursob.org</link>
	<description>Code &#38;&#38; Riff</description>
	<lastBuildDate>Thu, 29 Jul 2010 09:37:57 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Win下批处理部署J2EE工程</title>
		<link>http://ursob.org/2010/07/29/windows-bat-j2ee/</link>
		<comments>http://ursob.org/2010/07/29/windows-bat-j2ee/#comments</comments>
		<pubDate>Thu, 29 Jul 2010 09:09:49 +0000</pubDate>
		<dc:creator>ripflowers</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Others]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://ursob.org/?p=406</guid>
		<description><![CDATA[
前段时间需要弄一个自动安装J2EE工程的东西，想到用installanywhere，不过还想用更简单的方法，所以就用到了用批处理文件部署J2EE项目，用到的数据库为Mysql，原理很简单就是把注册Mysql服务、启动Tomcat、配置JAVA_HOME、配置PATH这些命令都堆到了一个bat文件下，原来一牛逼哥们儿已经实现了放到硬盘的固定目录下实现这样的功能，之后在本人的狗尾续貂下已经实现放到硬盘的任务目录都能执行，下边记录一下总过程:



1，文件准备，文件目录如下图：





相信看到这几个文件都不会陌生，这几个文件的重点就在于startup.bat，这个文件中聚集了所有的命令，jdk就不说了；mysql为noinstall版本，数据库已经创建完毕，并且已经导入数据，如果noinstall-mysql还有疑问的话请参考本站的Mysql noinstall版本的配置和使用；tomcat的webapps下已经放置了将要部署的项目；index.html中的内容为：


&#60;html&#62;
  &#60;head&#62;&#60;/head&#62;
  &#60;body&#62;
    &#60;script&#62;window.location.href='http://localhost:8088/项目名称';&#60;/script&#62;
  &#60;/body&#62;
&#60;/html&#62;
&#60;!--不再赘述--&#62;





2，startup.bat详解，一下是bat文件中的全部内容，注释中会说的更明白一点：


&#160;
@echo off
rem echo off命令关闭命令在dos窗口中的显示，如果需要显示修改为echo on
rem @echo off行的上面最好空一行，因为测试发现如果它放到第一行的话有时候会失效

rem 以下两行代码的功能是获取当前路径，并把当前路径付给变量&#34;INSTALL_HOME&#34;
setlocal enabledelayedexpansion
set &#34;INSTALL_HOME=%~dp0&#34;

rem 以下三行代码的功能是清空mysql目录下my.ini中的内容，
rem 因为路径是可变的，所以需要修改my.ini中的内容，
rem 向文件中插入内容好像不是很容易实现，所以干脆全部清空，然后再向中写数据
for /f &#34;delims=&#34; %%i in &#40;'dir/b &#34;%INSTALL_HOME%\mysql\my.ini&#34;'&#41; do call :del_ &#34;%%i&#34; 
goto :eof 
:del_ 

rem 以下N行代码的功能配置my.ini
&#62;c:\tmp1.tmp &#40;
	echo &#91;WinMySQLAdmin&#93; 
	echo Server=%INSTALL_HOME%\mysql\mysqld-nt.exe
	echo &#91;mysqld&#93; 
	echo basedir=%INSTALL_HOME%\mysql
	echo datadir=%INSTALL_HOME%\mysql\data
	echo &#91;client&#93;
	echo port		= 3306
	echo socket		= /tmp/mysql.sock
	echo default-character-set=utf8
	echo &#91;mysqld&#93;
	echo port		= [...]]]></description>
			<content:encoded><![CDATA[<p>
前段时间需要弄一个自动安装J2EE工程的东西，想到用installanywhere，不过还想用更简单的方法，所以就用到了用批处理文件部署J2EE项目，用到的数据库为Mysql，原理很简单就是把注册Mysql服务、启动Tomcat、配置JAVA_HOME、配置PATH这些命令都堆到了一个bat文件下，原来一牛逼哥们儿已经实现了放到硬盘的固定目录下实现这样的功能，之后在本人的狗尾续貂下已经实现放到硬盘的任务目录都能执行，下边记录一下总过程:
</p>
<blockquote>
<p>
1，文件准备，文件目录如下图：
</p>
<p>
<a title="Image Title" rel="lightbox" href="http://ursob.org/wp-content/uploads/2010/06/files.jpg"><img src="http://ursob.org/wp-content/uploads/2010/06/files.jpg" alt="Key documents" title="Key documents" width="300" height="187" class="size-medium wp-image-364" /></a>
</p>
<p>
相信看到这几个文件都不会陌生，这几个文件的重点就在于startup.bat，这个文件中聚集了所有的命令，jdk就不说了；mysql为noinstall版本，数据库已经创建完毕，并且已经导入数据，如果noinstall-mysql还有疑问的话请参考本站的<a title="Permanent Link to Mysql noinstall版本的配置和使用" rel="bookmark" href="http://ursob.org/2009/09/30/mysql-noinstall/">Mysql noinstall版本的配置和使用</a>；tomcat的webapps下已经放置了将要部署的项目；index.html中的内容为：
</p>

<div class="wp_syntax"><div class="code"><pre class="html4strict" style="font-family:Courier New, Courier;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">html</span>&gt;</span>
  <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">head</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">head</span>&gt;</span>
  <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">body</span>&gt;</span>
    <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">script</span>&gt;</span>window.location.href='http://localhost:8088/项目名称';<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">script</span>&gt;</span>
  <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">body</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">html</span>&gt;</span>
<span style="color: #808080; font-style: italic;">&lt;!--不再赘述--&gt;</span></pre></div></div>

</p>
</blockquote>
<blockquote>
<p>
2，startup.bat详解，一下是bat文件中的全部内容，注释中会说的更明白一点：
</p>
<p>
<div class="wp_syntax"><div class="code"><pre class="dos" style="font-family:Courier New, Courier;">&nbsp;
<span style="color: #33cc33;">@</span><span style="color: #b1b100; font-weight: bold;">echo</span> off
<span style="color: #808080; font-style: italic;">rem echo off命令关闭命令在dos窗口中的显示，如果需要显示修改为echo on</span>
<span style="color: #808080; font-style: italic;">rem @echo off行的上面最好空一行，因为测试发现如果它放到第一行的话有时候会失效</span>
<span style="color: #808080; font-style: italic;">
rem 以下两行代码的功能是获取当前路径，并把当前路径付给变量&quot;INSTALL_HOME&quot;</span>
<span style="color: #b1b100; font-weight: bold;">setlocal</span> enabledelayedexpansion
<span style="color: #b1b100; font-weight: bold;">set</span> <span style="color: #448844;">&quot;INSTALL_HOME</span>=<span style="color: #33cc33;">%</span><span style="color: #448888;">~dp0</span>&quot;
<span style="color: #808080; font-style: italic;">
rem 以下三行代码的功能是清空mysql目录下my.ini中的内容，</span>
<span style="color: #808080; font-style: italic;">rem 因为路径是可变的，所以需要修改my.ini中的内容，</span>
<span style="color: #808080; font-style: italic;">rem 向文件中插入内容好像不是很容易实现，所以干脆全部清空，然后再向中写数据</span>
<span style="color: #00b100; font-weight: bold;">for</span> /f &quot;delims=&quot; <span style="color: #33cc33;">%%</span><span style="color: #448888;">i</span> <span style="color: #00b100; font-weight: bold;">in</span> <span style="color: #66cc66;">&#40;</span>'<span style="color: #b1b100; font-weight: bold;">dir</span>/b &quot;<span style="color: #33cc33;">%</span><span style="color: #448888;">INSTALL_HOME</span><span style="color: #33cc33;">%</span>\mysql\my.ini&quot;'<span style="color: #66cc66;">&#41;</span> <span style="color: #00b100; font-weight: bold;">do</span> <span style="color: #00b100; font-weight: bold;">call</span> :<span style="color: #b100b1; font-weight: bold;">del_ &quot;%%<span style="color: #448888;">i</span>&quot; </span>
<span style="color: #00b100; font-weight: bold;">goto</span> <span style="color: #b100b1; font-weight: bold;">:eof </span>
:<span style="color: #b100b1; font-weight: bold;">del_ </span>
<span style="color: #808080; font-style: italic;">
rem 以下N行代码的功能配置my.ini</span>
&gt;c:\tmp1.tmp <span style="color: #66cc66;">&#40;</span>
	<span style="color: #b1b100; font-weight: bold;">echo</span> <span style="color: #66cc66;">&#91;</span>WinMySQLAdmin<span style="color: #66cc66;">&#93;</span> 
	<span style="color: #b1b100; font-weight: bold;">echo</span> Server=<span style="color: #33cc33;">%</span><span style="color: #448888;">INSTALL_HOME</span><span style="color: #33cc33;">%</span>\mysql\mysqld-nt.exe
	<span style="color: #b1b100; font-weight: bold;">echo</span> <span style="color: #66cc66;">&#91;</span>mysqld<span style="color: #66cc66;">&#93;</span> 
	<span style="color: #b1b100; font-weight: bold;">echo</span> basedir=<span style="color: #33cc33;">%</span><span style="color: #448888;">INSTALL_HOME</span><span style="color: #33cc33;">%</span>\mysql
	<span style="color: #b1b100; font-weight: bold;">echo</span> datadir=<span style="color: #33cc33;">%</span><span style="color: #448888;">INSTALL_HOME</span><span style="color: #33cc33;">%</span>\mysql\data
	<span style="color: #b1b100; font-weight: bold;">echo</span> <span style="color: #66cc66;">&#91;</span>client<span style="color: #66cc66;">&#93;</span>
	<span style="color: #b1b100; font-weight: bold;">echo</span> port		= <span style="color: #cc66cc;">3306</span>
	<span style="color: #b1b100; font-weight: bold;">echo</span> socket		= /tmp/mysql.sock
	<span style="color: #b1b100; font-weight: bold;">echo</span> default-character-<span style="color: #b1b100; font-weight: bold;">set</span>=utf8
	<span style="color: #b1b100; font-weight: bold;">echo</span> <span style="color: #66cc66;">&#91;</span>mysqld<span style="color: #66cc66;">&#93;</span>
	<span style="color: #b1b100; font-weight: bold;">echo</span> port		= <span style="color: #cc66cc;">3306</span>
	<span style="color: #b1b100; font-weight: bold;">echo</span> socket		= /tmp/mysql.sock
	<span style="color: #b1b100; font-weight: bold;">echo</span> skip-locking
	<span style="color: #b1b100; font-weight: bold;">echo</span> key_buffer = 16K
	<span style="color: #b1b100; font-weight: bold;">echo</span> max_allowed_packet = 12M
	<span style="color: #b1b100; font-weight: bold;">echo</span> table_cache = <span style="color: #cc66cc;">4</span>
	<span style="color: #b1b100; font-weight: bold;">echo</span> sort_buffer_size = 64K
	<span style="color: #b1b100; font-weight: bold;">echo</span> read_buffer_size = 256K
	<span style="color: #b1b100; font-weight: bold;">echo</span> read_rnd_buffer_size = 256K
	<span style="color: #b1b100; font-weight: bold;">echo</span> net_buffer_length = 2K
	<span style="color: #b1b100; font-weight: bold;">echo</span> thread_stack = 64K
	<span style="color: #b1b100; font-weight: bold;">echo</span> default-character-<span style="color: #b1b100; font-weight: bold;">set</span>=utf8
	<span style="color: #b1b100; font-weight: bold;">echo</span> default-storage-engine=innodb
	<span style="color: #b1b100; font-weight: bold;">echo</span> server-id	= <span style="color: #cc66cc;">1</span>
	<span style="color: #b1b100; font-weight: bold;">echo</span> <span style="color: #66cc66;">&#91;</span>mysqldump<span style="color: #66cc66;">&#93;</span>
	<span style="color: #b1b100; font-weight: bold;">echo</span> quick
	<span style="color: #b1b100; font-weight: bold;">echo</span> max_allowed_packet = 16M
	<span style="color: #b1b100; font-weight: bold;">echo</span> <span style="color: #66cc66;">&#91;</span>mysql<span style="color: #66cc66;">&#93;</span>
	<span style="color: #b1b100; font-weight: bold;">echo</span> no-auto-rehash
	<span style="color: #b1b100; font-weight: bold;">echo</span> <span style="color: #66cc66;">&#91;</span>isamchk<span style="color: #66cc66;">&#93;</span>
	<span style="color: #b1b100; font-weight: bold;">echo</span> key_buffer = 8M
	<span style="color: #b1b100; font-weight: bold;">echo</span> sort_buffer_size = 8M
	<span style="color: #b1b100; font-weight: bold;">echo</span> <span style="color: #66cc66;">&#91;</span>myisamchk<span style="color: #66cc66;">&#93;</span>
	<span style="color: #b1b100; font-weight: bold;">echo</span> key_buffer = 8M
	<span style="color: #b1b100; font-weight: bold;">echo</span> sort_buffer_size = 8M
	<span style="color: #b1b100; font-weight: bold;">echo</span> <span style="color: #66cc66;">&#91;</span>mysqlhotcopy<span style="color: #66cc66;">&#93;</span>
	<span style="color: #b1b100; font-weight: bold;">echo</span> interactive-timeout
<span style="color: #66cc66;">&#41;</span>
<span style="color: #00b100; font-weight: bold;">for</span> /f &quot;tokens=* delims=&quot; <span style="color: #33cc33;">%%</span><span style="color: #448888;">i</span> <span style="color: #00b100; font-weight: bold;">in</span> <span style="color: #66cc66;">&#40;</span>'<span style="color: #b1b100; font-weight: bold;">dir</span> /b <span style="color: #33cc33;">%</span><span style="color: #448888;">INSTALL_HOME</span><span style="color: #33cc33;">%</span>\mysql\my.ini'<span style="color: #66cc66;">&#41;</span> <span style="color: #00b100; font-weight: bold;">do</span> <span style="color: #66cc66;">&#40;</span>
	<span style="color: #b1b100; font-weight: bold;">copy</span> c:\tmp1.tmp+&quot;<span style="color: #33cc33;">%</span><span style="color: #448888;">INSTALL_HOME</span><span style="color: #33cc33;">%</span>\mysql\<span style="color: #33cc33;">%%</span><span style="color: #448888;">i</span>&quot; c:\tmp2.tmp /y &gt;<span style="color: #0000ff; font-weight: bold;">nul</span>
	<span style="color: #b1b100; font-weight: bold;">copy</span> c:\tmp2.tmp &quot;<span style="color: #33cc33;">%</span><span style="color: #448888;">INSTALL_HOME</span><span style="color: #33cc33;">%</span>\mysql\<span style="color: #33cc33;">%%</span><span style="color: #448888;">i</span>&quot; /y &gt;<span style="color: #0000ff; font-weight: bold;">nul</span>
<span style="color: #66cc66;">&#41;</span>
<span style="color: #b1b100; font-weight: bold;">del</span> c:\tmp1.tmp /f /q
<span style="color: #b1b100; font-weight: bold;">del</span> c:\tmp2.tmp /f /q
<span style="color: #808080; font-style: italic;">
rem 设置PATH、CLASSPATH、CATALINA_HOME、JAVA_HOME，</span>
<span style="color: #808080; font-style: italic;">rem 其中路径都是相对于“INSTALL_HOME”的，可见获取这个路径的重要性</span>
<span style="color: #b1b100; font-weight: bold;">set</span> <span style="color: #448844;">PATH</span>=<span style="color: #33cc33;">%</span><span style="color: #448888;">INSTALL_HOME</span><span style="color: #33cc33;">%</span>\jdk\bin;<span style="color: #33cc33;">%</span><span style="color: #448888;">PATH</span><span style="color: #33cc33;">%</span>
<span style="color: #b1b100; font-weight: bold;">set</span> <span style="color: #448844;">CLASSPATH</span>=<span style="color: #33cc33;">%</span><span style="color: #448888;">INSTALL_HOME</span><span style="color: #33cc33;">%</span>\jdk\jre\lib\rt.jar;.
<span style="color: #b1b100; font-weight: bold;">set</span> <span style="color: #448844;">CATALINA_HOME</span>=<span style="color: #33cc33;">%</span><span style="color: #448888;">INSTALL_HOME</span><span style="color: #33cc33;">%</span>\tomcat
<span style="color: #b1b100; font-weight: bold;">set</span> <span style="color: #448844;">JAVA_HOME</span>=<span style="color: #33cc33;">%</span><span style="color: #448888;">INSTALL_HOME</span><span style="color: #33cc33;">%</span>\jdk
<span style="color: #808080; font-style: italic;">
rem 在测试中得知sc命令有时候在运用时，需要依赖telnet服务，</span>
<span style="color: #808080; font-style: italic;">rem 所以将telnet服务设置为自动并且启动它</span>
sc config TlntSvr start= auto 
net start telnet
<span style="color: #808080; font-style: italic;">
rem &quot;noinstallmysql&quot;是将要注册的mysql服务名称，</span>
<span style="color: #808080; font-style: italic;">rem 所以安全起见不管机器上有没有这个服务，先停掉，然后再删掉</span>
net stop noinstallmysql
sc delete noinstallmysql 
<span style="color: #808080; font-style: italic;">
rem 注册mysql服务，名称为“noinstallmysql”</span>
<span style="color: #808080; font-style: italic;">rem 以下两行在执行时请务必放到一行中，要不会执行出错</span>
<span style="color: #00b100; font-weight: bold;">Call</span> &quot;<span style="color: #33cc33;">%</span><span style="color: #448888;">INSTALL_HOME</span><span style="color: #33cc33;">%</span>/mysql/bin/mysqld-nt&quot; --install noinstallmysql 
                                  --defaults-file=<span style="color: #33cc33;">%</span><span style="color: #448888;">INSTALL_HOME</span><span style="color: #33cc33;">%</span>\mysql\my.ini
<span style="color: #808080; font-style: italic;">
rem 配置mysql服务，设置为自动</span>
sc config noinstallmysql start= auto
<span style="color: #808080; font-style: italic;">
rem 启动mysql服务</span>
net start noinstallmysql
<span style="color: #808080; font-style: italic;">
rem 进入tomcat下的bin目录，启动它，大功告成！</span>
<span style="color: #b1b100; font-weight: bold;">cd</span> <span style="color: #33cc33;">%</span><span style="color: #448888;">INSTALL_HOME</span><span style="color: #33cc33;">%</span>\tomcat\bin
<span style="color: #00b100; font-weight: bold;">call</span> <span style="color: #33cc33;">%</span><span style="color: #448888;">INSTALL_HOME</span><span style="color: #33cc33;">%</span>\tomcat\bin\startup.bat</pre></div></div>

</p>
<p>
启动成功之后，还记得那个index.html吗，直接点击就可以进入你的项目，如果启动不成功的话自己调整一下或者mail给我一起交流都可以。E-mail:ripflowers@gmail.com，OK，下班走人。
</p>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://ursob.org/2010/07/29/windows-bat-j2ee/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sql中触发器和游标的使用</title>
		<link>http://ursob.org/2010/06/02/sql-trigger-cursor/</link>
		<comments>http://ursob.org/2010/06/02/sql-trigger-cursor/#comments</comments>
		<pubDate>Wed, 02 Jun 2010 08:17:45 +0000</pubDate>
		<dc:creator>ripflowers</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Others]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[游标]]></category>
		<category><![CDATA[触发器]]></category>

		<guid isPermaLink="false">http://ursob.org/?p=394</guid>
		<description><![CDATA[这里说的触发器和游标的使用在sqlserver2000和sqlserver2005中测试通过，鄙人认为触发器也算是一种存储过程，触发器是在数据库中自动触发，而存储过程需要的程序中调用，语法和用法上来说应该是大同小异的，对sql的功底不深，请恕在下在此妄加揣摩，直接看代码和注释。]]></description>
			<content:encoded><![CDATA[<p>这里说的触发器和游标的使用在sqlserver2000和sqlserver2005中测试通过，鄙人认为触发器也算是一种存储过程，触发器是在数据库中自动触发，而存储过程需要的程序中调用，语法和用法上来说应该是大同小异的，对sql的功底不深，请恕在下在此妄加猜测，直接看代码和注释。</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:Courier New, Courier;"><span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TRIGGER</span> whenUpdate<span style="color: #808080; font-style: italic;">---触发器的名称</span>
  <span style="color: #993333; font-weight: bold;">ON</span> tableName<span style="color: #808080; font-style: italic;">--为表“tableName”创建触发器</span>
  <span style="color: #993333; font-weight: bold;">FOR</span> <span style="color: #993333; font-weight: bold;">UPDATE</span><span style="color: #808080; font-style: italic;">--为什么事件触发，这里当然就可以是增删改等操作了</span>
  <span style="color: #993333; font-weight: bold;">AS</span>        
	begin <span style="color: #808080; font-style: italic;">----------下边开始触发器要干的事情</span>
		Declare @cbid float<span style="color: #808080; font-style: italic;">-------声明的变量</span>
		Declare @cask float<span style="color: #808080; font-style: italic;">-------声明的变量</span>
		Declare @ctype varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">20</span><span style="color: #66cc66;">&#41;</span><span style="color: #808080; font-style: italic;">--声明的变量</span>
		<span style="color: #808080; font-style: italic;">---下边三行代码代表了为三个变量赋值，</span>
		<span style="color: #808080; font-style: italic;">---这里要理解触发器里面的两个临时的表：Deleted , Inserted 。</span>
		<span style="color: #808080; font-style: italic;">---Deleted 与Inserted分别代表</span>
		<span style="color: #808080; font-style: italic;">---“tableName”表中“旧的一条记录” 和“新的一条记录”。	</span>
		<span style="color: #993333; font-weight: bold;">SET</span> @ctype <span style="color: #66cc66;">=</span> <span style="color: #66cc66;">&#40;</span><span style="color: #993333; font-weight: bold;">SELECT</span> currencytype <span style="color: #993333; font-weight: bold;">FROM</span> Inserted<span style="color: #66cc66;">&#41;</span>
		<span style="color: #993333; font-weight: bold;">SET</span> @cbid <span style="color: #66cc66;">=</span> <span style="color: #66cc66;">&#40;</span><span style="color: #993333; font-weight: bold;">SELECT</span> fex_bid <span style="color: #993333; font-weight: bold;">FROM</span> Inserted<span style="color: #66cc66;">&#41;</span>
		<span style="color: #993333; font-weight: bold;">SET</span> @cask <span style="color: #66cc66;">=</span> <span style="color: #66cc66;">&#40;</span><span style="color: #993333; font-weight: bold;">SELECT</span> fex_ask <span style="color: #993333; font-weight: bold;">FROM</span> Inserted<span style="color: #66cc66;">&#41;</span>
&nbsp;
		Declare @sid numeric<span style="color: #808080; font-style: italic;">----------声明的变量</span>
		Declare @coinType varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span><span style="color: #808080; font-style: italic;">----------声明的变量</span>
		<span style="color: #808080; font-style: italic;">--声明游标，cur为游标的名称</span>
		Declare cur Cursor <span style="color: #993333; font-weight: bold;">FOR</span> 
			<span style="color: #808080; font-style: italic;">----这里就是查询一个表中的数据，然后将结果集给游标</span>
			<span style="color: #993333; font-weight: bold;">SELECT</span> id <span style="color: #993333; font-weight: bold;">AS</span> id<span style="color: #66cc66;">,</span>coinType <span style="color: #993333; font-weight: bold;">AS</span> coinType
					<span style="color: #993333; font-weight: bold;">FROM</span> shoutorder 
					<span style="color: #993333; font-weight: bold;">WHERE</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">=</span><span style="color: #cc66cc;">1</span>
			Open cur<span style="color: #808080; font-style: italic;">--打开游标，开始循环</span>
			<span style="color: #808080; font-style: italic;">--首先需要手动开始循环游标，</span>
			<span style="color: #808080; font-style: italic;">--并将上边查询结果集中的两个值分别赋给@sid和@coinType，</span>
			<span style="color: #808080; font-style: italic;">--主要这里的赋值是按查询字段的顺序赋值</span>
			Fetch next <span style="color: #993333; font-weight: bold;">FROM</span> cur <span style="color: #993333; font-weight: bold;">INTO</span> @sid<span style="color: #66cc66;">,</span>@coinType
			<span style="color: #808080; font-style: italic;">--------------循环体begin---------------</span>
			While @@fetch_status<span style="color: #66cc66;">=</span><span style="color: #cc66cc;">0</span> 
				Begin 
					<span style="color: #808080; font-style: italic;">---这里可有一些想要的操作判断等</span>
					<span style="color: #808080; font-style: italic;">---if和else的写法</span>
					<span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #66cc66;">&#40;</span>@sid <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">3</span> <span style="color: #993333; font-weight: bold;">AND</span> @coinType <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span>
						begin 
							<span style="color: #993333; font-weight: bold;">UPDATE</span><span style="color: #66cc66;">......</span><span style="color: #808080; font-style: italic;">--这里省略很多操作</span>
						end 
					else <span style="color: #993333; font-weight: bold;">IF</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
						begin 
&nbsp;
						end
					<span style="color: #808080; font-style: italic;">--下标下移</span>
					Fetch Next <span style="color: #993333; font-weight: bold;">FROM</span> cur <span style="color: #993333; font-weight: bold;">INTO</span> @sid<span style="color: #66cc66;">,</span>@coinType
				End 
			<span style="color: #808080; font-style: italic;">--------------循环体end-----------------	</span>
		Close cur <span style="color: #808080; font-style: italic;">--关闭游标</span>
		<span style="color: #808080; font-style: italic;">--由于游标的机制是将数据全部加载到内存中然后才操作，</span>
		<span style="color: #808080; font-style: italic;">--这里请务必释放游标</span>
		Deallocate cur
	end</pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://ursob.org/2010/06/02/sql-trigger-cursor/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Sql中获取数据库中最近几分钟数据</title>
		<link>http://ursob.org/2010/05/26/sql-recent/</link>
		<comments>http://ursob.org/2010/05/26/sql-recent/#comments</comments>
		<pubDate>Thu, 27 May 2010 03:38:03 +0000</pubDate>
		<dc:creator>ripflowers</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Others]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[sql日期运算]]></category>

		<guid isPermaLink="false">http://ursob.org/?p=387</guid>
		<description><![CDATA[获取数据库中最近的几分钟数据，或者是最近几小时，或者是几秒钟的数据..........]]></description>
			<content:encoded><![CDATA[<p>获取数据库中最近的几分钟数据，或者是最近几小时，或者是几秒钟的数据&#8230;&#8230;&#8230;.</p>
<p><a href="http://ursob.org/wp-content/uploads/2010/05/sql-recent.bmp"><img class="alignnone size-full wp-image-388" title="sql-recent" src="http://ursob.org/wp-content/uploads/2010/05/sql-recent.bmp" alt="" /></a></p>
<p>图中查询的时候最近三分钟的数据，参数<span style="color: #800000;"><em><strong>“n”</strong></em></span>代表分钟，如果说还有别的需求，比如说不按分钟查，或者是&#8230;..，如下参数供参考：</p>
<p>日期部分                       缩写<br />
year   yy,                      yyyy<br />
quarter   qq,                  q<br />
Month   mm,                  m<br />
dayofyear   dy,              y<br />
Day   dd,                      d<br />
Week   wk,                   ww<br />
Hour                            hh<br />
minute   mi,                   n<br />
second   ss,                  s<br />
millisecond                    ms</p>
]]></content:encoded>
			<wfw:commentRss>http://ursob.org/2010/05/26/sql-recent/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>NetBeans字体显示</title>
		<link>http://ursob.org/2010/05/13/netbeans_fonts/</link>
		<comments>http://ursob.org/2010/05/13/netbeans_fonts/#comments</comments>
		<pubDate>Thu, 13 May 2010 14:35:46 +0000</pubDate>
		<dc:creator>MoistRot</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://ursob.org/?p=363</guid>
		<description><![CDATA[一直没有弄好netbeans下面字体显示的锯齿问题。昨天查了下G大神，很轻松的搞定了]]></description>
			<content:encoded><![CDATA[<p>一直没有弄好netbeans下面字体显示的锯齿问题。昨天查了下G大神，很轻松的搞定了。只需要一行代码（这种方法是作用于JRE全局的，就是所有用到JRE的程序都会开启这个字体渲染，当然也可以在NB的配置文件中单独开启字体渲染）。<br />
在JDK系统配置中加上一行开启渲染参数，这个参数我知道有三个可选值。</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:Courier New, Courier;"><span style="color: #666666; font-style: italic;">#首先打开系统配置文件(需要root身份)</span>
<span style="color: #c20cb9; font-weight: bold;">vim</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>profile
<span style="color: #666666; font-style: italic;">#如果进行过JAVA环境变量配置，则在环境变量配置后面加上这样一行</span>
<span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">_JAVA_OPTIONS</span>=<span style="color: #ff0000;">'-Dawt.useSystemAAFontSettings=lcd'</span>
<span style="color: #666666; font-style: italic;">#lcd也可为“on&quot;</span></pre></div></div>

<p>完成后，重启X，我使用source /etc/profile 不起作用。</p>
<p><a title="Image Title" rel="lightbox" href="http://ursob.org/wp-content/uploads/2010/05/Screenshot-Chess-NetBeans-IDE-6.9-Beta.png"><img src="http://ursob.org/wp-content/uploads/2010/05/Screenshot-Chess-NetBeans-IDE-6.9-Beta-300x187.png" alt="NetBeans IDE 6.9 Beta" title="NetBeans IDE 6.9 Beta" width="300" height="187" class="size-medium wp-image-364" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://ursob.org/2010/05/13/netbeans_fonts/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Java的Split&#8221;.&#8221;</title>
		<link>http://ursob.org/2010/05/12/javasplit/</link>
		<comments>http://ursob.org/2010/05/12/javasplit/#comments</comments>
		<pubDate>Wed, 12 May 2010 08:09:31 +0000</pubDate>
		<dc:creator>MoistRot</dc:creator>
				<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://ursob.org/?p=351</guid>
		<description><![CDATA[字符串中含有&#8220;.&#8221;，且需要对其进行分割。下面语句得到的结果为空数组。

String s&#91;&#93; = str.split&#40;&#34;.&#34;&#41;;

必须经过转义之后才可以进行正常分割，所以应该写成：

String s&#91;&#93; = str.split&#40;&#34;\\.&#34;&#41;;

]]></description>
			<content:encoded><![CDATA[<p>字符串中含有<em>&#8220;.&#8221;</em>，且需要对其进行分割。下面语句得到的结果为空数组。</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:Courier New, Courier;"><span style="color: #003399;">String</span> s<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> str.<span style="color: #006633;">split</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;.&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>必须经过转义之后才可以进行正常分割，所以应该写成：</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:Courier New, Courier;"><span style="color: #003399;">String</span> s<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> str.<span style="color: #006633;">split</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\\</span>.&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://ursob.org/2010/05/12/javasplit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>argument type mismatch 解决方法</title>
		<link>http://ursob.org/2010/05/11/argument-type-mismatch/</link>
		<comments>http://ursob.org/2010/05/11/argument-type-mismatch/#comments</comments>
		<pubDate>Tue, 11 May 2010 06:16:06 +0000</pubDate>
		<dc:creator>MoistRot</dc:creator>
				<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://ursob.org/?p=337</guid>
		<description><![CDATA[在Struts中，
当输入页面中含有日期字符串时，如果Form中对于的字段为Date类型，则会出现“argument type mismatch”错误。
原因：
Struts的ActionServlet在接受到页面的请求后，会调用RequestUtils.populate方法对Form进行填值，而此方法又调用到BeanUtils.populate方法，而该方法进行填值时对不同类型的会进行转换，而默认的ActionServlet并没有注册相应的转换函数，所以会导致转换出现错误。
解决方法：


方法1：
Form中的日期使用String类型，在Action中自己处理String到Date的类型转换。


方法2：Form中使用java.util.Date类型，自定义一个日期转换类DateConverter（需要实现Converter接口），然后在自定义的ActionServlet或者Action基类中注册DateConverter：ConvertUtils.register(new DateConverter(), Date.class)。


看了下commons-beanutils的源码发现：BeanUtilsBean含有一个beansByClassLoader静态常量，加载时会初始化一个BeanUtilsBean实例，每次调用getInstance方法返回的都是同一个BeanUtilsBean实例。所以可以在任意地方注册 DateConverter，但要确保在调用BeanUtils.populate方法前已经注册DateConverter，所以应该可以在一个初始化的Servlet中注册,或者在Form类里面静态注册。
下面是DateConverter.java

/* @(#) DateConverter.java			2010-5-11
 * 
 * Copyright (c) 2002-2010 Maxtech, Inc.
 * 66 ZhongGuanCun East Road, BeiJing, 100086, China
 * All rights reserved.
 * 
 * This software is the confidential and proprietary information of
 * Maxtech, Inc. (&#34;Confidential Information&#34;). You shall not
 * disclose such Confidential Information and shall [...]]]></description>
			<content:encoded><![CDATA[<p>在Struts中，<br />
当输入页面中含有日期字符串时，如果Form中对于的字段为Date类型，则会出现“argument type mismatch”错误。</p>
<p>原因：<br />
Struts的ActionServlet在接受到页面的请求后，会调用RequestUtils.populate方法对Form进行填值，而此方法又调用到BeanUtils.populate方法，而该方法进行填值时对不同类型的会进行转换，而默认的ActionServlet并没有注册相应的转换函数，所以会导致转换出现错误。</p>
<p>解决方法：</p>
<ul>
<li>
方法1：<br />
Form中的日期使用String类型，在Action中自己处理String到Date的类型转换。
</li>
<li>
方法2：Form中使用java.util.Date类型，自定义一个日期转换类DateConverter（需要实现Converter接口），然后在自定义的ActionServlet或者Action基类中注册DateConverter：ConvertUtils.register(new DateConverter(), Date.class)。
</li>
</ul>
<p>看了下commons-beanutils的源码发现：BeanUtilsBean含有一个beansByClassLoader静态常量，加载时会初始化一个BeanUtilsBean实例，每次调用getInstance方法返回的都是同一个BeanUtilsBean实例。所以可以在任意地方注册 DateConverter，但要确保在调用BeanUtils.populate方法前已经注册DateConverter，所以应该可以在一个初始化的Servlet中注册,或者在Form类里面静态注册。</p>
<p>下面是DateConverter.java</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:Courier New, Courier;"><span style="color: #666666; font-style: italic;">/* @(#) DateConverter.java			2010-5-11
 * 
 * Copyright (c) 2002-2010 Maxtech, Inc.
 * 66 ZhongGuanCun East Road, BeiJing, 100086, China
 * All rights reserved.
 * 
 * This software is the confidential and proprietary information of
 * Maxtech, Inc. (&quot;Confidential Information&quot;). You shall not
 * disclose such Confidential Information and shall use it only in
 * accordance with the terms of the license agreement you entered into
 * with Maxtech.
 * 
 */</span>
<span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">cn.com.maxtech.util</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.text.ParseException</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.text.SimpleDateFormat</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.util.HashSet</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.util.Iterator</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.util.Set</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.apache.commons.beanutils.Converter</span><span style="color: #339933;">;</span>
&nbsp;
&nbsp;
<span style="color: #008000; font-style: italic; font-weight: bold;">/**
 * @TODO
 * @author liufei
 */</span>
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> DateConverter <span style="color: #000000; font-weight: bold;">implements</span> Converter <span style="color: #009900;">&#123;</span>
&nbsp;
	<span style="color: #008000; font-style: italic; font-weight: bold;">/**
     * 日期格式化对象.
     */</span>
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #003399;">SimpleDateFormat</span> df <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">SimpleDateFormat</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #008000; font-style: italic; font-weight: bold;">/**
     * 模式集合.
     */</span>
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000000; font-weight: bold;">static</span> Set<span style="color: #339933;">&lt;</span>String<span style="color: #339933;">&gt;</span> patterns <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> HashSet<span style="color: #339933;">&lt;</span>String<span style="color: #339933;">&gt;</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">static</span><span style="color: #009900;">&#123;</span>
        DateConverter.<span style="color: #006633;">patterns</span>.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;yyyy-MM-dd&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        DateConverter.<span style="color: #006633;">patterns</span>.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;yyyy-MM-dd HH:mm&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        DateConverter.<span style="color: #006633;">patterns</span>.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;yyyy-MM-dd HH:mm:ss&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        DateConverter.<span style="color: #006633;">patterns</span>.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;yyyy/MM/dd HH:mm:ss&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #008000; font-style: italic; font-weight: bold;">/**
     * 日期转换器.
     * @param type Class
     * @param value Object
     * return Date Object.
     */</span>
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #003399;">Object</span> convert<span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">Class</span> type,<span style="color: #003399;">Object</span> value<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>value <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span><span style="color: #000000; font-weight: bold;">else</span> <span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>value <span style="color: #000000; font-weight: bold;">instanceof</span> <span style="color: #003399;">String</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            <span style="color: #003399;">Object</span> dateObj <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #339933;">;</span>
            <span style="color: #003399;">Iterator</span> it <span style="color: #339933;">=</span> patterns.<span style="color: #006633;">iterator</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span>it.<span style="color: #006633;">hasNext</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                <span style="color: #000000; font-weight: bold;">try</span><span style="color: #009900;">&#123;</span>
                    <span style="color: #003399;">String</span> pattern <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span><span style="color: #009900;">&#41;</span>it.<span style="color: #006633;">next</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    df.<span style="color: #006633;">applyPattern</span><span style="color: #009900;">&#40;</span>pattern<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    dateObj <span style="color: #339933;">=</span> df.<span style="color: #006633;">parse</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span><span style="color: #009900;">&#41;</span>value<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    <span style="color: #000000; font-weight: bold;">break</span><span style="color: #339933;">;</span>
                <span style="color: #009900;">&#125;</span><span style="color: #000000; font-weight: bold;">catch</span><span style="color: #009900;">&#40;</span><span style="color: #003399;">ParseException</span> ex<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
&nbsp;
                <span style="color: #009900;">&#125;</span>
            <span style="color: #009900;">&#125;</span>
            <span style="color: #000000; font-weight: bold;">return</span> dateObj<span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span><span style="color: #000000; font-weight: bold;">else</span><span style="color: #009900;">&#123;</span>
            <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>可以在Action中注册，例如：</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:Courier New, Courier;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> DateAction <span style="color: #000000; font-weight: bold;">extends</span> StrutsAction <span style="color: #009900;">&#123;</span>
.....
      <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #009900;">&#123;</span>
		ConvertUtils.<span style="color: #006633;">register</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> DateConverter<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>, <span style="color: #003399;">Date</span>.<span style="color: #000000; font-weight: bold;">class</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
.....
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>或者Form内：</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:Courier New, Courier;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> DateForm <span style="color: #000000; font-weight: bold;">extends</span> ActionForm <span style="color: #009900;">&#123;</span>
......
 <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #009900;">&#123;</span>
		ConvertUtils.<span style="color: #006633;">register</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> DateConverter<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>, <span style="color: #003399;">Date</span>.<span style="color: #000000; font-weight: bold;">class</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
......
<span style="color: #009900;">&#125;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://ursob.org/2010/05/11/argument-type-mismatch/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Myeclipse打开struts配置文件时报错解决办法</title>
		<link>http://ursob.org/2009/10/11/myeclipse-struts-config/</link>
		<comments>http://ursob.org/2009/10/11/myeclipse-struts-config/#comments</comments>
		<pubDate>Mon, 12 Oct 2009 03:20:28 +0000</pubDate>
		<dc:creator>ripflowers</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[MyEclipse]]></category>
		<category><![CDATA[Struts]]></category>

		<guid isPermaLink="false">http://ursob.org/?p=192</guid>
		<description><![CDATA[我的Myeclipse版本是6.0，在打开struts配置文件的时候总是报一些错误，修改打开方式也不是很灵，下边介绍一下解决的办法。]]></description>
			<content:encoded><![CDATA[<p>我的Myeclipse版本是6.0，在打开struts配置文件的时候总是报一些错误，修改打开方式也不是很灵，下边介绍一下解决的办法。<br />
错误如下：<br />
<div id="attachment_193" class="wp-caption alignnone" style="width: 630px"><img src="http://ursob.org/wp-content/uploads/2009/10/myeclipse_error.jpg" alt="myeclipse报错" title="myeclipse_error" width="620" height="401" class="size-full wp-image-193" /><p class="wp-caption-text">myeclipse报错</p></div><br />
解决办法：<br />
打开项目中的.project文件，在<natures>节点下添加一个<nature>节点，内容如下：</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:Courier New, Courier;"><span style="color: #ddbb00;">&amp;lt;</span>nature<span style="color: #ddbb00;">&amp;gt;</span>
com.genuitec.eclipse.cross.easystruts.eclipse.easystrutsnature
<span style="color: #ddbb00;">&amp;lt;</span>/nature<span style="color: #ddbb00;">&amp;gt;</span></pre></div></div>

<p>保存之后，问题即可解决，当在打开配置文件的时候会提示你生成一个.mex文件，这个文件是struts配置文件编辑器中Design试图中要用到的，点击Ok。</p>
]]></content:encoded>
			<wfw:commentRss>http://ursob.org/2009/10/11/myeclipse-struts-config/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mysql noinstall版本的配置和使用</title>
		<link>http://ursob.org/2009/09/30/mysql-noinstall/</link>
		<comments>http://ursob.org/2009/09/30/mysql-noinstall/#comments</comments>
		<pubDate>Wed, 30 Sep 2009 09:05:08 +0000</pubDate>
		<dc:creator>ripflowers</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Others]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[Mysql-noinstall]]></category>

		<guid isPermaLink="false">http://ursob.org/?p=176</guid>
		<description><![CDATA[<p>mysql-noinstall,顾名思义就是mysql的非安装版本，下边总结一下它的安装和使用，以前用一次就要google一次，相信这次写一遍的话就可以记住了。这里说的是在Windows下的配置方法，Linux下还没有配置过，以后再说。</P>
<p>
mysql-noinstall版本官方下载地址：<a href="javascript:void(0);" onclick="window.open('http://dev.mysql.com/downloads/')">Mysql-noinstall官方下载</a>
</p>]]></description>
			<content:encoded><![CDATA[<p>mysql-noinstall,顾名思义就是mysql的非安装版本，下边总结一下它的安装和使用，以前用一次就要google一次，相信这次写一遍的话就可以记住了。这里说的是在Windows下的配置方法，Linux下还没有配置过，以后再说。</P></p>
<p>
mysql-noinstall版本官方下载地址：<a href="javascript:void(0);" onclick="window.open('http://dev.mysql.com/downloads/')">Mysql-noinstall官方下载</a>
</p>
<p>
下边我就以5.0版本做示范来说一下它的用法，不同版本的配置办法应该是相同的，如果不相同的话mysql就该完蛋了。下面的配置请确保你已经把你自己机器上关于mysql的服务全部停止掉。
</p>
<p>
首先把下载的文件解压，解压之后我把解压的文件放在了D盘根目录，为方便使用我把解压的文件夹重命名为mysql-5.0，形成的目录就是d:/mysql-5.0。当然了也可以放在你想放的地方，但是路径中最好不要存在中文，以免不必要的麻烦。
</p>
<p>
mysql的配置一般都会在my.ini文件中，但是解压的版本中是不存在这个文件的，所以我们要先创建这样一个文件。很简单，打开mysql-5.0目录，这个目录下会有my-large.ini和my-small.ini两个文件，随便选一个文件复制粘贴到当前目录，然后重命名为my.ini。然后我们来配置my.ini，首先在文件的头上加上：
</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:Courier New, Courier;"><span style="color: #7a0874; font-weight: bold;">&#91;</span>WinMySQLAdmin<span style="color: #7a0874; font-weight: bold;">&#93;</span>
<span style="color: #007800;">Server</span>=D:\mysql-<span style="color: #000000;">5.0</span>\bin\mysqld-nt.exe</pre></div></div>

<p>接着在[mysqld]标签下添加以下几行代码：</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:Courier New, Courier;"><span style="color: #007800;">basedir</span>=D:<span style="color: #000000; font-weight: bold;">/</span>mysql-<span style="color: #000000;">5.0</span><span style="color: #000000; font-weight: bold;">/</span>
<span style="color: #007800;">datadir</span>=D:<span style="color: #000000; font-weight: bold;">/</span>mysql-<span style="color: #000000;">5.0</span><span style="color: #000000; font-weight: bold;">/</span>data<span style="color: #000000; font-weight: bold;">/</span>
default-character-set=utf8</pre></div></div>

<p>这里的路径一定要改成你自己的路径。配置完毕之后我们来注册mysql服务。打开Dos命令窗口，进入到mysql的bin目录，<br />
我的路径为d:/mysql-5.0，运行命令：</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:Courier New, Courier;"><span style="color: #666666; font-style: italic;">#mysql-noinstall为注册的服务名</span>
mysqld <span style="color: #660033;">--install</span> mysql-noinstall <span style="color: #660033;">--defaults-file</span>=D:\mysql-<span style="color: #000000;">5.0</span>\my.ini</pre></div></div>

<p>运行成功之后，我们测试一下是否安装成功。</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:Courier New, Courier;"><span style="color: #666666; font-style: italic;">#启动mysql-noinstall服务</span>
net start mysql-noinstall</pre></div></div>

<p>启动成功之后就可以让它给我们干活了。操作命令如下图:<br />
<img class="alignnone size-full wp-image-177" title="mysql-noinstall" src="http://ursob.org/wp-content/uploads/2009/09/mysql-noinstall.jpg" alt="mysql-noinstall" width="664" height="600" /></p>
]]></content:encoded>
			<wfw:commentRss>http://ursob.org/2009/09/30/mysql-noinstall/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Hql中sum函数的高级应用</title>
		<link>http://ursob.org/2009/09/27/hql-sum/</link>
		<comments>http://ursob.org/2009/09/27/hql-sum/#comments</comments>
		<pubDate>Mon, 28 Sep 2009 01:22:35 +0000</pubDate>
		<dc:creator>ripflowers</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Others]]></category>
		<category><![CDATA[Hibernate]]></category>
		<category><![CDATA[hql]]></category>
		<category><![CDATA[sql聚合函数]]></category>

		<guid isPermaLink="false">http://ursob.org/?p=155</guid>
		<description><![CDATA[参加工作也一年又零了，但一直以来对Sql有一种敬畏的心理，可能最多的应该是“畏”的心理，主要是基础没有打好，对sql的应用也知道的甚少。昨天偶然间发现一个对于统计数据来说比较好用sql语句，下边作一下笔记。这里说的是hql语句，无所谓了，他们之间虽然说有很多不同，但是聚合函数的用法应该都是大同小异的。]]></description>
			<content:encoded><![CDATA[<p>参加工作也一年又零了，但一直以来对Sql有一种敬畏的心理，可能更多的应该是“畏”的心理，主要是基础没有打好，对sql的应用也知道的甚少。昨天偶然间发现一个对于统计数据来说比较好用sql语句，下边作一下笔记。这里说的是hql语句，无所谓了，他们之间虽然说有很多不同，但是聚合函数的用法应该都是大同小异的。<br />
首先来看表结构，我就直接贴bean中的代码了：</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:Courier New, Courier;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> Assign <span style="color: #009900;">&#123;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">private</span> <span style="color: #003399;">Long</span> id<span style="color: #339933;">;</span>
	<span style="color: #666666; font-style: italic;">//关联派工的人员</span>
	<span style="color: #000000; font-weight: bold;">private</span> SysUser assignUser<span style="color: #339933;">;</span>
	<span style="color: #666666; font-style: italic;">//标识流程是否已经跑完，1或者是null是没有跑完，2是已经跑完的</span>
	<span style="color: #000000; font-weight: bold;">private</span> <span style="color: #003399;">String</span> wfStatus<span style="color: #339933;">;</span>
	<span style="color: #666666; font-style: italic;">//状态(有三种状态，分别用0，1，2来表示)</span>
	<span style="color: #000000; font-weight: bold;">private</span> <span style="color: #003399;">String</span> status<span style="color: #339933;">;</span> 
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>“assignUser”是关联的用户，我想要实现的功能是一个用户在流程跑完之后三种状态下分别有多少条数据，也就是说一个用户在流程跑完的数据中status为0的有多少条，status为1的有多少条&#8230;&#8230;，实现思想：首先我们肯定要以用户分组来查，也就是说group by的字段应该是用户，分组之后我们要把status为0，1，2的数据的count值算出来，按照逻辑来写我们会写成count(status=0),count(status=1),count(status=2)，所以按照我们的思路最后形成的hql语句为：</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:Courier New, Courier;"><span style="color: #993333; font-weight: bold;">SELECT</span> new list<span style="color: #66cc66;">&#40;</span>a<span style="color: #66cc66;">.</span>assignUser<span style="color: #66cc66;">.</span>userName<span style="color: #66cc66;">,</span>count<span style="color: #66cc66;">&#40;</span>a<span style="color: #66cc66;">.</span><span style="color: #993333; font-weight: bold;">STATUS</span><span style="color: #66cc66;">=</span><span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>count<span style="color: #66cc66;">&#40;</span>a<span style="color: #66cc66;">.</span><span style="color: #993333; font-weight: bold;">STATUS</span><span style="color: #66cc66;">=</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
count<span style="color: #66cc66;">&#40;</span>a<span style="color: #66cc66;">.</span><span style="color: #993333; font-weight: bold;">STATUS</span><span style="color: #66cc66;">=</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">FROM</span> Assign a <span style="color: #993333; font-weight: bold;">WHERE</span> a<span style="color: #66cc66;">.</span>wfStatus <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">2</span> <span style="color: #993333; font-weight: bold;">GROUP</span> <span style="color: #993333; font-weight: bold;">BY</span> a<span style="color: #66cc66;">.</span>assignUser<span style="color: #66cc66;">.</span>userName</pre></div></div>

<p>这样写出来的结果在mysql中测试通过，但是在oracle中却一直抛出“expecting CLOSE, found &#8216;=&#8217;”异常，最后改造成为：</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:Courier New, Courier;"><span style="color: #993333; font-weight: bold;">SELECT</span> new list<span style="color: #66cc66;">&#40;</span>a<span style="color: #66cc66;">.</span>assignUser<span style="color: #66cc66;">.</span>userName<span style="color: #66cc66;">,</span>
sum<span style="color: #66cc66;">&#40;</span>CASE WHEN a<span style="color: #66cc66;">.</span><span style="color: #993333; font-weight: bold;">STATUS</span> <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">0</span> THEN <span style="color: #cc66cc;">1</span> ELSE <span style="color: #cc66cc;">0</span> END<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
sum<span style="color: #66cc66;">&#40;</span>CASE WHEN a<span style="color: #66cc66;">.</span><span style="color: #993333; font-weight: bold;">STATUS</span> <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">1</span> THEN <span style="color: #cc66cc;">1</span> ELSE <span style="color: #cc66cc;">0</span> END<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
sum<span style="color: #66cc66;">&#40;</span>CASE WHEN a<span style="color: #66cc66;">.</span><span style="color: #993333; font-weight: bold;">STATUS</span> <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">2</span> THEN <span style="color: #cc66cc;">1</span> ELSE <span style="color: #cc66cc;">0</span> END<span style="color: #66cc66;">&#41;</span> 
<span style="color: #993333; font-weight: bold;">FROM</span> Assign a <span style="color: #993333; font-weight: bold;">WHERE</span> a<span style="color: #66cc66;">.</span>wfStatus <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">2</span> <span style="color: #993333; font-weight: bold;">GROUP</span> <span style="color: #993333; font-weight: bold;">BY</span> a<span style="color: #66cc66;">.</span>assignUser<span style="color: #66cc66;">.</span>userName</pre></div></div>

<p>最后的结果经测试在mysql和oracle中都可以正常运行，采用最后这种写法有下面几个好处，<br />
1，在高级语言中，CASE的可以用IF来替代，但是在SQL中不行；<br />
2，CASE可以用于SQL语句和SQL存储过程、触发器，IF只能用于存储过程和触发器。因为CASE是SQL标准定义的，在SQL过程和触发器中，用IF替代CASE代价都相当的高，相当的麻烦，难以实现；<br />
3，就是数据库兼容性好；<br />
4，再一个就是这种写法是使用了sum函数来实现count函数的功效，但是除了实现count函数的功效，它还可以实现别的功能，看最后的hql代码中“THEN”后面我写了1，这里的“1”可以是数值也可以是字段名称，说到这里应该可以明白我的意思了。<br />
最后说一下hql这种写法取值的方法：</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:Courier New, Courier;"><span style="color: #003399;">StringBuffer</span> hql <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">StringBuffer</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;select new list(&quot;</span><span style="color: #339933;">+</span>
<span style="color: #0000ff;">&quot;a.assignUser.userName&quot;</span><span style="color: #339933;">+</span>
<span style="color: #0000ff;">&quot;sum(CASE WHEN a.status = 0 THEN 1 ELSE 0 END),&quot;</span><span style="color: #339933;">+</span>
<span style="color: #0000ff;">&quot;sum(CASE WHEN a.status = 1 THEN 1 ELSE 0 END),&quot;</span><span style="color: #339933;">+</span>
<span style="color: #0000ff;">&quot;sum(CASE WHEN a.status = 2 THEN 1 ELSE 0 END) &quot;</span><span style="color: #339933;">+</span>
<span style="color: #0000ff;">&quot;from Assign a where a.wfStatus = 2 group by a.assignUser.userName&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
Query query <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">getSession</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">createQuery</span><span style="color: #009900;">&#40;</span>hql.<span style="color: #006633;">toString</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
List<span style="color: #339933;">&lt;</span>List<span style="color: #339933;">&gt;</span> list <span style="color: #339933;">=</span>  query.<span style="color: #006633;">list</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>list <span style="color: #339933;">!=</span> <span style="color: #000066; font-weight: bold;">null</span> <span style="color: #339933;">&amp;&amp;</span> list.<span style="color: #006633;">size</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">List</span> temp <span style="color: #339933;">:</span> list<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #003399;">String</span> userName <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span><span style="color: #009900;">&#41;</span>temp.<span style="color: #006633;">get</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #003399;">Integer</span> status0 <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">Integer</span><span style="color: #009900;">&#41;</span>temp.<span style="color: #006633;">get</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #003399;">Integer</span> status1 <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">Integer</span><span style="color: #009900;">&#41;</span>temp.<span style="color: #006633;">get</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #003399;">Integer</span> status2 <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">Integer</span><span style="color: #009900;">&#41;</span>temp.<span style="color: #006633;">get</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">3</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #666666; font-style: italic;">/********************END****************************/</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://ursob.org/2009/09/27/hql-sum/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Java中关于文件操作的几个方法</title>
		<link>http://ursob.org/2009/09/25/java-file-operation/</link>
		<comments>http://ursob.org/2009/09/25/java-file-operation/#comments</comments>
		<pubDate>Fri, 25 Sep 2009 09:04:19 +0000</pubDate>
		<dc:creator>ripflowers</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Others]]></category>
		<category><![CDATA[java文件操作]]></category>

		<guid isPermaLink="false">http://ursob.org/?p=127</guid>
		<description><![CDATA[懒得说了，直接看代码吧。]]></description>
			<content:encoded><![CDATA[<p>懒得说了，直接看代码吧。</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:Courier New, Courier;">package org<span style="color: #66cc66;">.</span>ursob<span style="color: #66cc66;">.</span>util;
&nbsp;
import java<span style="color: #66cc66;">.</span>io<span style="color: #66cc66;">.</span>File;
public class FileUtil <span style="color: #66cc66;">&#123;</span>
&nbsp;
	public FileUtil<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
&nbsp;
	<span style="color: #66cc66;">&#125;</span>
	<span style="color: #808080; font-style: italic;">/**
	 * 获得目录下文件及目录的个数
	 * @param File f
	 * @return
	 * @throws Exception
	 */</span>
	public static Integer getFileCount<span style="color: #66cc66;">&#40;</span>File f<span style="color: #66cc66;">&#41;</span> 
							throws Exception <span style="color: #66cc66;">&#123;</span>
		Integer size <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">0</span>;
		File flist<span style="color: #66cc66;">&#91;</span><span style="color: #66cc66;">&#93;</span> <span style="color: #66cc66;">=</span> f<span style="color: #66cc66;">.</span>listFiles<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #993333; font-weight: bold;">FOR</span> <span style="color: #66cc66;">&#40;</span>int i <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">0</span>; flist !<span style="color: #66cc66;">=</span> <span style="color: #993333; font-weight: bold;">NULL</span> &amp;&amp; i <span style="color: #66cc66;">&lt;</span> flist<span style="color: #66cc66;">.</span>length; i<span style="color: #66cc66;">++</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
			<span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #66cc66;">&#40;</span>flist<span style="color: #66cc66;">&#91;</span>i<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">.</span>isDirectory<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
				continue;
			<span style="color: #66cc66;">&#125;</span> else <span style="color: #66cc66;">&#123;</span>
				size <span style="color: #66cc66;">+=</span> flist<span style="color: #66cc66;">&#91;</span>i<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">.</span>length<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
			<span style="color: #66cc66;">&#125;</span>
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #993333; font-weight: bold;">RETURN</span> size;
	<span style="color: #66cc66;">&#125;</span>
	<span style="color: #808080; font-style: italic;">/**
	 * 获得目录下文件及目录的个数
	 * @param File f
	 * @return
	 * @throws Exception
	 */</span>
	public static Integer getPathSize<span style="color: #66cc66;">&#40;</span>File f<span style="color: #66cc66;">&#41;</span> 
							throws Exception <span style="color: #66cc66;">&#123;</span>
		File<span style="color: #66cc66;">&#91;</span><span style="color: #66cc66;">&#93;</span> files <span style="color: #66cc66;">=</span> f<span style="color: #66cc66;">.</span>listFiles<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #993333; font-weight: bold;">RETURN</span> files <span style="color: #66cc66;">==</span> <span style="color: #993333; font-weight: bold;">NULL</span> ? <span style="color: #cc66cc;">0</span> : files<span style="color: #66cc66;">.</span>length;
	<span style="color: #66cc66;">&#125;</span>
&nbsp;
	<span style="color: #808080; font-style: italic;">/**递归删除文件
	 * @param File file
	 * @return
	 */</span>
	public static <span style="color: #993333; font-weight: bold;">BOOLEAN</span> delFiles<span style="color: #66cc66;">&#40;</span>File file<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
		<span style="color: #993333; font-weight: bold;">BOOLEAN</span> flag <span style="color: #66cc66;">=</span> false;
		try <span style="color: #66cc66;">&#123;</span>
			<span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #66cc66;">&#40;</span>file<span style="color: #66cc66;">.</span><span style="color: #993333; font-weight: bold;">EXISTS</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
				<span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #66cc66;">&#40;</span>file<span style="color: #66cc66;">.</span>isDirectory<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
					String<span style="color: #66cc66;">&#91;</span><span style="color: #66cc66;">&#93;</span> contents <span style="color: #66cc66;">=</span> file<span style="color: #66cc66;">.</span>list<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
					<span style="color: #993333; font-weight: bold;">FOR</span> <span style="color: #66cc66;">&#40;</span>int i <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">0</span>; i <span style="color: #66cc66;">&lt;</span> contents<span style="color: #66cc66;">.</span>length; i<span style="color: #66cc66;">++</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
						File tempFile <span style="color: #66cc66;">=</span> new File
						<span style="color: #66cc66;">&#40;</span>file<span style="color: #66cc66;">.</span>getAbsolutePath<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">+</span> <span style="color: #ff0000;">&quot;/&quot;</span><span style="color: #66cc66;">+</span> contents<span style="color: #66cc66;">&#91;</span>i<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>;
						<span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #66cc66;">&#40;</span>tempFile<span style="color: #66cc66;">.</span><span style="color: #993333; font-weight: bold;">EXISTS</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
							<span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #66cc66;">&#40;</span>tempFile<span style="color: #66cc66;">.</span>isFile<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
								flag <span style="color: #66cc66;">=</span> tempFile<span style="color: #66cc66;">.</span><span style="color: #993333; font-weight: bold;">DELETE</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
							<span style="color: #66cc66;">&#125;</span> else <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #66cc66;">&#40;</span>tempFile<span style="color: #66cc66;">.</span>isDirectory<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
								delFiles<span style="color: #66cc66;">&#40;</span>tempFile<span style="color: #66cc66;">&#41;</span>;
							<span style="color: #66cc66;">&#125;</span>
						<span style="color: #66cc66;">&#125;</span> else <span style="color: #66cc66;">&#123;</span>
							throw new RuntimeException<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;File not exist!&quot;</span><span style="color: #66cc66;">&#41;</span>;
						<span style="color: #66cc66;">&#125;</span>
					<span style="color: #66cc66;">&#125;</span>
				<span style="color: #66cc66;">&#125;</span>
				flag <span style="color: #66cc66;">=</span> file<span style="color: #66cc66;">.</span><span style="color: #993333; font-weight: bold;">DELETE</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
			<span style="color: #66cc66;">&#125;</span> else <span style="color: #66cc66;">&#123;</span>
				throw new RuntimeException<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;File not exist!&quot;</span><span style="color: #66cc66;">&#41;</span>;
			<span style="color: #66cc66;">&#125;</span>
		<span style="color: #66cc66;">&#125;</span> catch <span style="color: #66cc66;">&#40;</span>Exception e<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
			flag <span style="color: #66cc66;">=</span> false;
			e<span style="color: #66cc66;">.</span>printStackTrace<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
		<span style="color: #993333; font-weight: bold;">RETURN</span> flag;
	<span style="color: #66cc66;">&#125;</span>
&nbsp;
	<span style="color: #808080; font-style: italic;">/** 
	 * 移动指定文件夹内的全部文件 
	 * @param fromDir 待移动的文件 
	 * @param toDir   目标文件目录 
	 * @throws Exception 
	 */</span>
	public static void fileMove<span style="color: #66cc66;">&#40;</span>String <span style="color: #993333; font-weight: bold;">FROM</span><span style="color: #66cc66;">,</span> String <span style="color: #993333; font-weight: bold;">TO</span><span style="color: #66cc66;">&#41;</span> 
										throws Exception <span style="color: #66cc66;">&#123;</span>
		try <span style="color: #66cc66;">&#123;</span>
			File dir <span style="color: #66cc66;">=</span> new File<span style="color: #66cc66;">&#40;</span><span style="color: #993333; font-weight: bold;">FROM</span><span style="color: #66cc66;">&#41;</span>;
			<span style="color: #66cc66;">//</span> 文件一览 
			File<span style="color: #66cc66;">&#91;</span><span style="color: #66cc66;">&#93;</span> files <span style="color: #66cc66;">=</span> dir<span style="color: #66cc66;">.</span>listFiles<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
			<span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #66cc66;">&#40;</span>files <span style="color: #66cc66;">==</span> <span style="color: #993333; font-weight: bold;">NULL</span><span style="color: #66cc66;">&#41;</span>
				<span style="color: #993333; font-weight: bold;">RETURN</span>;
			<span style="color: #66cc66;">//</span> 目标 
			File moveDir <span style="color: #66cc66;">=</span> new File<span style="color: #66cc66;">&#40;</span><span style="color: #993333; font-weight: bold;">TO</span><span style="color: #66cc66;">&#41;</span>;
			<span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #66cc66;">&#40;</span>!moveDir<span style="color: #66cc66;">.</span><span style="color: #993333; font-weight: bold;">EXISTS</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
				moveDir<span style="color: #66cc66;">.</span>mkdirs<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
			<span style="color: #66cc66;">&#125;</span>
			<span style="color: #66cc66;">//</span> 文件移动 
			<span style="color: #993333; font-weight: bold;">FOR</span> <span style="color: #66cc66;">&#40;</span>int i <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">0</span>; i &amp;lt; files<span style="color: #66cc66;">.</span>length; i<span style="color: #66cc66;">++</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
				<span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #66cc66;">&#40;</span>files<span style="color: #66cc66;">&#91;</span>i<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">.</span>isDirectory<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
					fileMove<span style="color: #66cc66;">&#40;</span>files<span style="color: #66cc66;">&#91;</span>i<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">.</span>getPath<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span> <span style="color: #993333; font-weight: bold;">TO</span> <span style="color: #66cc66;">+</span> <span style="color: #ff0000;">&quot;<span style="color: #000099; font-weight: bold;">\\</span>&quot;</span> <span style="color: #66cc66;">+</span> files<span style="color: #66cc66;">&#91;</span>i<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">.</span>getName<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
					<span style="color: #66cc66;">//</span> 成功，删除原文件 
					files<span style="color: #66cc66;">&#91;</span>i<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">.</span><span style="color: #993333; font-weight: bold;">DELETE</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
				<span style="color: #66cc66;">&#125;</span>
				File moveFile <span style="color: #66cc66;">=</span> new File<span style="color: #66cc66;">&#40;</span>moveDir<span style="color: #66cc66;">.</span>getPath<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">+</span> <span style="color: #ff0000;">&quot;<span style="color: #000099; font-weight: bold;">\\</span>&quot;</span>
						<span style="color: #66cc66;">+</span> files<span style="color: #66cc66;">&#91;</span>i<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">.</span>getName<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
				<span style="color: #66cc66;">//</span> 目标文件夹下存在的话，删除 
				<span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #66cc66;">&#40;</span>moveFile<span style="color: #66cc66;">.</span><span style="color: #993333; font-weight: bold;">EXISTS</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
					moveFile<span style="color: #66cc66;">.</span><span style="color: #993333; font-weight: bold;">DELETE</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
				<span style="color: #66cc66;">&#125;</span>
				files<span style="color: #66cc66;">&#91;</span>i<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">.</span>renameTo<span style="color: #66cc66;">&#40;</span>moveFile<span style="color: #66cc66;">&#41;</span>;
			<span style="color: #66cc66;">&#125;</span>
		<span style="color: #66cc66;">&#125;</span> catch <span style="color: #66cc66;">&#40;</span>Exception e<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
			throw e;
		<span style="color: #66cc66;">&#125;</span>
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://ursob.org/2009/09/25/java-file-operation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
