<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>Walking In Thinking</title>
    <description></description>
    <link>http://der.javaeye.com</link>
    <language>UTF-8</language>
    <copyright>Copyright 2003-2008, JavaEye.com</copyright>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>JavaEye - 做最棒的软件开发交流社区</generator>
      <item>
        <title>java使用正则表达式——实例</title>
        <author>uidin</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://der.javaeye.com">uidin</a>&nbsp;
          链接：<a href="http://der.javaeye.com/blog/199489" style="color:red;">http://der.javaeye.com/blog/199489</a>&nbsp;
          发表时间: 2008年06月02日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          网上关于java使用正则的现成的例子不多，发一个以前写的一个类，供大家参考。<br /><br />这个类基本满足了平常的需要，有其他需要的我再添加<br /><br /><pre name="code" class="java">
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * @author        Der    
 * @date          2006-10-23
 * @packeage_name regex
 * 
 */
public class RegexChk
{

	public  boolean startCheck(String reg,String string)
	{
		boolean tem=false;
		
		Pattern pattern = Pattern.compile(reg);
		Matcher matcher=pattern.matcher(string);
		
		tem=matcher.matches();
		return tem;
	}
	

         /**
	 * 检验整数,适用于正整数、负整数、0，负整数不能以-0开头, 
          * 正整数不能以0开头
	 * 
	 * */
	public boolean checkNr(String nr)
	{
		String reg="^(-?)[1-9]+\\d*|0";
		return startCheck(reg,nr);
	}

	/**
	 * 手机号码验证,11位，不知道详细的手机号码段，只是验证开头必须是1和位数
	 * */
	public boolean checkCellPhone(String cellPhoneNr)
	{
		String reg="^[1][\\d]{10}";
		return startCheck(reg,cellPhoneNr);
	}
	
	/**
	 * 检验空白符
	 * */
	public boolean checkWhiteLine(String line)
	{
		String regex="(\\s|\\t|\\r)+";
		
		return startCheck(regex,line);
	}
	
	
	/**
	 * 检查EMAIL地址
	 * 用户名和网站名称必须>=1位字符
	 * 地址结尾必须是以com|cn|com|cn|net|org|gov|gov.cn|edu|edu.cn结尾
	 * */
	public boolean checkEmailWithSuffix(String email)
	{
		String regex="\\w+\\@\\w+\\.(com|cn|com.cn|net|org|gov|gov.cn|edu|edu.cn)";
		
		return startCheck(regex,email);
	}
	
	
	/**
	 * 检查EMAIL地址
	 * 用户名和网站名称必须>=1位字符
	 * 地址结尾必须是2位以上，如：cn,test,com,info
	 * */
	public boolean checkEmail(String email)
	{
		String regex="\\w+\\@\\w+\\.\\w{2,}";
		
		return startCheck(regex,email);
	}
	
	/**
	 * 检查邮政编码(中国),6位，第一位必须是非0开头，其他5位数字为0-9
	 * */
	public boolean checkPostcode(String postCode)
	{
		String regex="^[1-9]\\d{5}";
		return startCheck(regex,postCode);
	}
	
	/**
	 * 检验用户名
	 * 取值范围为a-z,A-Z,0-9,"_",汉字，不能以"_"结尾
	 * 用户名有最小长度和最大长度限制，比如用户名必须是4-20位
	 * */
	public boolean checkUsername(String username,int min,int max)
	{
		String regex="[\\w\u4e00-\u9fa5]{"+min+","+max+"}(?&lt;!_)";
		return startCheck(regex,username);
	}
	/**
	 * 检验用户名
	 * 取值范围为a-z,A-Z,0-9,"_",汉字，不能以"_"结尾
	 * 有最小位数限制的用户名，比如：用户名最少为4位字符
	 * */
	public boolean checkUsername(String username,int min)
	{
		//[\\w\u4e00-\u9fa5]{2,}?
		String regex="[\\w\u4e00-\u9fa5]{"+min+",}(?&lt;!_)";
		
		return startCheck(regex,username);
	}
	
	/**
	 * 检验用户名
	 * 取值范围为a-z,A-Z,0-9,"_",汉字
	 * 最少一位字符，最大字符位数无限制，不能以"_"结尾
	 * */
	public boolean checkUsername(String username)
	{
		String regex="[\\w\u4e00-\u9fa5]+(?&lt;!_)";
		return startCheck(regex,username);
	}
	
	/**
	 *  查看IP地址是否合法
	 * */
	public boolean checkIP(String ipAddress)
	{
		String regex="(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\." +
				     "(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\." +
				     "(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\." +
				     "(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])";
		
		return startCheck(regex,ipAddress);
	}
	
	/**
	 * 验证国内电话号码
	 * 格式：010-67676767，区号长度3-4位，必须以"0"开头，号码是7-8位
	 * */
	public boolean checkPhoneNr(String phoneNr)
	{
		String regex="^[0]\\d{2,3}\\-\\d{7,8}";
		
		return startCheck(regex,phoneNr);
	}
	
	/**
	 * 验证国内电话号码
	 * 格式：6767676, 号码位数必须是7-8位,头一位不能是"0"
	 * */
	public boolean checkPhoneNrWithoutCode(String phoneNr)
	{
		String reg="^[1-9]\\d{6,7}";
		
		return startCheck(reg,phoneNr);
	}
	
	/**
	 * 验证国内电话号码
	 * 格式：0106767676，共11位或者12位，必须是0开头
	 * */
	public boolean checkPhoneNrWithoutLine(String phoneNr)
	{
		String reg="^[0]\\d{10,11}";
		
		return startCheck(reg,phoneNr);
	}
	
	/**
	 * 验证国内身份证号码：15或18位，由数字组成，不能以0开头
	 * */
	public boolean checkIdCard(String idNr)
	{
		String reg="^[1-9](\\d{14}|\\d{17})";
		
		return startCheck(reg,idNr);
	}
	
	/**
	 * 网址验证&lt;br>
	 * 符合类型：&lt;br>
	 *         http://www.test.com&lt;br>
	 *         http://163.com
	 * */
	public boolean checkWebSite(String url)
	{
		//http://www.163.com
		String reg="^(http)\\://(\\w+\\.\\w+\\.\\w+|\\w+\\.\\w+)";
		
		return startCheck(reg,url);
	}
}
</pre>
          <br/><br/>
          <span style="color:red;">
            <a href="http://der.javaeye.com/blog/199489#comments" style="color:red;">已有 <strong>1</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 02 Jun 2008 17:17:36 +0800</pubDate>
        <link>http://der.javaeye.com/blog/199489</link>
        <guid>http://der.javaeye.com/blog/199489</guid>
      </item>
      <item>
        <title>FreeBSD初步——安装MySql5.0</title>
        <author>uidin</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://der.javaeye.com">uidin</a>&nbsp;
          链接：<a href="http://der.javaeye.com/blog/197981" style="color:red;">http://der.javaeye.com/blog/197981</a>&nbsp;
          发表时间: 2008年05月28日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          进入ports下databases的mysql5.0目录<br /><br />#cd /usr/ports/databases/mysql50-server<br />#make install clean<br />然后，下载，编译，等待安装完成<br /><br />编辑rc.conf文件,在其中添加mysql_enable="YES"<br />#ee /etc/rc.conf<br /><br />启动mysql服务<br />#cd /usr/local/share/mysql/<br />#./mysql.server start<br /><br />登陆mysql<br />#/usr/local/bin/mysql -uroot -p<br />提示你输入密码 Enter password:<br />这个你应该想起安装时没有提示设置密码，所以直接回车。<br />到此mysql安装成功。<br /><br />freeBSD启动时就打开mysql服务,打开 .xinitrc<br />#ee ~/.xinitrc<br />添加exec /usr/local/share/mysql/mysql.server start
          <br/><br/>
          <span style="color:red;">
            <a href="http://der.javaeye.com/blog/197981#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 28 May 2008 18:41:40 +0800</pubDate>
        <link>http://der.javaeye.com/blog/197981</link>
        <guid>http://der.javaeye.com/blog/197981</guid>
      </item>
      <item>
        <title>suseLinux下安装JDK1.5及JBOSS4.2</title>
        <author>uidin</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://der.javaeye.com">uidin</a>&nbsp;
          链接：<a href="http://der.javaeye.com/blog/196428" style="color:red;">http://der.javaeye.com/blog/196428</a>&nbsp;
          发表时间: 2008年05月24日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          1.下载<br />  JDK下载地址：<br />   http://java.sun.com/javase/downloads/?intcmp=1281<br /><br />  JBOSS下载地址：<br />   http://labs.jboss.com/jbossas/downloads/<br /><br />2.解压缩：<br />  #tar –xzvf  name.tar.gz<br />  或者 <br />  #unzip name.tar.gz<br /><br />3.安装<br />  切换成<span style="color: red">root</span>权限，将解压缩后的文件夹放到/usr下<br />  1.#cd /usr <br />  2.#mkdir jdk<br />  3.#cp jdk1.5 /usr/jdk<br />  或者在桌面环境中直接拷贝，安装JBOSS同上<br /><br />4.更改环境变量<br />  使用<span style="color: red">root</span>权限，使用vi编辑器打开profile文件<br />  #vi /etc/profile<br />  添加如下内容：<br />  <br />    <span style="color: blue">JDK</span><br />    export JAVA_HOME=/usr/java/jdk1.5.0_09<br />    export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar<br />    export JRE_HOME=$JAVA_HOME/jre<br />    export PATH=$JAVA_HOME/bin:$PATH<br /><br />    <span style="color: blue">JBOSS</span><br />    export JBOSS_HOME=/home/jboss/jboss4.2<br />    export PATH=$PATH:$JBOSS_HOME/bin<br /><br />    然后：Esc,冒号，wq,保存退出<br /><br /><br />5.测试<br />  打开shell<br /><br />  <span style="color: blue">JDK</span><br />  #java –version，出来java的版本号表示安装成功<br /><br />  <span style="color: blue">JBOSS</span><br />  打开浏览器，在网址栏中输入：http://localhost:8080, <br />  出来JBOSS的欢迎界面表示jboss安装成功
          <br/><br/>
          <span style="color:red;">
            <a href="http://der.javaeye.com/blog/196428#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 24 May 2008 20:23:38 +0800</pubDate>
        <link>http://der.javaeye.com/blog/196428</link>
        <guid>http://der.javaeye.com/blog/196428</guid>
      </item>
      <item>
        <title>SUSE linux 10.2 X86_64下安装Oracle10gR2</title>
        <author>uidin</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://der.javaeye.com">uidin</a>&nbsp;
          链接：<a href="http://der.javaeye.com/blog/196425" style="color:red;">http://der.javaeye.com/blog/196425</a>&nbsp;
          发表时间: 2008年05月24日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          前段时间公司上了新的服务器，操作系统选择了SUSE linux 10.2 X86_64，数据库使用的是Oracle10gR2，本来安装应该挺容易的，结果出现了一堆错误，回忆了一下，赶紧记下来。<br /><br />Suse的Oracle支持站点：<br />   http://www.suse.com/en/business/certifications/certified_software/oracle/documents.html<br /><br />http://otn.oracle.com<br /><br />SUSE linux 10.2下安装Oracle10gR2 白皮书下载地址<br />http://ftp.novell.com/partners/oracle/docs/10gR2_openSUSE102_introduction.pdf<br /><br />+系统要求：<br />   内存：推荐1G <br />　　Swap分区：设为内存的2倍 <br />　　/tmp磁盘空间：400MB以上 <br />　　磁盘空间：软件3.5G 数据1.2G <br /><span style="color: red">以下要用root用户操作</span><br /><br />+检查所需要的rpm包<br />   rpm -q make binutils gcc compat-db compat-gcc compat-gcc-c++ <br />  compat-libstdc++ 或打开YaST安装<br /><br />  compat-2006.1.25-29.x86_64<br />  compat-libstdc++-5.0.7-41.x86_64<br />  compat-openssl097g-0.9.7g-33.x86_64<br />  gcc-32bit-4.1.3-29.x86_64<br />  gcc-4.1.3-29.x86_64<br />  gcc-c++-4.1.3-29.x86_64<br />  gcc-gij-4.1.3-29.x86_64<br />  gcc-java-4.1.3-29.x86_64<br />  gcc41-32bit-4.1.2_20061115-5.x86_64<br />  gcc41-4.1.2_20061115-5.x86_64<br />  gcc41-c++-4.1.2_20061115-5.x86_64<br />  gcc41-gij-32bit-4.1.2_20061115-7.x86_64<br />  gcc41-gij-4.1.2_20061115-7.x86_64<br />  gcc41-java-4.1.2_20061115-5.x86_64<br />  glibc-2.5-25.x86_64<br />  glibc-32bit-2.5-25.x86_64<br />  glibc-devel-2.5-25.x86_64<br />  glibc-devel-32bit-2.5-25.x86_64<br />  glibc-i18ndata-2.5-25.x86_64<br />  glibc-locale-2.5-25.x86_64<br />  glibc-locale-32bit-2.5-25.x86_64<br />  java-1_4_2-gcj-compat-32bit-1.4.2.0-66.x86_64<br />  libgcc41-32bit-4.1.2_20061115-5.x86_64<br />  libgcc41-4.1.2_20061115-5.x86_64<br />  libstdc++41-32bit-4.1.2_20061115-5.x86_64<br />  libstdc++41-4.1.2_20061115-5.x86_64<br />  libstdc++41-devel-4.1.2_20061115-5.x86_64<br />  libstroke-0.5.1-37.x86_64<br />  libaio<br />  libaio-devel<br />  上面的包可能根据系统版本的不同会有所不同<br /><br />+orarun包下载地址<br /><br />   下载地址：<br />   http://ftp.novell.com/partners/oracle/sles-10<br />   安装orarun，用命令：#rpm –ivh orarun-1.8-109.15.i586.rpm<br />   安装或者直接双击用YaST安装<br /><br />+当orarun软件包安装时，会自动建立名为oracle的用户，和一个oinstall组。我们只需要将该用户设置为enable，<br />   安装完后，会在/etc.profile.d下生成2个oracle.sch和oracle.sh文件， <br />   在/etc/sysconfig/ 下生成一个oracle文件。而且orarun软件包<br />   将ORACLE_HOME文件夹自动生成，减少了很多麻烦。OK，修改文件：<br />   <br />   -更改 /etc/passwd文件<br />    把<br />    oracle:x:103:108:Oracle user:/opt/oracle:/bin/false<br />    改为<br />    oracle:x:103:108:Oracle user:/opt/oracle:/bin/bash<br />   -修改/etc/sysconfig/oracle文件<br />     把<br />     START_ORACLE_DB="no"     START_ORACLE_DB_LISTENER="no"<br />    改为<br />     START_ORACLE_DB="yes"    START_ORACLE_DB_LISTENER="yes"<br />+打开控制台，更改oracle用户的密码<br />  #passwd oracle，填入新密码即可<br /><br />然后以<span style="color: red">oracle</span>用户身份登陆<br />安装oracle<br />+解压oracle安装包<br /> #tar –xzvf oracle_db.cpio.gz 或unzip oracle_db.cpio.gz<br /> 解压完后是一个cpio文件，继续解压<br /> #cpio -idcmv &lt; oracle_db.cpio<br /><br /><br />+安装oracle<br /> 进入文件夹，运行<br /> #./runInstaller<br /> <span style="color: red">问题</span><br /> --如果不出现oracle的图形安装界面，并出现<br />    error:faild to load /usr/lib/libInternalSymbols.so,<br />   错误，以<span style="color: red">root</span>身份更改/etc/profile.d/oracle.sh文件<br /> <br />   把<br />   test -f /usr/lib/libInternalSymbols.so && export  <br />   LD_PRELOAD=/usr/lib/libInternalSymbols.so<br />   更改为：<br />   test -f /usr/lib/libInternalSymbols.so && export <br />   LD_PRELOAD_32=/usr/lib/libInternalSymbols.so<br /><br /> --njni10错误<br />   以root身份执行下面的命令<br />   #rm -f $ORACLE_HOME/install/make.logcd $ORACLE_HOME/bin<br />   #./relink all > $ORACLE_HOME/install/make.log<br /><br />回忆的有些乱，有些错误只记得关键字
          <br/><br/>
          <span style="color:red;">
            <a href="http://der.javaeye.com/blog/196425#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 24 May 2008 19:59:04 +0800</pubDate>
        <link>http://der.javaeye.com/blog/196425</link>
        <guid>http://der.javaeye.com/blog/196425</guid>
      </item>
      <item>
        <title>FreeBSD中调整KDE的分辨率</title>
        <author>uidin</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://der.javaeye.com">uidin</a>&nbsp;
          链接：<a href="http://der.javaeye.com/blog/196340" style="color:red;">http://der.javaeye.com/blog/196340</a>&nbsp;
          发表时间: 2008年05月24日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          环境：vmware 6.0.3,FreeBSD7.0<br /><br />首先最小化安装FreeBSD，然后通过sysinstall安装 X.org和KDE<br />1.以root身份进入,<br />运行命令 #Xorg -configure,我电脑的情况是运行此命令马上黑屏，没管它，过了半个 小时，关闭vmware电源 -_-!  启动freeBSD<br /><br />2.再次以root身份登陆，测试配置<br />#Xorg -config xorg.conf.new,我这里看到一个X型的鼠标指针，说明配置成功（如果什么也没显示，再次运行步骤1，如果还不行，google plz）<br />3.修改xorg.conf.new文件（我第一次没有修改，结果分辨率奇高）<br />#ee xorg.conf.new,找到对应项进行修改，没有的参数请添加：<br /><br />Section "Monitor"<br />        Identifier   "Monitor0"<br />        VendorName   "Monitor Vendor"<br />        ModelName    "Monitor Model"<br />        HorizSync    30-107    #如果没有这行，请添加，设置刷新赫   <br />         VertRefresh  48-120    #如果没有这行，请添加<br /><br />        EndSection<br />...<br />...<br />Section "Screen"<br />        Identifier "Screen0"<br />        Device     "Card0"<br />        Monitor    "Monitor0"<br />        DefaultDepth 24        #如果没有这行，请添加<br /><br />        #然后更改下面参数<br />        SubSection "Display"<br />                Viewport  0 0<br />                Depth     24<br />                Modes     "1024x768"  #添加你想要的分辨率<br />        EndSubSection<br />EndSection<br /><br />OK，CTRL-C，输入命令 exit,保存退出<br /><br />4.# cp xorg.conf.new /etc/X11/xorg.conf<br />  覆盖xorg.conf文件<br /><br />5.ee .xinitrc（没有此文件，就创建该文件）,添加一项 exec /usr/local/bin/startkde,保存退出，运行命令startx,就会进去KDE了（普通用户在其目录下重复该项，方可进入KDE，要不然只能进Xterm）<br /><br />6.登陆，startx....
          <br/><br/>
          <span style="color:red;">
            <a href="http://der.javaeye.com/blog/196340#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 24 May 2008 12:06:14 +0800</pubDate>
        <link>http://der.javaeye.com/blog/196340</link>
        <guid>http://der.javaeye.com/blog/196340</guid>
      </item>
      <item>
        <title>常用数据库的链接方法&lt;转过来的，收藏一下，以后省的找了&gt;</title>
        <author>uidin</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://der.javaeye.com">uidin</a>&nbsp;
          链接：<a href="http://der.javaeye.com/blog/191594" style="color:red;">http://der.javaeye.com/blog/191594</a>&nbsp;
          发表时间: 2008年05月09日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <pre name="code" class="java">

MySQL：    
    String Driver="com.mysql.jdbc.Driver";    //驱动程序
    String URL="jdbc:mysql://localhost:3306/db_name";    //连接的URL,db_name为数据库名    
    String Username="username";    //用户名
    String Password="password";    //密码
    Class.forName(Driver);
    Connection con=DriverManager.getConnection(URL,Username,Password);

Microsoft SQL Server 2.0驱动(3个jar的那个):
    String Driver="com.microsoft.jdbc.sqlserver.SQLServerDriver";    //连接SQL数据库的方法
    String URL="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=db_name";    //db_name为数据库名
    String Username="username";    //用户名
    String Password="password";    //密码
    Class.forName(Driver);    //加载数据可驱动
    Connection con=DriverManager.getConnection(URL,UserName,Password);    //

Microsoft SQL Server 3.0驱动(1个jar的那个): // 
String Driver="com.microsoft.sqlserver.jdbc.SQLServerDriver";    //连接SQL数据库的方法
    String URL="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=db_name";    //db_name为数据库名
    String Username="username";    //用户名
    String Password="password";    //密码
    Class.forName(Driver);    //加载数据可驱动
    Connection con=DriverManager.getConnection(URL,UserName,Password);    //
Sysbase:
    String Driver="com.sybase.jdbc.SybDriver";    //驱动程序
    String URL="jdbc:Sysbase://localhost:5007/db_name";    //db_name为数据可名
    String Username="username";    //用户名
    String Password="password";    //密码
    Class.forName(Driver);    
    Connection con=DriverManager.getConnection(URL,Username,Password);

Oracle(用thin模式):
    String Driver="oracle.jdbc.driver.OracleDriver";    //连接数据库的方法
    String URL="jdbc:oracle:thin:@loaclhost:1521:orcl";    //orcl为数据库的SID
    String Username="username";    //用户名
    String Password="password";    //密码
    Class.forName(Driver);    //加载数据库驱动
    Connection con=DriverManager.getConnection(URL,Username,Password);    

PostgreSQL:
    String Driver="org.postgresql.Driver";    //连接数据库的方法
    String URL="jdbc:postgresql://localhost/db_name";    //db_name为数据可名
    String Username="username";    //用户名
    String Password="password";    //密码
    Class.forName(Driver);    
    Connection con=DriverManager.getConnection(URL,Username,Password);

DB2：
    String Driver="com.ibm.db2.jdbc.app.DB2.Driver";    //连接具有DB2客户端的Provider实例
    //String Driver="com.ibm.db2.jdbc.net.DB2.Driver";    //连接不具有DB2客户端的Provider实例
    String URL="jdbc:db2://localhost:5000/db_name";    //db_name为数据可名
    String Username="username";    //用户名
    String Password="password";    //密码
    Class.forName(Driver);    
    Connection con=DriverManager.getConnection(URL,Username,Password);

Informix:
    String Driver="com.informix.jdbc.IfxDriver";    
    String URL="jdbc:Informix-sqli://localhost:1533/db_name:INFORMIXSER=myserver";    //db_name为数据可名
    String Username="username";    //用户名
    String Password="password";    //密码
    Class.forName(Driver);    
    Connection con=DriverManager.getConnection(URL,Username,Password);

JDBC-ODBC:
    String Driver="sun.jdbc.odbc.JdbcOdbcDriver";
    String URL="jdbc:odbc:dbsource";    //dbsource为数据源名
    String Username="username";    //用户名
    String Password="password";    //密码
    Class.forName(Driver);    
    Connection con=DriverManager.getConnection(URL,Username,Password);
</pre>
          <br/><br/>
          <span style="color:red;">
            <a href="http://der.javaeye.com/blog/191594#comments" style="color:red;">已有 <strong>3</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 09 May 2008 22:18:04 +0800</pubDate>
        <link>http://der.javaeye.com/blog/191594</link>
        <guid>http://der.javaeye.com/blog/191594</guid>
      </item>
      <item>
        <title>java抓取新闻</title>
        <author>uidin</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://der.javaeye.com">uidin</a>&nbsp;
          链接：<a href="http://der.javaeye.com/blog/190497" style="color:red;">http://der.javaeye.com/blog/190497</a>&nbsp;
          发表时间: 2008年05月07日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          这个东西虽然简单，但还是挺好玩的：首先把搜索后的页面用流读取出来，再写个正则，去除不要的内容，再把最后的结果存成xml格式文件、或者直接存入数据库，用的时候再调用<br /><br />本代码只是显示html也的源码内容，如果需要抽取内容请自行改写public static String regex()中的正则式<br /><br /><pre name="code" class="java">

package rssTest;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * @author Der
 * @date   05-01
 * @E-mail uidin@163.com
 * */
public class MyRSS
{
	/**
	 * 获取搜索结果的html源码
	 * */
	public static String getHtmlSource(String url)
	{
		
		StringBuffer codeBuffer = null;
		BufferedReader in=null;
		try
		{
			URLConnection uc = new URL(url).openConnection();

			/**
			 * 为了限制客户端不通过网页直接读取网页内容,就限制只能从浏览器提交请求.
			 * 但是我们可以通过修改http头的User-Agent来伪装,这个代码就是这个作用
			 * 
			 */
			uc.setRequestProperty("User-Agent",
					"Mozilla/4.0 (compatible; MSIE 5.0; Windows XP; DigExt)");

			// 读取url流内容
			in = new BufferedReader(new InputStreamReader(uc
					.getInputStream(), "gb2312"));
			codeBuffer = new StringBuffer();
			String tempCode = "";
			// 把buffer内的值读取出来,保存到code中
			while ((tempCode = in.readLine()) != null)
			{
				codeBuffer.append(tempCode).append("\n");
			}
			in.close();
		}
		catch (MalformedURLException e)
		{
			e.printStackTrace();
		}
		catch (IOException e)
		{
			e.printStackTrace();
		}
		
		return codeBuffer.toString();
	}

	/**
	 * 正则表达式
	 * */
	public static String regex()
	{
		String googleRegex = "&lt;div class=g>(.*?)href=\"(.*?)\"(.*?)\">(.*?)&lt;/a>(.*?)&lt;div class=std>(.*?)&lt;br>";
		return googleRegex;
	}

	/**
	 * 测试用
	 * 在google中检索关键字，并抽取自己想要的内容
	 * 
	 * */
	public static List&lt;String> GetNews()
	{
		List&lt;String> newsList = new ArrayList&lt;String>();
		String allHtmlSource = MyRSS
				.getHtmlSource("http://www.google.cn/search?complete=1&hl=zh-CN&newwindow=1&client=aff-os-maxthon&hs=SUZ&q=%E8%A7%81%E9%BE%99%E5%8D%B8%E7%94%B2&meta=&aq=f");
		Pattern pattern = Pattern.compile(regex());
		Matcher matcher = pattern.matcher(allHtmlSource);

		while (matcher.find())
		{
			String urlLink = matcher.group(2);
			String title = matcher.group(4);
			title = title.replaceAll("&lt;font color=CC0033>", "");
			title = title.replaceAll("&lt;/font>", "");
			title = title.replaceAll("&lt;b>...&lt;/b>", "");

			String content = matcher.group(6);
			content = content.replaceAll("&lt;font color=CC0033>", "");
			content = content.replaceAll("&lt;/font>", "");
			content = content.replaceAll("&lt;b>...&lt;/b>", "");

			newsList.add(urlLink);
			newsList.add(title);
			newsList.add(content);
		}
		return newsList;
	}

	/**
	 * main方法
	 * */
	public static void main(String[] args)
	{
		System.out
		.println(MyRSS
				.getHtmlSource("http://main.house.sina.com.cn/news/zckb/index.html"));
	}
}

</pre>
          <br/><br/>
          <span style="color:red;">
            <a href="http://der.javaeye.com/blog/190497#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 07 May 2008 10:31:33 +0800</pubDate>
        <link>http://der.javaeye.com/blog/190497</link>
        <guid>http://der.javaeye.com/blog/190497</guid>
      </item>
      <item>
        <title>java文件中serialVersionUID 的用途&lt;转帖&gt;</title>
        <author>uidin</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://der.javaeye.com">uidin</a>&nbsp;
          链接：<a href="http://der.javaeye.com/blog/187409" style="color:red;">http://der.javaeye.com/blog/187409</a>&nbsp;
          发表时间: 2008年04月28日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          一些java类中为什么需要重载 serialVersionUID 属性。<br />在Java中，软件的兼容性是一个大问题，尤其在使用到对象串行性的时候，那么在某一个对象已经被串行化了，可是这个对象又被修改后重新部署了，那么在这种情况下， 用老软件来读取新文件格式虽然不是什么难事，但是有可能丢失一些信息。 <br />serialVersionUID来解决这些问题，新增的serialVersionUID必须定义成下面这种形式：static final long serialVersionUID=-2805284943658356093L;。其中数字后面加上的L表示这是一个long值。 通过这种方式来解决不同的版本之间的串行话问题。<br /><br />提纲： <br /><br />━━━━━━━━ <br /><br />一、概述 <br /><br />二、Java串行化 <br /><br />三、引入版本编号 <br /><br />四、结束语 <br /><br />━━━━━━━━ <br /><br />一、概述 <br /><br />一个程序正式发行出去之后，如果要增加一些新的功能，往往意味着同时要修改用户保存数据的方式，也就是必须更改程序保存文件的格式——通常是增加保存到文件的数据。有些时候，文件格式必须作彻底的改动，以配合实现程序的新功能。从这个意义上看，文件格式的发展/变化总是和程序的功能改进相呼应。 <br /><br />但是，大多数情况下，把原有的数据格式一丢了事是行不通的。动物王国中，不能适应环境意味着死亡；软件领域也相似，新软件是否支持原有的数据格式很大程度上决定了用户是否升级。 <br /><br />不管软件新增/改进了多少功能，不管新的文件格式是多么完美，如果新软件不能利用原来的文件格式，用户一般不太会认可新软件。解决该问题的办法包括： <br /><br />●保留老代码来读取老文件。采用这种方案一般需要额外编写一些代码，把老文件转换成新的格式（一般地，最简单的办法是先把老文件的数据转换成新的内部对象，然后利用现有的写入新版文件格式的对象）。这种办法的好处是既保留了原有的代码，又使它与新的文件格式兼容。但是，这种办法有时可能导致丢失部分数据，不过总要比丢失全部数据好。 <br /><br />●使新版软件能够读/写老文件格式。这种办法工作量较大，因为程序的新版本一般会增加一些原来没有的功能，老的数据格式中通常缺乏新功能必需的某些数据。 <br /><br />当新版软件对原来执行任务的方式作了根本性的变动时，丢失数据决非难得一见的偶然事件。如果新版软件采用和原来不同的方式达到同样的效果，原来的功能可能不再有保留的必要。例如，如果一个程序原来用Swing做用户界面，现在把它改成了Web（浏览器）用户界面，原来的许多用户界面设置就不再有效。 <br /><br />又如，如果有一个邮件程序，原来用的是以文件夹为基础的索引，现在把它改成了以单词为基础的索引系统，在升级索引文件格式的过程中就有可能丢失许多信息；如果原来的索引文件保存了许多用户配置选项和优化措施，在新的索引系统中这些数据可能无法利用。 <br /><br />这类问题没有绝对完美的解决办法，但是我们可以采取一些措施，使得升级文件格式带来的负面影响尽可能小。Java串行化（Serialization）有着简单易用的特点，日益成为一种保存文件的重要手段，有鉴于此，下面我们就来看看在软件版本变更过程中，通过Java串行化保存的文件如何保持兼容性。 <br /><br />二、Java串行化 <br /><br />Java串行化有许多优点： <br /><br />●容易使用。 <br /><br />●如果一个对象连接到其他对象，串行化机制会保存所有相关的对象。 <br /><br />●如果某个对象出现多次，串行化机制只保存一次。这一点极为重要，它不仅减小了文件空间，而且即使代码写得不是很老练，也不必担心会出现无限循环（一个不老练的例子是，用递归的方式保存各个对象，却又未能有效审计哪些对象已经保存，这时就有可能陷入永无终止的循环）。 <br /><br />遗憾的是，Java串行化机制定义的文件格式似乎很脆弱，只要稍微改动一下类的定义，原来保存的对象就可能无法读取。例如，下面是一个简单的类定义： <br /><br />public class Save implements Serializable<br />{<br />String name;<br /><br />public void save() throws IOException<br />{<br />FileOutputStream f = new FileOutputStream("foo");<br />ObjectOutputStream oos = new ObjectOutputStream(f);<br />oos.writeObject(this);<br />oos.close();<br />}<br />}<br /><br /><br /><br />如果在这个类定义中增加一个域，例如final int val = 7;，再来读取原来保存的对象，就会出现下面的异常： <br /><br />java.io.InvalidClassException:<br />Save; local class incompatible:<br />stream classdesc serialVersionUID = -2805284943658356093,<br />local class serialVersionUID = 3419534311899376629<br /><br /><br /><br />上例异常信息中的数字串表示类定义里各种属性的编码值： <br /><br />●类的名字（Save）。 <br /><br />●域的名字（name）。 <br /><br />●方法的名字（Save）。 <br /><br />●已实现的接口（Serializable）。 <br /><br />改动上述任意一项内容（无论是增加或删除），都会引起编码值变化，从而引起类似的异常警报。这个数字序列称为“串行化版本统一标识符”（serial version universal identifier），简称UID。解决这个问题的办法是在类里面新增一个域serialVersionUID，强制类仍旧使用原来的UID。新增的域必须是： <br /><br />●static：该域定义的属性作用于整个类，而非特定的对象。 <br /><br />●final：保证代码运行期间该域不会被修改。 <br /><br />●long：它是一个64位的数值。 <br /><br />也就是说，新增的serialVersionUID必须定义成下面这种形式：static final long serialVersionUID=-2805284943658356093L;。其中数字后面加上的L表示这是一个long值。 <br /><br />当然，改动之后的类不一定能够和原来的对象兼容。例如，如果把一个域的定义从String改成了int，执行逆-串行化操作时系统就不知道如何处理该值，显示出错误信息：java.io.InvalidClassException: Save; incompatible types for field name。 <br /><br />Java串行化规范（http://java.sun.com/j2se/1.4.1/docs/guide/ <br /><br />serialization/spec/serialTOC.doc.html）提供了有关兼容的改动（http://java.sun.com/j2se/1.4.1/docs/ <br /><br />guide/serialization/spec/version.doc7.html）和不兼容改动（http://java.sun.com/j2se/1.4.1/docs/guide/ <br /><br />serialization/spec/version.doc8.html）的清单，这些清单指出了对类作了哪些改动之后仍可能读取原来串行化的数据。具体细节比较复杂，但了解其主要机制还是很容易的： <br /><br /><br /><br /><br /><br />简而言之，如果文件中确实保存了所有必需的数据，那么仍有可能读取该文件，当然前提是必须处理好串行化的UID。 <br /><br />三、引入版本编号 <br /><br />许多程序都在无意之中作出了这样的假设：这种文件格式是我要用到的最后一种格式，以后不再需要制定新的格式，现在要做的是处理好在此之前的各种格式。这种程序会试图读取格式版本更高的文件，操作进行到一半才发现某些不能识别的数据，然后就是突然崩溃。如果文件包含了大量的元数据（描述文件本身的数据），处理起来就要容易得多。 <br /><br />在Java中，每一个域都由其名称显式标明，只要文件的改动不是很大（只添加了域，没有被删除或作重大更改的域），可以想象，用老软件来读取新文件格式不是什么难事，虽然有可能丢失一些信息，但可以搞清楚文件的基本情况。 <br /><br />文件格式随着程序功能的改变而改变。理想情况下，程序应当做到既向后兼容（新的版本能够按照老版本的格式读取，甚至可能允许更新），同时做到向前兼容（较老的软件能够识别和处理新版的文件格式）。 <br /><br />通常，文件的版本无法从表面上一眼看出。大多数程序不会因为文件的版本不同而更改文件扩展名，而且目前尚无统一的标记文件版本的办法。因此，有关文件格式的版本声明只能在文件本身之内进行。如果你现在使用的文件格式还不包含版本声明，最好在下次把文件升级成一个不兼容的版本时马上加入版本标记，或者寻求一种在当前文件格式中加入版本标记但不会带来负面影响的办法。 <br /><br />版本信息一般在文件的开头声明，这是因为程序必须在处理文件之前首先检查文件的版本，除非确定了文件的版本，否则不必读取文件的其余部分。 <br /><br />按照惯例，文件版本编号包含两个部分：主版本编号和次版本编号。一个特定版本的程序应当有最适合它处理的主-次版本号；主版本号变化意味着文件格式的重大变化，要继续使用已经非常困难，必须作出重大修改才能升级到新的版本。 <br /><br />文件的主次版本号之前往往还可以加入另一项内容，称为“魔术数字”，它的作用就是保证程序处理的文件类型不会有误（因为文件扩展名有可能不能唯一地标明文件类型）。例如，Java的类文件总是以下列字节内容开头（十六进制）：CA FE BA BE。目前还没有这类数字的统一注册机构，不过UNIX在/etc/magic下提供了一个清单（但并不完整）。魔术数字一般有四个字节，取值范围很大，所以一般不必担心会出现取值冲突的情形。 <br /><br />在编写和维护必须读/写文件的代码时，注意代码的向前/向后兼容性是非常必要的。在处理文件的代码中首先读取文件版本，然后根据版本号将文件剩余内容传递给适当的处理方法；如果文件的版本太老，已不再支持，程序应当给出明确的提示。 <br /><br />四、结束语 <br /><br />文件格式设计是一个极其重要的话题，但本文还有许多细节问题尚未涉及。例如，对于大型文件，我们需要随机访问，而不是从前向后依次读取文件内容的顺序访问，这样就不必为了访问文件最后几个字节而读取整个文件。无论是XML还是Java串行化对这类随机访问的支持都不是很理想，而且这类文件格式的发展变化比普通文件更难管理，因为他们依赖于字节级的访问，稍微改动一下文件格式就可能导致不兼容。 <br /><br />如果要让文件具有ACID特性——Atomicity、Consistency、Isolation和Durability，即原子性、一致性、隔离性、持久性，问题更加复杂。ACID与事务的概念密切相关，支持多用户同时访问一个文件。对于这类文件，可以考虑采用某种小型的数据库系统，例如Birdstep或Sleepycat。不过这已经进入了文件格式管理的另一个领域，既涉及到数据库管理软件的版本，也涉及到数据模式设计的版本。 <br /><br />撇开这些复杂的问题不谈，在实践中，很多时候我们只需简单的文件来保存数据，而且不会出现多用户并发访问，可以一次性地处理整个文件（或者至少适合使用顺序访问方式）。对于这些情形，最好在设计文件格式时就考虑版本问题，在日后的运行、维护中一定会带来不少方便。
          <br/><br/>
          <span style="color:red;">
            <a href="http://der.javaeye.com/blog/187409#comments" style="color:red;">已有 <strong>1</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 28 Apr 2008 09:18:42 +0800</pubDate>
        <link>http://der.javaeye.com/blog/187409</link>
        <guid>http://der.javaeye.com/blog/187409</guid>
      </item>
      <item>
        <title>浅谈门面模式</title>
        <author>uidin</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://der.javaeye.com">uidin</a>&nbsp;
          链接：<a href="http://der.javaeye.com/blog/186359" style="color:red;">http://der.javaeye.com/blog/186359</a>&nbsp;
          发表时间: 2008年04月24日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          举一个通俗的例子，购买衣服、电器、首饰<br />首先建立相应的物品类<br /><br /><pre name="code" class="java">
//衣服类
public class Clothing
{
    public Clothing getClothing()
    {
        return Clothing;
    }
}

//电器类
public class Ele
{
    public Ele getEle()
    {
        return Ele;
    }
}

//首饰类
public class Jewelry
{
    public Jewelry getJewelry()
    {
        return Jewelry;
    }
}
</pre><br />/**--------------------------按照传统方式---------------------------*/<br /><pre name="code" class="java">
public class Buy
{
    //你需要到服饰店
    Clothing c = new Clothing();
    c.getClothing();  //购买到衣服

     //接着去电器店
     Ele c = new Ele();
    c.getEle();  //购买到电器

     //然后去首饰店
     Jewelry c = new Jewelry();
    c.getJewelry();  //购买到首饰
}
</pre><br />这样客户类和后台交互很频繁，很枯燥，而且你需要和一个一个商店类打交道，很麻烦，那就换一种方式<br />/**--------------------------按照门面模式---------------------------*/<br /><pre name="code" class="java">

//创建购物中心类
public class ShopingCenter
{
    //到购物中心的服饰店购买
    public void clothingStore()
    {
        Clothing c = new Clothing();
        c.getClothing();  //购买到衣服
    }

    //到购物中心的电器店购买
     public void EleStore()
    {
        Ele c = new Ele();
        c.getEle();  //购买到电器
    }
   
    //到购物中心的首饰店购买
    public void JewelryStore()
    {
        Jewelry c = new Jewelry();
        c.getJewelry();  //购买到首饰
    }
}
</pre><br /><br /><br />好了，现在直接去购物中心，不用一家一家跑了<br /><pre name="code" class="java">
   ShopingCenter sc = new ShopingCenter();
   sc.clothingStore();
   sc.EleStore();
   sc.JewelryStore();
</pre>
          <br/><br/>
          <span style="color:red;">
            <a href="http://der.javaeye.com/blog/186359#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 24 Apr 2008 13:42:12 +0800</pubDate>
        <link>http://der.javaeye.com/blog/186359</link>
        <guid>http://der.javaeye.com/blog/186359</guid>
      </item>
      <item>
        <title>使用java把数据库数据导出生成xml文件</title>
        <author>uidin</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://der.javaeye.com">uidin</a>&nbsp;
          链接：<a href="http://der.javaeye.com/blog/183860" style="color:red;">http://der.javaeye.com/blog/183860</a>&nbsp;
          发表时间: 2008年04月17日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          以前写的程序，今天翻出来打了个jar包，der-db2xml.jar包含了crimson包和mysql驱动，der-db2xml-1.jar只是.class文件，需要自行加载上面的包和驱动<br /><br />只是在mysql数据库下测试通过，其他的DB有朋友有兴趣可以帮测一下<br /><br />下面是自己写的一个测试类，DB的表名，用户名和密码请自行修改<br /><pre name="code" class="java">
package org;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import org.dTx.CreateXmlFile;



/**
 * @author        Der    
 * @Email         uidin@163.com
 * @date          2007-4-16
 * @packeage_name org
 * 
 */
public class Testxml
{

	/**
	 * @param args
	 * @throws ClassNotFoundException 
	 * @throws SQLException 
	 */
	public static void main(String[] args) throws ClassNotFoundException, SQLException
	{
		  /**加载mysql驱动*/
		  Class.forName("org.gjt.mm.mysql.Driver");	
		  
		  /**连接地址*/
		  Connection conn=DriverManager.getConnection("jdbc:mysql://localhost/db_name","db_username","db_password");
		  Statement stmt=conn.createStatement();
		  
		  /**查询语句_例句*/
		  ResultSet rs=stmt.executeQuery("select * from user");
		  
		  /**将结果集中的数据写到指定的xml中，注意：此xml路径在当前工程的根目录*/
		  CreateXmlFile createXml = new CreateXmlFile(rs,"user.xml"); 
		  
		  /**设置根元素名称*/
		  createXml.setRootElementName("userinfo","user"); 
		  
		  /**创建属性名，1表示该字段在该数据表的第几列*/
		  createXml.setAttributeName("id",1); 
		  
		  /**创建元素名，4表示username在该表的第4列*/
		  createXml.setElementName("username",4); 
		  
		  /**开始创建xml文件*/
		  createXml.startCreateXml(); 
		  
		  /**
		   * 生成的xml样例
		   * &lt;?xml version="1.0" encoding="GB2312"?>
           *  
           *  &lt;userinfo>
           *     &lt;user id="402881e5174e8a1f01174e8aeff20001">
           *         &lt;username>java&lt;/username>
           *     &lt;/user>
		   *  &lt;/userinfo>
		   * */
	}
}</pre>
          <br/><br/>
          <span style="color:red;">
            <a href="http://der.javaeye.com/blog/183860#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 17 Apr 2008 18:01:55 +0800</pubDate>
        <link>http://der.javaeye.com/blog/183860</link>
        <guid>http://der.javaeye.com/blog/183860</guid>
      </item>
  </channel>
</rss>