﻿<?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-Javaren就是爪洼人！</title><link>http://www.blogjava.net/javaren/</link><description>一起来研究java</description><language>zh-cn</language><lastBuildDate>Tue, 12 May 2026 21:40:48 GMT</lastBuildDate><pubDate>Tue, 12 May 2026 21:40:48 GMT</pubDate><ttl>60</ttl><item><title>mybatis 3.0.2 试用小记</title><link>http://www.blogjava.net/javaren/archive/2010/09/27/mybatis_3_x_example.html</link><dc:creator>Terry Lee</dc:creator><author>Terry Lee</author><pubDate>Mon, 27 Sep 2010 04:22:00 GMT</pubDate><guid>http://www.blogjava.net/javaren/archive/2010/09/27/mybatis_3_x_example.html</guid><wfw:comment>http://www.blogjava.net/javaren/comments/332226.html</wfw:comment><comments>http://www.blogjava.net/javaren/archive/2010/09/27/mybatis_3_x_example.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/javaren/comments/commentRss/332226.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/javaren/services/trackbacks/332226.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;&nbsp; 以前用过一次ibatis2.x, 最近看到它改名了,并且已经升级到3.0.2, 就下载来尝试了下,下面简单说下, 希望能给想尝试不同ORM框架的朋友一些借鉴，我使用的是MySQL 5.1.x数据库。&nbsp;&nbsp;&nbsp; 首先, mybatis也有generator, 叫abator, 需要自己从svn上checkout出来:&nbs...&nbsp;&nbsp;<a href='http://www.blogjava.net/javaren/archive/2010/09/27/mybatis_3_x_example.html'>阅读全文</a><img src ="http://www.blogjava.net/javaren/aggbug/332226.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/javaren/" target="_blank">Terry Lee</a> 2010-09-27 12:22 <a href="http://www.blogjava.net/javaren/archive/2010/09/27/mybatis_3_x_example.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>FFmpeg for Linux编码3gp时的问题</title><link>http://www.blogjava.net/javaren/archive/2009/06/03/ffmpeg_encoder_problem.html</link><dc:creator>Terry Lee</dc:creator><author>Terry Lee</author><pubDate>Wed, 03 Jun 2009 06:07:00 GMT</pubDate><guid>http://www.blogjava.net/javaren/archive/2009/06/03/ffmpeg_encoder_problem.html</guid><wfw:comment>http://www.blogjava.net/javaren/comments/279802.html</wfw:comment><comments>http://www.blogjava.net/javaren/archive/2009/06/03/ffmpeg_encoder_problem.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/javaren/comments/commentRss/279802.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/javaren/services/trackbacks/279802.html</trackback:ping><description><![CDATA[系统环境如下:<br />
软件: CentOS-4.4 x86_64，FFmpeg 0.5 <br />
硬件: Intel(R) Xeon(R) CPU E5405 &#160;@ 2.00GHz<br />
<br />
FFmpeg for Linux的安装这里就不讨论的，感兴趣的去看我另外一个文章:<a href="http://www.blogjava.net/javaren/articles/install_ffmpeg_on_linux_64bit.html">http://www.blogjava.net/javaren/articles/install_ffmpeg_on_linux_64bit.html</a><br />
<br />
<br />
问题: 将尺寸为QVGA、码率200kbps左右的flv格式视频编码为22-110kbps码率，QCIF尺寸的3gp视频，采用CBR编码方式时，H.263的3gp码率控制效果非常好，几乎完美，编码参数如下:<br />
<div style="background-color: #eeeeee; font-size: 13px; border-left-color: #cccccc; padding-right: 5px; padding-bottom: 4px; padding-left: 4px; padding-top: 4px; width: 98%; word-break: break-all; "><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000; ">ffmpeg&#160;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">i&#160;</span><span style="color: #000000; ">/</span><span style="color: #000000; ">opt</span><span style="color: #000000; ">/</span><span style="color: #000000; ">ready</span><span style="color: #000000; ">/</span><span style="color: #000000; ">flv</span><span style="color: #000000; ">/</span><span style="color: #000000; ">jzxsrl.flv&#160;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">vcodec&#160;h263&#160;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">b 110k&#160;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">minrate 110k&#160;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">maxrate&#160;110k&#160;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">bufsize 110k&#160;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">r&#160;</span><span style="color: #000000; ">12</span><span style="color: #000000; ">&#160;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">acodec&#160;libfaac&#160;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">ab&#160;12k&#160;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">ar&#160;</span><span style="color: #000000; ">8000</span><span style="color: #000000; ">&#160;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">ac&#160;</span><span style="color: #000000; ">1</span><span style="color: #000000; ">&#160;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">s&#160;176x144&#160;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">padtop&#160;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">&#160;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">padbottom&#160;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">&#160;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">padleft&#160;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">&#160;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">padright&#160;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">&#160;</span><span style="color: #000000; ">/</span><span style="color: #000000; ">opt</span><span style="color: #000000; ">/</span><span style="color: #000000; ">movies</span><span style="color: #000000; ">/</span><span style="color: #000000; ">3gp</span><span style="color: #000000; ">/</span><span style="color: #000000; ">jzxsrl_3dtd.3gp</span></div>
<br />
但是采用H.264编码时，码率突然比要求的高出不少(应用要求不能高出+2kbps，或低于-10kbps)，编码参数如下:<br />
<br />
<div style="background-color: #eeeeee; font-size: 13px; border-left-color: #cccccc; padding-right: 5px; padding-bottom: 4px; padding-left: 4px; padding-top: 4px; width: 98%; word-break: break-all; "><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000; ">ffmpeg&#160;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">i&#160;</span><span style="color: #000000; ">/</span><span style="color: #000000; ">opt</span><span style="color: #000000; ">/</span><span style="color: #000000; ">ready</span><span style="color: #000000; ">/</span><span style="color: #000000; ">flv</span><span style="color: #000000; ">/</span><span style="color: #000000; ">jzxsrl.flv&#160;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">vcodec&#160;libx264&#160;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">b 110k&#160;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">minrate 110k&#160;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">maxrate&#160;110k&#160;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">bufsize 110k&#160;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">r&#160;</span><span style="color: #000000; ">12</span><span style="color: #000000; ">&#160;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">acodec&#160;libfaac&#160;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">ab&#160;12k&#160;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">ar&#160;</span><span style="color: #000000; ">8000</span><span style="color: #000000; ">&#160;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">ac&#160;</span><span style="color: #000000; ">1</span><span style="color: #000000; ">&#160;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">s&#160;176x144&#160;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">padtop&#160;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">&#160;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">padbottom&#160;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">&#160;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">padleft&#160;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">&#160;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">padright&#160;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">&#160;</span><span style="color: #000000; ">/</span><span style="color: #000000; ">opt</span><span style="color: #000000; ">/</span><span style="color: #000000; ">movies</span><span style="color: #000000; ">/</span><span style="color: #000000; ">3gp</span><span style="color: #000000; ">/</span><span style="color: #000000; ">jzxsrl_hdtd.3gp</span></div>
编码完毕后检查生成的3gp文件，发现码率为118kbps，高了6kbps，是不合格的，对比H.263，自己猜测问题可能会出在libx264编码支持库上，准备更换个版本尝试一下。<br />
<br />
试验结果待续...<br />
<br />
<img src ="http://www.blogjava.net/javaren/aggbug/279802.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/javaren/" target="_blank">Terry Lee</a> 2009-06-03 14:07 <a href="http://www.blogjava.net/javaren/archive/2009/06/03/ffmpeg_encoder_problem.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>VirtualBox通过设置端口映射实现Host和Client通信</title><link>http://www.blogjava.net/javaren/archive/2009/03/16/260014.html</link><dc:creator>Terry Lee</dc:creator><author>Terry Lee</author><pubDate>Mon, 16 Mar 2009 06:35:00 GMT</pubDate><guid>http://www.blogjava.net/javaren/archive/2009/03/16/260014.html</guid><wfw:comment>http://www.blogjava.net/javaren/comments/260014.html</wfw:comment><comments>http://www.blogjava.net/javaren/archive/2009/03/16/260014.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/javaren/comments/commentRss/260014.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/javaren/services/trackbacks/260014.html</trackback:ping><description><![CDATA[VirtualBox 是 Sun公司不错的一款开源虚拟机软件，免费小巧好用，可以设置OEM，可以设置通过端口映射来实现Host和Client之间的通信，美中不足的是性能比商业软件VMWare稍差些。<br />
如果你看过VirtualBox的用户手册，在6.4.1 Configuring port forwarding with NAT会有详细端口映射的介绍，下面我就举个例子说明：<br />
我建立的虚拟机名称为"CentOS-5.2"，网络采用默认的PCnet-FAST III(NAT)，要设置端口映射，必须关闭所有虚拟主机和主程序，然后在DOS运行(如果是Vista请用管理员权限进入DOS):<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">C:<br />
CD C:\Program&nbsp;Files\Sun\xVM&nbsp;VirtualBox<br />
VBoxManage&nbsp;setextradata&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">CentOS-5.2</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/Protocol</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;TCP<br />
VBoxManage&nbsp;setextradata&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">CentOS-5.2</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/GuestPort</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">22</span><span style="color: #000000;"><br />
VBoxManage&nbsp;setextradata&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">CentOS-5.2</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/HostPort</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">22</span><span style="color: #000000;"><br />
VBoxManage&nbsp;setextradata&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">CentOS-5.2</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">VBoxInternal/Devices/pcnet/0/LUN#0/Config/guesthttp/Protocol</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;TCP<br />
VBoxManage&nbsp;setextradata&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">CentOS-5.2</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">VBoxInternal/Devices/pcnet/0/LUN#0/Config/guesthttp/GuestPort</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">80</span><span style="color: #000000;"><br />
VBoxManage&nbsp;setextradata&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">CentOS-5.2</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">VBoxInternal/Devices/pcnet/0/LUN#0/Config/guesthttp/HostPort</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">80</span><span style="color: #000000;"><br />
VBoxManage&nbsp;setextradata&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">CentOS-5.2</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">VBoxInternal/Devices/pcnet/0/LUN#0/Config/guesttomcat/Protocol</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;TCP<br />
VBoxManage&nbsp;setextradata&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">CentOS-5.2</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">VBoxInternal/Devices/pcnet/0/LUN#0/Config/guesttomcat/GuestPort</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">8080</span><span style="color: #000000;"><br />
VBoxManage&nbsp;setextradata&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">CentOS-5.2</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">VBoxInternal/Devices/pcnet/0/LUN#0/Config/guesttomcat/HostPort</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">8080</span><span style="color: #000000;"><br />
</span></div>
第一行是切换到C盘，然后进入VirtualBox安装目录，使用里面的<span style="color: #000000;">VBoxManage管理程序。注意"CentOS-5.2"</span>改成你的虚拟机名称，"pcnet"是默认网卡的名称，如果你选用的是Intel网卡要改成"e1000"，紧接着后面是端口顺序，从0开始，Protocl可以是TCP也可以是UDP。<br />
有人觉得比VMWare来说貌似很麻烦，其实不然。首先，VirtualBox的设置都是通过VBoxMange命令或者修改xml来实现，让用户可以方便自己定义，比较安全；另外，像我这种经常需要Linux来测试的开发者来说，如果在没有网络的环境时没法方便的连接远程网络，但是连接虚拟主机很方便的，直接用localhost或127.0.0.1访问，对于VMWare来说你本机和虚拟主机都要设置固定IP，一旦你从家里跑到公司，可能还得手动修改IP，所以还是VirtualBox更方便些。<br />
<br />
<img src ="http://www.blogjava.net/javaren/aggbug/260014.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/javaren/" target="_blank">Terry Lee</a> 2009-03-16 14:35 <a href="http://www.blogjava.net/javaren/archive/2009/03/16/260014.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>sourceforge.net被封了，真够郁闷的</title><link>http://www.blogjava.net/javaren/archive/2008/07/09/213577.html</link><dc:creator>Terry Lee</dc:creator><author>Terry Lee</author><pubDate>Wed, 09 Jul 2008 03:51:00 GMT</pubDate><guid>http://www.blogjava.net/javaren/archive/2008/07/09/213577.html</guid><wfw:comment>http://www.blogjava.net/javaren/comments/213577.html</wfw:comment><comments>http://www.blogjava.net/javaren/archive/2008/07/09/213577.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.blogjava.net/javaren/comments/commentRss/213577.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/javaren/services/trackbacks/213577.html</trackback:ping><description><![CDATA[技术无国界，无政治，非要封个网站阻碍国人软件行业的发展，真够郁闷的，也不知道是按照哪条法规啥破理由封了sourceforge.net<br />
spring和hibernate，这两个好东东都得想方设法去台湾一些大学的FTP下载，本来很好的资源却用不了，心中郁闷之极，不吐不快！<br />
<br />
另外，可以通过台湾的镜像站点访问：<br />
ftp://sourceforge.nchc.org.tw/ 
<img src ="http://www.blogjava.net/javaren/aggbug/213577.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/javaren/" target="_blank">Terry Lee</a> 2008-07-09 11:51 <a href="http://www.blogjava.net/javaren/archive/2008/07/09/213577.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>真搞！</title><link>http://www.blogjava.net/javaren/archive/2007/12/02/164631.html</link><dc:creator>Terry Lee</dc:creator><author>Terry Lee</author><pubDate>Sun, 02 Dec 2007 06:11:00 GMT</pubDate><guid>http://www.blogjava.net/javaren/archive/2007/12/02/164631.html</guid><wfw:comment>http://www.blogjava.net/javaren/comments/164631.html</wfw:comment><comments>http://www.blogjava.net/javaren/archive/2007/12/02/164631.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/javaren/comments/commentRss/164631.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/javaren/services/trackbacks/164631.html</trackback:ping><description><![CDATA[本来以为是文章区的东西会显示在首页上，没想到是随笔！看来我太小白了吧<img src="/CuteSoft_Client/CuteEditor/images/emsad.gif" align="absMiddle" border="0"  alt="" />，没办法把文章类的东西都转移到随笔来，分类还得重新弄，god bless me!
<img src ="http://www.blogjava.net/javaren/aggbug/164631.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/javaren/" target="_blank">Terry Lee</a> 2007-12-02 14:11 <a href="http://www.blogjava.net/javaren/archive/2007/12/02/164631.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>换了好多blog空间，快累死了！</title><link>http://www.blogjava.net/javaren/archive/2007/12/02/164630.html</link><dc:creator>Terry Lee</dc:creator><author>Terry Lee</author><pubDate>Sun, 02 Dec 2007 06:08:00 GMT</pubDate><guid>http://www.blogjava.net/javaren/archive/2007/12/02/164630.html</guid><wfw:comment>http://www.blogjava.net/javaren/comments/164630.html</wfw:comment><comments>http://www.blogjava.net/javaren/archive/2007/12/02/164630.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/javaren/comments/commentRss/164630.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/javaren/services/trackbacks/164630.html</trackback:ping><description><![CDATA[以前有个个人网站，但是后来总是没时间维护，还被天天催着要在工商局注册登记，shit，麻烦死了，干脆后来关了。近来终于有时间来弄个blog了，以前在Sina、Sohu都开了个blog，不过那里实在不适合发技术类文章，不方便，最后还是来这里了，本来以为申请起来会很麻烦，试了一下原来也很简单的，所以，我就在这里安个小家了。<br />
还好，这不是买房子，商品房对老百姓来说是可望而不可及呀！(靠了，我咋扯上房子了！)<br />
总之，想弄个好的blog空间也真不容易呀，希望我有精力在这里留下点东西:) <img src="/CuteSoft_Client/CuteEditor/images/emembarrassed.gif" align="absMiddle" border="0"  alt="" />
<img src ="http://www.blogjava.net/javaren/aggbug/164630.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/javaren/" target="_blank">Terry Lee</a> 2007-12-02 14:08 <a href="http://www.blogjava.net/javaren/archive/2007/12/02/164630.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用hbm2java给pojo增加serialVersionUID的小技巧</title><link>http://www.blogjava.net/javaren/archive/2007/12/02/164629.html</link><dc:creator>Terry Lee</dc:creator><author>Terry Lee</author><pubDate>Sun, 02 Dec 2007 05:54:00 GMT</pubDate><guid>http://www.blogjava.net/javaren/archive/2007/12/02/164629.html</guid><wfw:comment>http://www.blogjava.net/javaren/comments/164629.html</wfw:comment><comments>http://www.blogjava.net/javaren/archive/2007/12/02/164629.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.blogjava.net/javaren/comments/commentRss/164629.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/javaren/services/trackbacks/164629.html</trackback:ping><description><![CDATA[Hibernate 3.2.x 工具中hbm2java生成的pojo类总是类似下面：<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img id="Codehighlighter1_52_393_Open_Image" onclick="this.style.display='none'; Codehighlighter1_52_393_Open_Text.style.display='none'; Codehighlighter1_52_393_Closed_Image.style.display='inline'; Codehighlighter1_52_393_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_52_393_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_52_393_Closed_Text.style.display='none'; Codehighlighter1_52_393_Open_Image.style.display='inline'; Codehighlighter1_52_393_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;Child&nbsp;&nbsp;</span><span style="color: #0000ff">implements</span><span style="color: #000000">&nbsp;java.io.Serializable&nbsp;</span><span id="Codehighlighter1_52_393_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_52_393_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;cid;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;String&nbsp;childName;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img id="Codehighlighter1_130_161_Open_Image" onclick="this.style.display='none'; Codehighlighter1_130_161_Open_Text.style.display='none'; Codehighlighter1_130_161_Closed_Image.style.display='inline'; Codehighlighter1_130_161_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_130_161_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_130_161_Closed_Text.style.display='none'; Codehighlighter1_130_161_Open_Image.style.display='inline'; Codehighlighter1_130_161_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;getCid()&nbsp;</span><span id="Codehighlighter1_130_161_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_130_161_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.cid;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img id="Codehighlighter1_195_225_Open_Image" onclick="this.style.display='none'; Codehighlighter1_195_225_Open_Text.style.display='none'; Codehighlighter1_195_225_Closed_Image.style.display='inline'; Codehighlighter1_195_225_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_195_225_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_195_225_Closed_Text.style.display='none'; Codehighlighter1_195_225_Open_Image.style.display='inline'; Codehighlighter1_195_225_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;setCid(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;cid)&nbsp;</span><span id="Codehighlighter1_195_225_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_195_225_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.cid&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;cid;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img id="Codehighlighter1_260_297_Open_Image" onclick="this.style.display='none'; Codehighlighter1_260_297_Open_Text.style.display='none'; Codehighlighter1_260_297_Closed_Image.style.display='inline'; Codehighlighter1_260_297_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_260_297_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_260_297_Closed_Text.style.display='none'; Codehighlighter1_260_297_Open_Image.style.display='inline'; Codehighlighter1_260_297_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;String&nbsp;getChildName()&nbsp;</span><span id="Codehighlighter1_260_297_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_260_297_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.childName;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
<img id="Codehighlighter1_349_391_Open_Image" onclick="this.style.display='none'; Codehighlighter1_349_391_Open_Text.style.display='none'; Codehighlighter1_349_391_Closed_Image.style.display='inline'; Codehighlighter1_349_391_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_349_391_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_349_391_Closed_Text.style.display='none'; Codehighlighter1_349_391_Open_Image.style.display='inline'; Codehighlighter1_349_391_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;setChildName(String&nbsp;childName)&nbsp;</span><span id="Codehighlighter1_349_391_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_349_391_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.childName&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;childName;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span></div>
<p>但是如果你使用JDK5.0或更高版本时，总是警告该类缺少个<font face="宋体"><strong>static final long serialVersionUID</strong>，如何才能在hbm2java生成java源代码时自动加上呢？这就要修改hibernate-tools.jar中自带的pojo模板了。</font></p>
<p>首先，你将hibernate-toosl.jar中的pojo/Pojo.ftl文件解压出来，在<font face="宋体">&lt;#if !pojo.isInterface()&gt;的下一行增加：</font>static final long serialVersionUID = 1L;增加后整个Pojo.ftl文件内容应该是这样：</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img id="Codehighlighter1_1_30_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1_30_Open_Text.style.display='none'; Codehighlighter1_1_30_Closed_Image.style.display='inline'; Codehighlighter1_1_30_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_1_30_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1_30_Closed_Text.style.display='none'; Codehighlighter1_1_30_Open_Image.style.display='inline'; Codehighlighter1_1_30_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /><span style="color: #000000">$</span><span id="Codehighlighter1_1_30_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1_30_Open_Text"><span style="color: #000000">{pojo.getPackageDeclaration()}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;Generated&nbsp;${date}&nbsp;by&nbsp;Hibernate&nbsp;Tools&nbsp;${version}</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;</span><span style="color: #000000">#assign&nbsp;classbody</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img id="Codehighlighter1_142_494_Open_Image" onclick="this.style.display='none'; Codehighlighter1_142_494_Open_Text.style.display='none'; Codehighlighter1_142_494_Closed_Image.style.display='inline'; Codehighlighter1_142_494_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_142_494_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_142_494_Closed_Text.style.display='none'; Codehighlighter1_142_494_Open_Image.style.display='inline'; Codehighlighter1_142_494_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;</span><span style="color: #000000">#include&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">PojoTypeDeclaration.ftl</span><span style="color: #000000">"</span><span style="color: #000000">/&gt;</span><span style="color: #000000">&nbsp;</span><span id="Codehighlighter1_142_494_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_142_494_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;</span><span style="color: #000000">#</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">!</span><span style="color: #000000">pojo.isInterface()</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">final</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">long</span><span style="color: #000000">&nbsp;serialVersionUID&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">1L</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;</span><span style="color: #000000">#include&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">PojoFields.ftl</span><span style="color: #000000">"</span><span style="color: #000000">/&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;</span><span style="color: #000000">#include&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">PojoConstructors.ftl</span><span style="color: #000000">"</span><span style="color: #000000">/&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;</span><span style="color: #000000">#include&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">PojoPropertyAccessors.ftl</span><span style="color: #000000">"</span><span style="color: #000000">/&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;</span><span style="color: #000000">#include&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">PojoToString.ftl</span><span style="color: #000000">"</span><span style="color: #000000">/&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;</span><span style="color: #000000">#include&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">PojoEqualsHashcode.ftl</span><span style="color: #000000">"</span><span style="color: #000000">/&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;</span><span style="color: #000000">#</span><span style="color: #0000ff">else</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;</span><span style="color: #000000">#include&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">PojoInterfacePropertyAccessors.ftl</span><span style="color: #000000">"</span><span style="color: #000000">/&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;/</span><span style="color: #000000">#</span><span style="color: #0000ff">if</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;</span><span style="color: #000000">#include&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">PojoExtraClassCode.ftl</span><span style="color: #000000">"</span><span style="color: #000000">/&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;/</span><span style="color: #000000">#assign</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img id="Codehighlighter1_509_532_Open_Image" onclick="this.style.display='none'; Codehighlighter1_509_532_Open_Text.style.display='none'; Codehighlighter1_509_532_Closed_Image.style.display='inline'; Codehighlighter1_509_532_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_509_532_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_509_532_Closed_Text.style.display='none'; Codehighlighter1_509_532_Open_Image.style.display='inline'; Codehighlighter1_509_532_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" />$</span><span id="Codehighlighter1_509_532_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_509_532_Open_Text"><span style="color: #000000">{pojo.generateImports()}</span></span><span style="color: #000000"><br />
<img id="Codehighlighter1_535_545_Open_Image" onclick="this.style.display='none'; Codehighlighter1_535_545_Open_Text.style.display='none'; Codehighlighter1_535_545_Closed_Image.style.display='inline'; Codehighlighter1_535_545_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_535_545_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_535_545_Closed_Text.style.display='none'; Codehighlighter1_535_545_Open_Image.style.display='inline'; Codehighlighter1_535_545_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" />$</span><span id="Codehighlighter1_535_545_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_535_545_Open_Text"><span style="color: #000000">{classbody}</span></span></div>
<br />
<p>然后将此Pojo.ftl文件覆盖hibernate-tools.jar压缩包中的即可。</p>
<p>最后，再次运行你的ant，build.xml不需要修改生成的类就自动有了：static final long serialVersionUID = 1L;<br />
呵呵，很好玩吧。我们还可以在Pojo.ftl模板文件中增加其他自己需要的代码了！</p>
  <img src ="http://www.blogjava.net/javaren/aggbug/164629.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/javaren/" target="_blank">Terry Lee</a> 2007-12-02 13:54 <a href="http://www.blogjava.net/javaren/archive/2007/12/02/164629.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>