﻿<?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-myJavaBlog</title><link>http://www.blogjava.net/1186858036/</link><description>java世界</description><language>zh-cn</language><lastBuildDate>Sun, 12 Apr 2026 06:05:21 GMT</lastBuildDate><pubDate>Sun, 12 Apr 2026 06:05:21 GMT</pubDate><ttl>60</ttl><item><title>教你如何将普通表转换为分区表</title><link>http://www.blogjava.net/1186858036/archive/2012/04/19/375275.html</link><dc:creator>夏凡</dc:creator><author>夏凡</author><pubDate>Thu, 19 Apr 2012 07:31:00 GMT</pubDate><guid>http://www.blogjava.net/1186858036/archive/2012/04/19/375275.html</guid><wfw:comment>http://www.blogjava.net/1186858036/comments/375275.html</wfw:comment><comments>http://www.blogjava.net/1186858036/archive/2012/04/19/375275.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/1186858036/comments/commentRss/375275.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/1186858036/services/trackbacks/375275.html</trackback:ping><description><![CDATA[<span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">需求描述：</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">一个表已经上线，但是上线之后发现该表的数据量很大，而且会删除历史数据，该表上要建立多个唯一索引，现在的问题就是在建表的时候是建立了一个普通表，现在需要将普通表转化为分区表，并尽量减少对应用的影响</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">1、使用ctas的方式来建立</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">create table t1</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">(</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">ID VARCHAR2(60) not null,</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">a VARCHAR2(60) not null,</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">b VARCHAR2(60) not null,</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">create_time TIMESTAMP(6) not null,</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">d NUMBER(2) not null,</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">e VARCHAR2(400) not null,</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">OUTER_ID VARCHAR2(100)</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">)----原表</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">---建立分区表：</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">create table t1_new</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">(</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">ID_1 ,</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">a ,</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">b ,</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">create_time ,</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">d ,</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">e ,</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">OUTER_ID&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">)partition by range (ID_1)</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">(</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">partition p_t1_new values less than ('201204'),</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">partition p_t2_new values less than ('201205'))</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">as</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">select * from t1;----此时应用还是不断的往t1表中插入数据-</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">alter table t1_new add constraints pk_t1_new primary key (id) using tablespace local index_tablespace;----建立本地索引为了删除历史数据</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">/alter table t1_new add constraints pk_t1_new primary key (id_1) using index local ;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">但是应用还在outer_id上建立唯一索引</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">create unique index IDX_t1_new_2 on t1_new (OUTER_ID) LOCAL ;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">此时报</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">ORA-14039: 分区列必须构成 UNIQUE 索引的关键字列子集</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">原来oracle不支持在分区表上创建PK主键时主键列不包含分区列，创建另外的约束（unique）也不可以。</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">为了解决这个问题，两种方法</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">1、将分区键加到唯一索引里面</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">2、将local索引变为global索引----此时当进行历史数据删除的时候会导致索引失效</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">权衡之后在outer_id上建立普通索引</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">alter table t1 rename to t1_bak;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">alter table t1_new rename to t1;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">在进行ctas之后需要进行数据完整新检查，而且在进行rename的时候会导致应用连接失效（也有可能在进行alter的时候获取不到表锁而失败）---适用于修改不很频繁的表</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">2、使用交换分区的方式</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">----原表</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">create table t1</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">(</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">ID VARCHAR2(60) not null,</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">a VARCHAR2(60) not null,</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">b VARCHAR2(60) not null,</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">create_time TIMESTAMP(6) not null,</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">d NUMBER(2) not null,</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">e VARCHAR2(400) not null,</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">OUTER_ID VARCHAR2(100)</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">)</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">alter table t1 add constraints pk_t1 primary key(id) ;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">新表</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">create table t1_new</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">(</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">ID_1 ,</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">a ,</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">b ,</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">create_time ,</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">d ,</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">e ,</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">OUTER_ID&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">)partition by range (ID_1)</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">(</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">partition p_t1_new values less than ('201204'),</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">partition p_t2_new values less than ('201205'))</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">alter table t1_new add constraints pk_t1_new primary key (id_1) using index local ;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">ALTER TABLE t1_new EXCHANGE PARTITION p_t1_new WITH TABLE t1 without validation;----要不要加上without validation（加上的话就是不验证数据是否有效，直接全部放在p_t1_new分区中）</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">然后进行rename操作</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">优点：只是对数据字典中分区和表的定义进行了修改，没有数据的修改或复制，效率最高。如果对数据在分区中的分布没有进一步要求的话，实现比较简单。在执行完RENAME操作后，可以检查T_OLD中是否存在数据，如果存在的话，直接将这些数据插入到T中，可以保证对T插入的操作不会丢失。</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">不足：仍然存在一致性问题，交换分区之后RENAME T_NEW TO T之前，查询、更新和删除会出现错误或访问不到数据。如果要求数据分布到多个分区中，则需要进行分区的SPLIT操作，会增加操作的复杂度，效率也会降低。</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">适用于包含大数据量的表转到分区表中的一个分区的操作。应尽量在闲时进行操作。</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">3、在线重定义</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">----原表</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">create table t1</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">(</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">ID VARCHAR2(60) not null,</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">a VARCHAR2(60) not null,</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">b VARCHAR2(60) not null,</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">create_time TIMESTAMP(6) not null,</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">d NUMBER(2) not null,</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">e VARCHAR2(400) not null,</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">OUTER_ID VARCHAR2(100)</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">)</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">alter table t1 add constraints pk_t1 primary key(id) ;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">新表</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">create table t1_new</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">(</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">ID_1 ,</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">a ,</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">b ,</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">create_time ,</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">d ,</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">e ,</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">OUTER_ID&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">)partition by range (ID_1)</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">(</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">partition p_t1_new values less than ('201204'),</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">partition p_t2_new values less than ('201205'))</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">alter table t1_new add constraints pk_t1_new primary key (id_1) using index local ;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; background-color: #ffffff; "><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; font-size: 14pt; ">EXEC DBMS_REDEFINITION.CAN_REDEF_TABLE(USER, 'T1', DBMS_REDEFINITION.CONS_USE_PK);</span><br /><br /><font face="Helvetica, Tahoma, Arial, sans-serif" size="4"><span style="line-height: 25px;">EXEC DBMS_REDEFINITION.START_REDEF_TABLE(USER, 'T1', 'T1_NEW',DBMS_REDEFINITION.CONS_USE_PK);</span></font><br /><font face="Helvetica, Tahoma, Arial, sans-serif" size="4"><span style="line-height: 25px; font-size: 8pt; ">（转载请注明出处：</span></font><span style="line-height: 25px; font-size: 8pt; ">[url=http://www.k6567.com]e世博[/url]</span><div><span style="line-height: 25px; font-size: 8pt; ">[url=http://www.d9732.com]澳门博彩[/url]</span><font face="Helvetica, Tahoma, Arial, sans-serif" size="4"><span style="line-height: 25px; font-size: 8pt; ">）</span></font></div></p><img src ="http://www.blogjava.net/1186858036/aggbug/375275.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/1186858036/" target="_blank">夏凡</a> 2012-04-19 15:31 <a href="http://www.blogjava.net/1186858036/archive/2012/04/19/375275.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>聊聊关于请求重定向与请求发的比较</title><link>http://www.blogjava.net/1186858036/archive/2012/04/19/375273.html</link><dc:creator>夏凡</dc:creator><author>夏凡</author><pubDate>Thu, 19 Apr 2012 06:34:00 GMT</pubDate><guid>http://www.blogjava.net/1186858036/archive/2012/04/19/375273.html</guid><wfw:comment>http://www.blogjava.net/1186858036/comments/375273.html</wfw:comment><comments>http://www.blogjava.net/1186858036/archive/2012/04/19/375273.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/1186858036/comments/commentRss/375273.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/1186858036/services/trackbacks/375273.html</trackback:ping><description><![CDATA[<span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">尽管httpservletresponse.sendredirect方法和requestdispatcher.forward方法都可以让浏览器获得另外一个url所指向的资源，但两者的内部运行机制有着很大的区别。下面是httpservletresponse.sendredirect方法实现的请求重定向与requestdispatcher.forward方法实现的请求转发的总结比较：<br /><br /></span><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">（1）requestdispatcher.forward方法只能将请求转发给同一个web应用中的组件；而httpservletresponse.sendredirect 方法不仅可以重定向到当前应用程序中的其他资源，还可以重定向到同一个站点上的其他应用程序中的资源，甚至是使用绝对url重定向到其他站点的资源。如果传递给httpservletresponse.sendredirect 方法的相对url以&#8220;/&#8221;开头，它是相对于整个web站点的根目录；如果创建requestdispatcher对象时指定的相对url以&#8220;/&#8221;开头，它是相对于当前web应用程序的根目录。<br /><br /></span><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">（2）调用httpservletresponse.sendredirect方法重定向的访问过程结束后，浏览器地址栏中显示的url会发生改变，由初始的url地址变成重定向的目标url；而调用requestdispatcher.forward 方法的请求转发过程结束后，浏览器地址栏保持初始的url地址不变。<br /><br /></span><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">（3）httpservletresponse.sendredirect方法对浏览器的请求直接作出响应，响应的结果就是告诉浏览器去重新发出对另外一个url的 访问请求，这个过程好比有个绰号叫&#8220;浏览器&#8221;的人写信找张三借钱，张三回信说没有钱，让&#8220;浏览器&#8221;去找李四借，并将李四现在的通信地址告诉给了&#8220;浏览器&#8221;。于是，&#8220;浏览器&#8221;又按张三提供通信地址给李四写信借钱，李四收到信后就把钱汇给了&#8220;浏览器&#8221;。可见，&#8220;浏览器&#8221;一共发出了两封信和收到了两次回复， &#8220;浏览器&#8221;也知道他借到的钱出自李四之手。requestdispatcher.forward方 法在服务器端内部将请求转发给另外一个资源，浏览器只知道发出了请求并得到了响应结果，并不知道在服务器程序内部发生了转发行为。这个过程好比绰号叫&#8220;浏览器&#8221;的人写信找张三借钱，张三没有钱，于是张三找李四借了一些钱，甚至还可以加上自己的一些钱，然后再将这些钱汇给了&#8220;浏览器&#8221;。可见，&#8220;浏览器&#8221;只发 出了一封信和收到了一次回复，他只知道从张三那里借到了钱，并不知道有一部分钱出自李四之手。<br /><br /></span><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">（4）requestdispatcher.forward方法的调用者与被调用者之间共享相同的request对象和response对象，它们属于同一个访问请求和响应过程；而httpservletresponse.sendredirect方法调用者与被调用者使用各自的request对象和response对象，它们属于两个独立的访问请求和响应过程。对于同一个web应用程序的内部资源之间的跳转，特别是跳转之前要对请求进行一些前期预处理，并要使用httpservletrequest.setattribute方法传递预处理结果，那就应该使用requestdispatcher.forward方法。不同web应用程序之间的重定向，特别是要重定向到另外一个web站点上的资源的情况，都应该使用httpservletresponse.sendredirect方法。<br /><br /></span><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">（5）无论是requestdispatcher.forward方法，还是httpservletresponse.sendredirect方法，在调用它们之前，都不能有内容已经被实际输出到了客户端。如果缓冲区中已经有了一些内容，这些内容将被从缓冲区中清除。</span>&nbsp;&nbsp;<br /><span style="font-size: 8pt; ">（转载请注明出处：</span><span style="font-size: 8pt; ">[url=http://www.a9832.com]博彩网[/url]</span><div><span style="font-size: 8pt; ">[url=http://www.tswa.org]博彩通[/url]</span><span style="font-size: 8pt; ">）</span></div><img src ="http://www.blogjava.net/1186858036/aggbug/375273.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/1186858036/" target="_blank">夏凡</a> 2012-04-19 14:34 <a href="http://www.blogjava.net/1186858036/archive/2012/04/19/375273.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>简单介绍java中Runtime类和Process类</title><link>http://www.blogjava.net/1186858036/archive/2012/04/19/375239.html</link><dc:creator>夏凡</dc:creator><author>夏凡</author><pubDate>Thu, 19 Apr 2012 02:21:00 GMT</pubDate><guid>http://www.blogjava.net/1186858036/archive/2012/04/19/375239.html</guid><wfw:comment>http://www.blogjava.net/1186858036/comments/375239.html</wfw:comment><comments>http://www.blogjava.net/1186858036/archive/2012/04/19/375239.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/1186858036/comments/commentRss/375239.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/1186858036/services/trackbacks/375239.html</trackback:ping><description><![CDATA[<span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">在java.lang包当中定义了一个Runtime类，在java中对于Runtime类的定义如下：</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">public class Runtime</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">extends Object</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">每个 Java 应用程序都有一个 Runtime 类实例，使应用程序能够与其运行的环境相连接。可以通过 getRuntime 方法获取当前运行时。应用程序不能创建自己的 Runtime 类实例。</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">根据上面的话，我们知道对于每一个java程序来说都只有一个Runtime类实例，而且不能由用户创建一个Runtime实例，既然不能创建那么这个类的实例的作用是什么呢?它提供了应用程序和应用程序正在运行的环境的一个接口。Runtime不能由我们创建，我们可以通过Runtime类的一个静态方法，得到一个Runtime类的实例。获取了这个实例之后我们就可以获取java虚拟机的自由内存、也可以获取这个java虚拟机的总的内存等(具体的方法可以参照java帮助文档Runtime类的方法学习)，也就是说这个类提供了应用程序了环境的接口。下面我们举一个例子程序：</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">Runtime rt=Runtime.getRuntime();</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">System.out.println(rt.freeMemory());</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">System.out.println(rt.totalMemory());//结果返回的是数字</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">Runtime类还有一个好处就是可以执行一个外部的程序，可以调用Runtime类的exec()方法传入一个命令(exec()方法有几个重载的方法，可以自己学习)，创建一个子进程，结果返货一个Process类的实例，通过这个实例我们可以管理创建的子进程。对于Process类在java帮助文档中描述如下：</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">public abstract class Process</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">extends Object</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">ProcessBuilder.start() 和 Runtime.exec 方法创建一个本机进程，并返回 Process 子类的一个实例，该实例可用来控制进程并获得相关信息。Process 类提供了执行从进程输入、执行输出到进程、等待进程完成、检查进程的退出状态以及销毁（杀掉）进程的方法。</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">public abstract class Process</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">extends Object</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">ProcessBuilder.start() 和 Runtime.exec 方法创建一个本机进程，并返回 Process 子类的一个实例，该实例可用来控制进程并获得相关信息。Process 类提供了执行从进程输入、执行输出到进程、等待进程完成、检查进程的退出状态以及销毁（杀掉）进程的方法。</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">下面我们接着上面的代码继续写：</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">try{</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">rt.exec("notepad");}</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">catch(Exception e){</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">e.printStackTrace;}//在使用exec()方法的时候会抛出一个异常，我们需要捕获</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">这段代码，是运行在windows上的，它调用了windows系统的记事本程序。举一反三我们同样可以用这个方法去编译java的文件，只是传入的参数是&#8220;javac ***.java&#8221;。</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">对于Process类的实例主要作用是创建一个可以管理的进程，并对它进行管理。Process类还有几个方法分别是destroy() 杀掉子进程、exitValue()返回子进程的出口值、getErrorStream()获取子进程的错误流，错误流获得由该 Process 对象表示的进程的错误输出流传送的数据，还有获取输入流输出流请读者自己参照java帮助文档学习。</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">这是自己在接触Runtime类和Process类的时候学到的一些东西，分享出来希望对大家有用，大家看见了若是有不对的地方，请指出来。</span>&nbsp;<br /><span style="font-size: 8pt; ">(转载请注明出处：</span><span style="font-size: 8pt; ">[url=http://www.live588.org]淘金盈[/url]</span><div><span style="font-size: 8pt; ">[url=http://www.10086money.com]时尚资讯[/url]</span><span style="font-size: 8pt; ">)</span></div><img src ="http://www.blogjava.net/1186858036/aggbug/375239.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/1186858036/" target="_blank">夏凡</a> 2012-04-19 10:21 <a href="http://www.blogjava.net/1186858036/archive/2012/04/19/375239.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于Java多线程1—程序、进程、线程的一些比较</title><link>http://www.blogjava.net/1186858036/archive/2012/04/19/375237.html</link><dc:creator>夏凡</dc:creator><author>夏凡</author><pubDate>Thu, 19 Apr 2012 02:19:00 GMT</pubDate><guid>http://www.blogjava.net/1186858036/archive/2012/04/19/375237.html</guid><wfw:comment>http://www.blogjava.net/1186858036/comments/375237.html</wfw:comment><comments>http://www.blogjava.net/1186858036/archive/2012/04/19/375237.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/1186858036/comments/commentRss/375237.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/1186858036/services/trackbacks/375237.html</trackback:ping><description><![CDATA[<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; "><span style="font-size: 14pt; ">许多人对于程序、进程、线程这几个概念许多人都分的不是很清楚，下面我们就简单的介绍一下它们的区别。</span></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; "><span style="font-size: 14pt; ">程序是计算机指令的集合，它以文件的形式存储在磁盘上。程序是通常我们所写好的存储于计算机上没有执行的指令的集合，通俗的讲就是我们自己写的代码。我们写的代码不可能只是为了存储吧，必须运行才不会浪费我们的辛苦，等到我们将我们的代码运行了，就产生了进程。</span></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; "><span style="font-size: 14pt; ">进程：是一个程序在其自身的地址空间中的一次执行活动。通常的程序是不能并发执行的。为了使程序能够独立运行，应该为之配置一些进程控制块，即PCB；而由程序段，相关数据段和PCB三部分构成了进程实体。通常我们并不区分进程和进程实体，基本上就代表同一事物。进程是资源申请、调度和独立运行的单位，因此，它使用系统中的运行资源；而程序不能申请系统资源，不能被系统调度，也不能作为独立运行的单位，因此，它不占用系统的运行资源。</span></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; "><span style="font-size: 14pt; ">20世纪60年代人们提出了进程的概念，在OS中一直都是以进程作为能独立运行和拥有资源的基本单位。但是进程间的切换比较麻烦费时，所以在20世纪80年代人们为了提高系统内程序并发执行的程度，进一步提高系统的吞吐量，提出了比进程更小的能独立运行的基本单位。线程又称为轻量级进程，它和进程一样拥有独立的执行控制，由操作系统负责调度，区别在于线程没有独立的存储空间，而是和所属进程中的其它线程共享一个存储空间，这使得线程间的通信远较进程简单。一个进程可以同时拥有一个或者多个线程，这几个线程共享同样的数据。</span></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; "><span style="font-size: 14pt; ">现在的CPU几乎都是多核的了，这样多线程的程序，运行起来就更加流畅。下面我们通过图片来比较一下单线程和多线程：</span></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; "><img alt="" src="http://hi.csdn.net/attachment/201110/11/0_1318338993tXV9.gif" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; " /><br /></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; "><span style="font-size: 14pt; ">这个就好比我们算一道数学题（2+3）*（5-3），如果我们使用左边的单线程，只能是先算2+3然后算5-3，最后结果相加。但是如果我们使用右边的多线程，我们可以同时对2+3和5-3进行运算，然后再对最后的结果相加。我想哪个运行的比较快就不用说了，另外多线程在图像处理，多用户通信等方面用户都很多。</span></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; "><span style="font-size: 14pt; ">可能读者会说如果我们用的是单CPU的PC那么他们就差别不大了，但是现在的事实是现在的PC基本都是多核了，所以多线程是为了我们更好的将程序移植到多核的CPU上。还有一点就是对于线程的切换，比进程的切换速度快的多，多线程更好的发挥CPU的效率。</span></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; background-color: #ffffff; "><font face="Helvetica, Tahoma, Arial, sans-serif" size="4"><span style="line-height: 25px;">写的不好，如果哪里错了希望大家指出。希望对你有帮助。</span></font><br /><font face="Helvetica, Tahoma, Arial, sans-serif" size="4"><span style="line-height: 25px; font-size: 8pt; ">(转载请注明出处：</span></font><span style="line-height: 25px; font-size: 8pt; ">[url=http://www.6rfd.com]澳门博彩[/url]</span><div><span style="line-height: 25px; font-size: 8pt; ">[url=http://www.9gds.com]易博网[/url]</span><font face="Helvetica, Tahoma, Arial, sans-serif" size="4"><span style="line-height: 25px; font-size: 8pt; ">)</span></font></div></p><img src ="http://www.blogjava.net/1186858036/aggbug/375237.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/1186858036/" target="_blank">夏凡</a> 2012-04-19 10:19 <a href="http://www.blogjava.net/1186858036/archive/2012/04/19/375237.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java中的多态，多态的例子</title><link>http://www.blogjava.net/1186858036/archive/2012/04/19/375236.html</link><dc:creator>夏凡</dc:creator><author>夏凡</author><pubDate>Thu, 19 Apr 2012 02:15:00 GMT</pubDate><guid>http://www.blogjava.net/1186858036/archive/2012/04/19/375236.html</guid><wfw:comment>http://www.blogjava.net/1186858036/comments/375236.html</wfw:comment><comments>http://www.blogjava.net/1186858036/archive/2012/04/19/375236.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/1186858036/comments/commentRss/375236.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/1186858036/services/trackbacks/375236.html</trackback:ping><description><![CDATA[<p style="margin-top: 4px; margin-right: 0px; margin-bottom: 4px; margin-left: 0px; padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; "><span style="font-size: 14pt; ">当面临一个问题，有多种实现算途径的时候，要想到java中的核心：多态。</span></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; "><br /><span style="font-size: 14pt; ">多态的思想：</span></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; "></p><p style="margin-top: 4px; margin-right: 0px; margin-bottom: 4px; margin-left: 0px; padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; "><span style="font-size: 14pt; ">概括地讲，在运用父类引用指向子类对象的情况下，基本上就用到了多态了。</span></p><p style="margin-top: 4px; margin-right: 0px; margin-bottom: 4px; margin-left: 0px; padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; "><br /></p><p style="margin-top: 4px; margin-right: 0px; margin-bottom: 4px; margin-left: 0px; padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; "><span style="font-size: 14pt; ">最简单的多态应该是继承：</span></p><p style="margin-top: 4px; margin-right: 0px; margin-bottom: 4px; margin-left: 0px; padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; "><span style="font-size: 14pt; ">public class Tank {</span><br /><span style="font-size: 14pt; ">public void move() {</span><br /><span style="font-size: 14pt; ">System.out.println("I am father");</span><br /><span style="font-size: 14pt; ">}</span><br /><span style="font-size: 14pt; ">}</span><br /></p><p style="margin-top: 4px; margin-right: 0px; margin-bottom: 4px; margin-left: 0px; padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; "><br /></p><p style="margin-top: 4px; margin-right: 0px; margin-bottom: 4px; margin-left: 0px; padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; "><span style="font-size: 14pt; ">public class Tank2 extends Tank{</span><br /><span style="font-size: 14pt; ">@Override</span><br /><span style="font-size: 14pt; ">public void move(){</span><br /><span style="font-size: 14pt; ">System.out.println("I am child a");</span><br /><span style="font-size: 14pt; ">}</span><br /></p><div style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; "></div><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">public class Client {</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">public static void main(String[] args) {</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">Tank t2 = new Tank2(); ///父类引用指向了子类对象</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">t2.move(); ///父类中的move方法，但实际具体的实现是tank2对象对move的实现。</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; "><span style="font-size: 14pt; ">}</span></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; "><span style="font-size: 14pt; ">}</span></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; "><span style="font-size: 14pt; ">接口和抽象类的例子：</span></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; "><br /><span style="font-size: 14pt; ">对于抽象类和接口，有许多类实现这个接口(或者继承这个抽象类)。</span><br /><span style="font-size: 14pt; ">在调用的时候，用父类引用指向子类对象的方法。然后，调用对象的方法，编译器就会自动根据这个对象实际属于哪个实现类，</span><br /><span style="font-size: 14pt; ">来调出这个类对于接口或者抽象类的具体实现。</span><br /><br /><span style="font-size: 14pt; ">例：</span><br /><span style="font-size: 14pt; ">public class Address {</span><br /><span style="font-size: 14pt; ">private String name;</span><br /><span style="font-size: 14pt; ">public Address(String name){</span><br /><span style="font-size: 14pt; ">this.name = name;</span><br /><span style="font-size: 14pt; ">}</span><br /><span style="font-size: 14pt; ">public String getName() {</span><br /><span style="font-size: 14pt; ">return name;</span><br /><span style="font-size: 14pt; ">}</span><br /><span style="font-size: 14pt; ">public void setName(String name) {</span><br /><span style="font-size: 14pt; ">this.name = name;</span><br /><span style="font-size: 14pt; ">}</span><br /><span style="font-size: 14pt; ">}</span><br /><br /><span style="font-size: 14pt; ">定义基类(抽象类)：</span><br /><span style="font-size: 14pt; ">public abstract class Vehicle {</span><br /><span style="font-size: 14pt; ">abstract void go(Address address);</span><br /><span style="font-size: 14pt; ">}</span><br /><br /><span style="font-size: 14pt; ">Car对于基类的实现：</span><br /><span style="font-size: 14pt; ">public class Car extends Vehicle{</span><br /><span style="font-size: 14pt; ">@Override</span><br /><span style="font-size: 14pt; ">public void go(Address address){</span><br /><span style="font-size: 14pt; ">System.out.println("Car to " + address.getName());</span><br /><span style="font-size: 14pt; ">}</span><br /><span style="font-size: 14pt; ">}</span><br /><br /><span style="font-size: 14pt; ">Plane对于基类的实现：</span><br /><span style="font-size: 14pt; ">public class Plane extends Vehicle{</span><br /><span style="font-size: 14pt; ">@Override</span><br /><span style="font-size: 14pt; ">void go(Address address) {</span><br /><span style="font-size: 14pt; ">System.out.println("Plane to " + address.getName());</span><br /><span style="font-size: 14pt; ">}</span><br /><span style="font-size: 14pt; ">}</span><br /><br /><br /><span style="font-size: 14pt; ">Driver中多态：</span><br /><span style="font-size: 14pt; ">public void drive(Vehicle v){ ///多态，父类引用指向子类对象，实际传过来的是抽象类Vehicle的子类，或者实现类，然后编译器会根据具体实现类，来找实现方法。</span><br /><span style="font-size: 14pt; ">v.go(new Address("杭州(abstract)")); ///此方法在具体的实现中被重写</span><br /><span style="font-size: 14pt; ">}</span><br /><br /><span style="font-size: 14pt; ">Test:</span><br /><span style="font-size: 14pt; ">public static void main(String[] args) {</span><br /><span style="font-size: 14pt; ">Driver d = new Driver();</span><br /><span style="font-size: 14pt; ">d.drive(new Plane()); //实际是Plane对象，则编译器就会找到Plane中，对go的实现</span><br /><span style="font-size: 14pt; ">d.drive(new Car()); //实际是Car对象，则编译器就会找到Plane中，对go的实现</span><br /><span style="font-size: 14pt; ">}</span><br /><br /><span style="font-size: 14pt; ">输出结果：</span><br /><span style="font-size: 14pt; ">Plane to 杭州(abstract)</span><br /><span style="font-size: 14pt; ">Car to 杭州(abstract)</span><br /><br /><span style="font-size: 14pt; ">事实上，这就是多态所起的作用，可以实现控制反转这在大量的J2EE轻量级框架中被用到，比如Spring的依赖注射机制。</span><br /><span style="font-size: 14pt; ">（通过注入不同的bean，来得到不同的实现类）</span><br /><br /><span style="font-size: 14pt; ">接口与抽象类的区别：</span><br /><br /><span style="font-size: 14pt; ">有个概念，但还没有想到具体实现。</span><br /><span style="font-size: 14pt; ">对于一些共用的，已经有实现了，可以设计成接口。</span><br /><br /><span style="font-size: 14pt; ">上面是抽象类，下面把它转化为接口：</span><br /><br /><span style="font-size: 14pt; ">IVehicle.java</span><br /><span style="font-size: 14pt; ">public interface IVehicle {</span><br /><span style="font-size: 14pt; ">public void go(Address address);</span><br /><span style="font-size: 14pt; ">}</span><br /><br /><span style="font-size: 14pt; ">CarImpl.java</span><br /><span style="font-size: 14pt; ">public class CarImpl implements IVehicle{</span><br /><span style="font-size: 14pt; ">public void go(Address address) {</span><br /><span style="font-size: 14pt; ">System.out.println("CarImpl to " +address.getName());</span><br /><span style="font-size: 14pt; ">}</span><br /><span style="font-size: 14pt; ">}</span><br /><br /><span style="font-size: 14pt; ">PlameImpl.java</span><br /><span style="font-size: 14pt; ">public class PlaneImpl implements IVehicle{</span><br /><span style="font-size: 14pt; ">public void go(Address address) {</span><br /><span style="font-size: 14pt; ">System.out.println("PlaneImpl to " + address.getName());</span><br /><span style="font-size: 14pt; ">}</span><br /><span style="font-size: 14pt; ">}</span><br /><br /><span style="font-size: 14pt; ">Driver.java</span><br /><span style="font-size: 14pt; ">////多态之接口</span><br /><span style="font-size: 14pt; ">public void driveI(IVehicle v){</span><br /><span style="font-size: 14pt; ">v.go(new Address("杭州(interface)"));</span><br /><span style="font-size: 14pt; ">}</span><br /><br /><span style="font-size: 14pt; ">Test.java</span><br /><span style="font-size: 14pt; ">////用接口实现</span><br /><span style="font-size: 14pt; ">d.driveI(new PlaneImpl());</span><br /><span style="font-size: 14pt; ">d.driveI(new PlaneImpl());</span><br /><br /><span style="font-size: 14pt; ">打印结果：</span><br /><span style="font-size: 14pt; ">PlaneImpl to 杭州(interface)</span><br /><span style="font-size: 14pt; ">PlaneImpl to 杭州(interface)</span><br /></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; "><br /></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; "><span style="font-size: 14pt; ">多态的三要素：1.继承 2.重写 3.父类引用指向子类对象</span></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; "></p><p style="margin-top: 4px; margin-right: 0px; margin-bottom: 4px; margin-left: 0px; padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; text-align: left; background-color: #ffffff; "><font face="Helvetica, Tahoma, Arial, sans-serif" size="4"><span style="line-height: 25px;">以上就是我目前学习中的总结，如有不足之处，还望多多赐教。</span></font><br /><font face="Helvetica, Tahoma, Arial, sans-serif" size="4"><span style="line-height: 25px; font-size: 8pt; ">(转载请注明出处：</span></font><span style="line-height: 25px; font-size: 8pt; ">[url=http://www.k8764.com]博彩通[/url]</span><div><span style="line-height: 25px; font-size: 8pt; ">[url=http://www.5sfd.com]e世博[/url]</span><font face="Helvetica, Tahoma, Arial, sans-serif" size="4"><span style="line-height: 25px; font-size: 8pt; ">)</span></font></div></p><img src ="http://www.blogjava.net/1186858036/aggbug/375236.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/1186858036/" target="_blank">夏凡</a> 2012-04-19 10:15 <a href="http://www.blogjava.net/1186858036/archive/2012/04/19/375236.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何使用java读取Properties文件来改变实现类</title><link>http://www.blogjava.net/1186858036/archive/2012/04/19/375232.html</link><dc:creator>夏凡</dc:creator><author>夏凡</author><pubDate>Thu, 19 Apr 2012 02:05:00 GMT</pubDate><guid>http://www.blogjava.net/1186858036/archive/2012/04/19/375232.html</guid><wfw:comment>http://www.blogjava.net/1186858036/comments/375232.html</wfw:comment><comments>http://www.blogjava.net/1186858036/archive/2012/04/19/375232.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/1186858036/comments/commentRss/375232.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/1186858036/services/trackbacks/375232.html</trackback:ping><description><![CDATA[<span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">用java读取Properties文件来改变实现类的Demo：</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">public abstract class Vehicle {</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">public abstract void run();</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">}</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">public class Car extends Vehicle{</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">public void run(){</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">System.out.println("with Car");</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">}</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">}</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">public class Broom extends Vehicle {</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">@Override</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">public void run() {</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">System.out.println("Broom");</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">}</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">}</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">test.properties 中：</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">VehicleType=abstractfactory.step4properties.Broom</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">注意：该文件要放在src目录下，且等号两边不可有空格</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">import java.util.Properties;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">public class Test {</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">public static void main(String[] args) throws Exception{</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">Properties pros = new Properties();</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">///配置文件编译之后放在bin目录下</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">//每个class的类，都会被当作Class对象。getClassLoader:拿到了装载这个Class的装载器</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">///把它当作一个流读进来，默认路径是根目录。读出来之后，把它转化为一个properties对象，然后，等号左边的就是key，等号右边的就是value</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">pros.load(Test.class.getClassLoader().getResourceAsStream("abstractfactory/step4properties/spring.properties"));</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">String vehicleTypeName = pros.getProperty("VehicleType");</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">System.out.println(vehicleTypeName);</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">///现在，得到的字符串，我们想把字符串代表的类，产生一个对象，用到反射</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">///Class.forName把字符串所代表的表装到内存,newInstance：生成对象，得到的是个Object</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">Vehicle v = (Vehicle)Class.forName(vehicleTypeName).newInstance();</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">v.run();</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">//只要改变test.properties中的VehicleType=factory.step4Spring.Broom，即可实现改变实现类的功能。</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">}</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">}<br /></span><span style="font-size: 8pt; ">(转载请注明出处：</span><span style="font-size: 8pt; ">[url=http://www.k6567.com]e世博[/url]</span><div><span style="font-size: 8pt; ">[url=http://www.d9732.com]澳门博彩[/url]</span><span style="font-size: 8pt; ">)</span></div><img src ="http://www.blogjava.net/1186858036/aggbug/375232.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/1186858036/" target="_blank">夏凡</a> 2012-04-19 10:05 <a href="http://www.blogjava.net/1186858036/archive/2012/04/19/375232.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>教你关于JSP连接MYSQL5的中文问题解决方法</title><link>http://www.blogjava.net/1186858036/archive/2012/04/19/375228.html</link><dc:creator>夏凡</dc:creator><author>夏凡</author><pubDate>Thu, 19 Apr 2012 01:58:00 GMT</pubDate><guid>http://www.blogjava.net/1186858036/archive/2012/04/19/375228.html</guid><wfw:comment>http://www.blogjava.net/1186858036/comments/375228.html</wfw:comment><comments>http://www.blogjava.net/1186858036/archive/2012/04/19/375228.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/1186858036/comments/commentRss/375228.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/1186858036/services/trackbacks/375228.html</trackback:ping><description><![CDATA[<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; ">用JAVA/JSP做开发很久了,也见过许多朋友做过,有很大一部分用的是MYSQL的数据库,现在MYSQL数据库版本5.0及以上的都已经被用的很广泛了,但一直有一个问题,使刚入门的朋友费劲心思.就是JSP连接MYSQL5数据库的时候的一些中文问题.于是网络上也出现了很多相关的帖子.由些大家对MYSQL5数据库的配制文件MY.INI也有了些了解.甚至一些朋友就直接问:你们的MYSQL是什么编码的?你们的TOMCAT是什么样的编码,可能不是很规范的问法,但说明了编码问题的确影响了大家的使用.</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; ">下面的讲解是在MYSQL5.0.18,TOMCAT5.0.28,驱动为mysql-connector-java-3.2.0-alpha-bin.jar及以上版本的情况下测试的</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; ">JSP连接数据库的乱码问题,分两部分来看</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; ">1 数据库中是不是乱码?</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; ">我们需要保证数据库保存的不是"?????"形式的乱码,如何保证呢?</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; ">我们在管理MYSQL数据库的时候,需要用一个客户端,无论你用MYSQL-FRONT,EMS SQL Manager for MySQL,还是MYSQL命令行,这些都是客户端,也是程序连接了数据库,我们现在用客户端EMS SQL Manager for MySQL连接数据库,连接的时候一定要设置客户端字符集为GBK或者GB2312,这样你才能知道数据库里面是不是乱码.这一编码设置很重要,不然,就算数据库里是中文,你看到的还是乱码</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; "><img alt="" src="http://www.jspcn.net/upload/2008/5/2/12097387635150.jpg" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; " /></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; ">这样连接后,我们看下我们做测试的表格,里面的汉字就是正常的,这个时候也可以直接在上面的记录中进入中文的修改</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; "><img alt="" src="http://www.jspcn.net/upload/2008/5/2/12097391864840.jpg" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; " /></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; ">若这里没有选择编码的话,一般默认的就是UTF8的了,连接后再看这个表格,就会出现乱码</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; "><img alt="" src="http://www.jspcn.net/upload/2008/5/2/12097392812650.jpg" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; " /></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; ">而这个时候就会出现不能插入中文的问题,若您插入中文的话,就会出现下列错误</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; "><img alt="" src="http://www.jspcn.net/upload/2008/5/2/12097394007180.jpg" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; " /></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; ">这个时候大家什么不要误解,不是不能插入中文,也不是你插入的字符太长,</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; ">更改下连接编码就OK了.下面是这个表格的SQL语句</p><div style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; ">CREATE TABLE `test` (<br />`name` varchar(100) default NULL,<br />`adesc` varchar(100) default NULL<br />) ENGINE=InnoDB DEFAULT CHARSET=gb2312;</div><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; ">二.程序连接数据时,也要设置好连接时候的编码,JSP连接MYSQL数据库时候,有个URL参数,jdbc:mysql://localhost:3307/sssdb?user=demoUser&amp;password=demoPwd&amp;useUnicode=true&amp;characterEncoding=UTF-8,在这里需要设置成UTF-8,</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; ">下面是连接数据库的程序代码</p><div style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; "><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">&lt;%@ page contentType="text/html;charset=GB2312" language="java"%&gt;<br />&lt;%@ page import="java.io.*" %&gt;&nbsp;<br />&lt;%@ page import="java.util.*" %&gt;<br />&lt;%@ page import="java.sql.*" %&gt;</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">&lt;%<br />out.println("您的数据库某表格中的内容如下&lt;br&gt;");<br />try {<br />Class.forName("com.mysql.jdbc.Driver").newInstance();&nbsp;<br />String url ="jdbc:mysql://localhost:3307/sssdb?user=demoUser&amp;password=demoPwd&amp;useUnicode=true&amp;characterEncoding=UTF-8";<br />//testDB为你的数据库名&nbsp;<br />Connection conn= DriverManager.getConnection(url);&nbsp;<br />Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);<br />String sql="select * from test";</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">ResultSet rs=stmt.executeQuery(sql);&nbsp;<br />while(rs.next()) {<br />out.println("第一个字段内容：&lt;font color=red&gt;"+rs.getString(1)+"&lt;/font&gt; 第二个字段内容：&lt;font color=red&gt;"+rs.getString(2)+"&lt;/font&gt;&lt;br&gt;");<br />}<br />out.print("数据库操作成功，恭喜你");</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">sql = "insert into test (name,adesc) values ('中文','汉字')";<br />stmt.execute(sql);</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><br />rs.close();&nbsp;<br />stmt.close();&nbsp;<br />conn.close();&nbsp;<br />}<br />catch(Exception e){<br />System.out.println("数据库连接不成功"+e.toString());<br />}<br />%&gt;</p></div><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; background-color: #ffffff; "><font face="Helvetica, Tahoma, Arial, sans-serif"><span style="line-height: 25px;">上面的经验是经过多次尝试总结出来的,不管是MYSQL的客户端还是程序连接MYSQL数据库,在本质上都是程序连接数据库,可以自己在本地多试验下,有时候有可能是驱动太旧.</span></font><br /><font face="Helvetica, Tahoma, Arial, sans-serif"><span style="line-height: 25px; font-size: 8pt; ">（转载请注明出处：</span></font><span style="line-height: 25px; font-size: 8pt; ">[url=http://www.a9832.com]博彩网[/url]<br /></span><span style="line-height: 25px; font-size: 8pt; ">[url=http://www.tswa.org]博彩通[/url]</span><font face="Helvetica, Tahoma, Arial, sans-serif"><span style="line-height: 25px; font-size: 8pt; ">）</span></font></p><img src ="http://www.blogjava.net/1186858036/aggbug/375228.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/1186858036/" target="_blank">夏凡</a> 2012-04-19 09:58 <a href="http://www.blogjava.net/1186858036/archive/2012/04/19/375228.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>你懂得如何用QTP录制鼠标右键点击事件吗</title><link>http://www.blogjava.net/1186858036/archive/2012/04/19/375226.html</link><dc:creator>夏凡</dc:creator><author>夏凡</author><pubDate>Thu, 19 Apr 2012 01:51:00 GMT</pubDate><guid>http://www.blogjava.net/1186858036/archive/2012/04/19/375226.html</guid><wfw:comment>http://www.blogjava.net/1186858036/comments/375226.html</wfw:comment><comments>http://www.blogjava.net/1186858036/archive/2012/04/19/375226.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/1186858036/comments/commentRss/375226.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/1186858036/services/trackbacks/375226.html</trackback:ping><description><![CDATA[<span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">qtp录制鼠标右键单击事件要通过模拟键盘操作来实现</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">step 1，修改replaytype为2，一般情况默认设置是1的。（1 &#8211; 使用浏览器事件运行鼠标操作。 2 &#8211; 使用鼠标运行鼠标操作）</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">setting.webpackage(&#8221;replaytype&#8221;) = 2</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">step 2，鼠标右键单击事件</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">（附：click的事件有三种 micleftbtn 0 鼠标左键。 micrightbtn 1 鼠标右键。 micmiddlebtn 2 鼠标中键）</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">browser(&#8221;支付宝 &#8211; 网上支付 安全快速！&#8221;).page(&#8221;支付宝 &#8211; 网上支付 安全快速！&#8221;).link(&#8221;返回我要付款&#8221;).click , , micrightbtn</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">step 3，点击右键弹出的菜单（采用键盘事件来模拟）</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">set wshshell = createobject(&#8221;wscript.shell&#8221;)</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">wshshell.sendkeys &#8220;{down}&#8221; //键盘向下的箭头</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">wshshell.sendkeys &#8220;{down}&#8221;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; font-size: 14pt; background-color: #ffffff; ">wshshell.sendkeys &#8220;{enter}&#8221; //回车键</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">step 4，修改replaytype为1（使用浏览器事件运行鼠标操作）</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">setting.webpackage(&#8221;replaytype&#8221;) = 1</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; font-size: 14pt; ">good to go now.</span>&nbsp;<br /><span style="font-size: 8pt; ">(转载请注明出处：</span><span style="font-size: 8pt; ">[url=http://www.live588.org]淘金盈[/url]</span><div><span style="font-size: 8pt; ">[url=http://www.10086money.com]时尚资讯[/url]</span><span style="font-size: 8pt; ">)</span></div><img src ="http://www.blogjava.net/1186858036/aggbug/375226.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/1186858036/" target="_blank">夏凡</a> 2012-04-19 09:51 <a href="http://www.blogjava.net/1186858036/archive/2012/04/19/375226.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>通过jquery 获取父窗口的元素 父窗口 子窗口的方法</title><link>http://www.blogjava.net/1186858036/archive/2012/04/19/375225.html</link><dc:creator>夏凡</dc:creator><author>夏凡</author><pubDate>Thu, 19 Apr 2012 01:49:00 GMT</pubDate><guid>http://www.blogjava.net/1186858036/archive/2012/04/19/375225.html</guid><wfw:comment>http://www.blogjava.net/1186858036/comments/375225.html</wfw:comment><comments>http://www.blogjava.net/1186858036/archive/2012/04/19/375225.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/1186858036/comments/commentRss/375225.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/1186858036/services/trackbacks/375225.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: $("#父窗口元素ID",window.parent.document);&nbsp;对应javascript版本为window.parent.document.getElementByIdx_x("父窗口元素ID")；&nbsp;取父窗口的元素方法：$(selector, window.parent.document);&nbsp;那么你取父窗口的父窗口的元素就可以用：$(selector, w...&nbsp;&nbsp;<a href='http://www.blogjava.net/1186858036/archive/2012/04/19/375225.html'>阅读全文</a><img src ="http://www.blogjava.net/1186858036/aggbug/375225.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/1186858036/" target="_blank">夏凡</a> 2012-04-19 09:49 <a href="http://www.blogjava.net/1186858036/archive/2012/04/19/375225.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>教你使用C# 实现文件锁</title><link>http://www.blogjava.net/1186858036/archive/2012/04/19/375224.html</link><dc:creator>夏凡</dc:creator><author>夏凡</author><pubDate>Thu, 19 Apr 2012 01:43:00 GMT</pubDate><guid>http://www.blogjava.net/1186858036/archive/2012/04/19/375224.html</guid><wfw:comment>http://www.blogjava.net/1186858036/comments/375224.html</wfw:comment><comments>http://www.blogjava.net/1186858036/archive/2012/04/19/375224.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/1186858036/comments/commentRss/375224.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/1186858036/services/trackbacks/375224.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: C#代码&nbsp;&nbsp;using&nbsp;System;&nbsp;&nbsp;using&nbsp;System.Collections.Generic;&nbsp;&nbsp;using&nbsp;System.ComponentModel;&nbsp;&nbsp;using&nbsp;System.Data;&nbsp;&nbsp;using&nbsp;System.Drawin...&nbsp;&nbsp;<a href='http://www.blogjava.net/1186858036/archive/2012/04/19/375224.html'>阅读全文</a><img src ="http://www.blogjava.net/1186858036/aggbug/375224.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/1186858036/" target="_blank">夏凡</a> 2012-04-19 09:43 <a href="http://www.blogjava.net/1186858036/archive/2012/04/19/375224.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>