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

<channel>
	<title>亲亲宝宝</title>
	<atom:link href="http://www.wenhq.com/feed" rel="self" type="application/rss+xml" />
	<link>http://www.wenhq.com</link>
	<description>记录宝宝成长文章和软件开发经验笔记</description>
	<lastBuildDate>Mon, 09 Jan 2012 00:52:35 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>12306购买火车票历险记</title>
		<link>http://www.wenhq.com/article/view_718.html</link>
		<comments>http://www.wenhq.com/article/view_718.html#comments</comments>
		<pubDate>Mon, 09 Jan 2012 00:52:35 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[网站]]></category>

		<guid isPermaLink="false">http://www.wenhq.com/article/view_718.html</guid>
		<description><![CDATA[首先说明一下12306网站的体验算是有史以来最差的，以前从没想过这样的网站能活的这么好，如果是一个电子商务网站的，不知道会咋的。
12306的好处是让我们知道，虽然票很紧张，仔细看下就明白了，凡是有动车和普通车的，动车有票，普通车没票；方式有高铁和动车的，动车就没票了，高铁确富富有余；这看起来不大象是运力不足。
1、配置环境：
先按照网站提示把证书装好，最好使用ie6浏览器；
开通好网银；
2、注册用户：
关键信息&#8211;姓名、个人有效证件、电话、邮箱；
3、在12306的网站上有各地车站的放票时间，提前查看下放票时间；
4、提前5分钟登录网站，输入好出发地和目的地，出发时间等放票时间一到赶紧查；
今年成功购买了一张14号得卧铺票，算是这10多年买票最省事的一次，不用半夜排队，花费了几分钟，虽然很快这个网站我就再也连不上了。但访问该站的静态页面是可以的，说明不是服务器带宽的问题，而是网站并发处理能力太差；
第二次帮朋友买18号就很不幸了，连续三天花了N个小时才买上20号的。
造成网站访问量大的原因：
1、引用的css，js文件多；
2、采用了frame框架，经常返回失败，一般用户还不会刷新frame；
3、最要命的就是一次购买完成不了，需要连续三天或者更多时间连续访问，访问量能低吗；
]]></description>
			<content:encoded><![CDATA[<p>首先说明一下12306网站的体验算是有史以来最差的，以前从没想过这样的网站能活的这么好，如果是一个电子商务网站的，不知道会咋的。<br />
12306的好处是让我们知道，虽然票很紧张，仔细看下就明白了，凡是有动车和普通车的，动车有票，普通车没票；方式有高铁和动车的，动车就没票了，高铁确富富有余；这看起来不大象是运力不足。<br />
1、配置环境：<br />
先按照网站提示把证书装好，最好使用ie6浏览器；<br />
开通好网银；<br />
2、注册用户：<br />
关键信息&#8211;姓名、个人有效证件、电话、邮箱；<br />
3、在12306的网站上有各地车站的放票时间，提前查看下放票时间；<br />
4、提前5分钟登录网站，输入好出发地和目的地，出发时间等放票时间一到赶紧查；<br />
今年成功购买了一张14号得卧铺票，算是这10多年买票最省事的一次，不用半夜排队，花费了几分钟，虽然很快这个网站我就再也连不上了。但访问该站的静态页面是可以的，说明不是服务器带宽的问题，而是网站并发处理能力太差；<br />
第二次帮朋友买18号就很不幸了，连续三天花了N个小时才买上20号的。<br />
造成网站访问量大的原因：<br />
1、引用的css，js文件多；<br />
2、采用了frame框架，经常返回失败，一般用户还不会刷新frame；<br />
3、最要命的就是一次购买完成不了，需要连续三天或者更多时间连续访问，访问量能低吗；</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wenhq.com/article/view_718.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>xml xslt中的空格输出处理</title>
		<link>http://www.wenhq.com/article/view_717.html</link>
		<comments>http://www.wenhq.com/article/view_717.html#comments</comments>
		<pubDate>Sun, 25 Dec 2011 09:04:08 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[XSL-FO]]></category>

		<guid isPermaLink="false">http://www.wenhq.com/?p=717</guid>
		<description><![CDATA[
xml xslt中的空格输出处理,这个问题困扰了我很久都没有找到解决方法。
今天硬着头皮终于找到了一个可以用的解决方法了。
很简单，即用&#38;#160;就可以表示空格了。
其他参考资料

用&#60;xsl:text&#62;&#60;/xsl:text&#62;可以保留空格，注意这里的xsl类型为text才可以，为其他的就不行了。
另外，disable-output-escaping  属性为yes时，可以禁止转义输出，即直接输出&#60;，&#38;等字符&#60;xsl:text  disable-output-escaping=&#8221;yes&#8221;&#62;&#38;amp;nbsp;&#60;/xsl:text&#62;
&#38;#160;或者&#60;xsl:text disable-output-escaping=&#8221;yes&#8221;&#62;&#60;![CDATA[&#38;nbsp;&#38;nbsp;]]&#62;&#60;/xsl:text&#62;
－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－
在XSL中如何显示空格? 用&#38;#32;无效，而&#38;nbps;则出错
&#60;xsl:text disable-output-escaping=&#8221;yes&#8221;&#62;&#38;amp;nbsp;&#60;/xsl:text&#62;
&#60;xsl:text disable-output-escaping=&#8221;yes&#8221;&#62;&#38;lt;![CDATA[&#38;nbsp;]]&#38;gt;&#60;/xsl:text&#62;
&#60;xsl:value-of disable-output-escaping=&#8221;yes&#8221;&#62;&#38;lt;![CDATA[&#38;nbsp;]]&#38;gt;&#60;/xsl:value-of&#62;
&#60;xsl:value-of disable-output-escaping=&#8221;yes&#8221;&#62;&#38;amp;nbsp;&#60;/xsl:value-of&#62;
都可以，注意：必需要有disable-output-escaping=&#8221;yes&#8221;这个属性说明才可以。


]]></description>
			<content:encoded><![CDATA[<div id="blog_text">
<p>xml xslt中的空格输出处理,这个问题困扰了我很久都没有找到解决方法。</p>
<p>今天硬着头皮终于找到了一个可以用的解决方法了。</p>
<p>很简单，即用&amp;#160;就可以表示空格了。</p>
<p>其他参考资料</p>
<div>
<p>用&lt;xsl:text&gt;&lt;/xsl:text&gt;可以保留空格，注意这里的xsl类型为text才可以，为其他的就不行了。</p>
<p>另外，disable-output-escaping  属性为yes时，可以禁止转义输出，即直接输出&lt;，&amp;等字符&lt;xsl:text  disable-output-escaping=&#8221;yes&#8221;&gt;&amp;amp;nbsp;&lt;/xsl:text&gt;</p>
<p>&amp;#160;或者&lt;xsl:text disable-output-escaping=&#8221;yes&#8221;&gt;&lt;![CDATA[&amp;nbsp;&amp;nbsp;]]&gt;&lt;/xsl:text&gt;</p>
<p>－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－</p>
<p><strong>在XSL中如何显示空格? 用&amp;#32;无效，而&amp;nbps;则出错</p>
<p></strong>&lt;xsl:text disable-output-escaping=&#8221;yes&#8221;&gt;&amp;amp;nbsp;&lt;/xsl:text&gt;<br />
&lt;xsl:text disable-output-escaping=&#8221;yes&#8221;&gt;&amp;lt;![CDATA[&amp;nbsp;]]&amp;gt;&lt;/xsl:text&gt;<br />
&lt;xsl:value-of disable-output-escaping=&#8221;yes&#8221;&gt;&amp;lt;![CDATA[&amp;nbsp;]]&amp;gt;&lt;/xsl:value-of&gt;<br />
&lt;xsl:value-of disable-output-escaping=&#8221;yes&#8221;&gt;&amp;amp;nbsp;&lt;/xsl:value-of&gt;<br />
都可以，注意：必需要有disable-output-escaping=&#8221;yes&#8221;这个属性说明才可以。</p>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.wenhq.com/article/view_717.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JAVA实现AES的加密和解密算法</title>
		<link>http://www.wenhq.com/article/view_716.html</link>
		<comments>http://www.wenhq.com/article/view_716.html#comments</comments>
		<pubDate>Sun, 04 Dec 2011 07:43:17 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[java基础]]></category>

		<guid isPermaLink="false">http://www.wenhq.com/?p=716</guid>
		<description><![CDATA[import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
/**AES 是一种可逆加密算法，对用户的敏感信息加密处理
* 对原始数据进行AES加密后，在进行Base64编码转化；
*/
public class AESOperator {
/*
* 加密用的Key 可以用26个字母和数字组成
* 此处使用AES-128-CBC加密模式，key需要为16位。
*/
private String sKey=&#8221;0123456789abcdef&#8221;;
private String ivParameter=&#8221;0123456789abcdef&#8221;;
private static AESOperator instance=null;
private AESOperator(){
}
public static AESOperator getInstance(){
if (instance==null)
instance= new AESOperator();
return instance;
}
// 加密
public String encrypt(String sSrc) throws Exception {
Cipher cipher = Cipher.getInstance(&#8220;AES/CBC/PKCS5Padding&#8221;);
byte[] raw = sKey.getBytes();
SecretKeySpec skeySpec = new SecretKeySpec(raw, &#8220;AES&#8221;);
IvParameterSpec iv = new IvParameterSpec(ivParameter.getBytes());//使用CBC模式，需要一个向量iv，可增加加密算法的强度
cipher.init(Cipher.ENCRYPT_MODE, skeySpec, iv);
byte[] encrypted = [...]]]></description>
			<content:encoded><![CDATA[<p>import javax.crypto.Cipher;<br />
import javax.crypto.spec.IvParameterSpec;<br />
import javax.crypto.spec.SecretKeySpec;</p>
<p>import sun.misc.BASE64Decoder;<br />
import sun.misc.BASE64Encoder;</p>
<p>/**AES 是一种可逆加密算法，对用户的敏感信息加密处理<br />
* 对原始数据进行AES加密后，在进行Base64编码转化；<br />
*/<br />
public class AESOperator {<br />
/*<br />
* 加密用的Key 可以用26个字母和数字组成<br />
* 此处使用AES-128-CBC加密模式，key需要为16位。<br />
*/<br />
private String sKey=&#8221;0123456789abcdef&#8221;;<br />
private String ivParameter=&#8221;0123456789abcdef&#8221;;<br />
private static AESOperator instance=null;<br />
private AESOperator(){</p>
<p>}<br />
public static AESOperator getInstance(){<br />
if (instance==null)<br />
instance= new AESOperator();<br />
return instance;<br />
}<br />
// 加密<br />
public String encrypt(String sSrc) throws Exception {<br />
Cipher cipher = Cipher.getInstance(&#8220;AES/CBC/PKCS5Padding&#8221;);<br />
byte[] raw = sKey.getBytes();<br />
SecretKeySpec skeySpec = new SecretKeySpec(raw, &#8220;AES&#8221;);<br />
IvParameterSpec iv = new IvParameterSpec(ivParameter.getBytes());//使用CBC模式，需要一个向量iv，可增加加密算法的强度<br />
cipher.init(Cipher.ENCRYPT_MODE, skeySpec, iv);<br />
byte[] encrypted = cipher.doFinal(sSrc.getBytes(&#8220;utf-8&#8243;));<br />
return new BASE64Encoder().encode(encrypted);//此处使用BASE64做转码。<br />
}</p>
<p>// 解密<br />
public String decrypt(String sSrc) throws Exception {<br />
try {<br />
byte[] raw = sKey.getBytes(&#8220;ASCII&#8221;);<br />
SecretKeySpec skeySpec = new SecretKeySpec(raw, &#8220;AES&#8221;);<br />
Cipher cipher = Cipher.getInstance(&#8220;AES/CBC/PKCS5Padding&#8221;);<br />
IvParameterSpec iv = new IvParameterSpec(ivParameter.getBytes());<br />
cipher.init(Cipher.DECRYPT_MODE, skeySpec, iv);<br />
byte[] encrypted1 = new BASE64Decoder().decodeBuffer(sSrc);//先用base64解密<br />
byte[] original = cipher.doFinal(encrypted1);<br />
String originalString = new String(original,&#8221;utf-8&#8243;);<br />
return originalString;<br />
} catch (Exception ex) {<br />
return null;<br />
}<br />
}</p>
<p>public static void main(String[] args) throws Exception {<br />
// 需要加密的字串<br />
String cSrc = &#8220;我来自www.wenhq.com&#8221;;<br />
System.out.println(cSrc);<br />
// 加密<br />
long lStart = System.currentTimeMillis();<br />
String enString = AESOperator.getInstance().encrypt(cSrc);<br />
System.out.println(&#8220;加密后的字串是：&#8221; + enString);</p>
<p>long lUseTime = System.currentTimeMillis() &#8211; lStart;<br />
System.out.println(&#8220;加密耗时：&#8221; + lUseTime + &#8220;毫秒&#8221;);<br />
// 解密<br />
lStart = System.currentTimeMillis();<br />
String DeString = AESOperator.getInstance().decrypt(enString);<br />
System.out.println(&#8220;解密后的字串是：&#8221; + DeString);<br />
lUseTime = System.currentTimeMillis() &#8211; lStart;<br />
System.out.println(&#8220;解密耗时：&#8221; + lUseTime + &#8220;毫秒&#8221;);<br />
}<br />
}</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wenhq.com/article/view_716.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>fop的流程控制语句</title>
		<link>http://www.wenhq.com/article/view_715.html</link>
		<comments>http://www.wenhq.com/article/view_715.html#comments</comments>
		<pubDate>Wed, 30 Nov 2011 11:19:14 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[XSL-FO]]></category>

		<guid isPermaLink="false">http://www.wenhq.com/?p=715</guid>
		<description><![CDATA[fop中条件判断有两种方式：
第一、   if语句
&#60;xsl:if test=&#8221;host =&#8217;wenhq&#8217;&#8221;&#62;
&#60;fo:block&#62;亲亲宝宝&#60;/fo:block&#62;
&#60;/xsl:if&#62;
host是xml中数据，可以动态设置
第二、   when语句
&#60;xsl:choose&#62;
&#60;xsl:when test="host ='wenhq'"&#62;
&#60;fo:block&#62;亲亲宝宝&#60;/fo:block&#62;
    &#60;/xsl:when&#62;
    &#60;xsl:otherwise&#62;
&#60;fo:block&#62;不是来自亲亲宝宝&#60;/fo:block&#62;
    &#60;/xsl:otherwise&#62;
&#60;/xsl:choose&#62;
]]></description>
			<content:encoded><![CDATA[<p>fop中条件判断有两种方式：</p>
<p>第一、   if语句</p>
<p>&lt;xsl:if test=&#8221;host =&#8217;wenhq&#8217;&#8221;&gt;</p>
<p>&lt;fo:block&gt;亲亲宝宝&lt;/fo:block&gt;</p>
<p>&lt;/xsl:if&gt;</p>
<p>host是xml中数据，可以动态设置</p>
<p>第二、   when语句</p>
<pre>&lt;xsl:choose&gt;</pre>
<pre>&lt;xsl:when test="host ='wenhq'"&gt;</pre>
<p>&lt;fo:block&gt;亲亲宝宝&lt;/fo:block&gt;</p>
<pre>    &lt;/xsl:when&gt;</pre>
<pre>    &lt;xsl:otherwise&gt;</pre>
<p>&lt;fo:block&gt;不是来自亲亲宝宝&lt;/fo:block&gt;</p>
<pre>    &lt;/xsl:otherwise&gt;</pre>
<pre>&lt;/xsl:choose&gt;</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.wenhq.com/article/view_715.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>fop动态引用图片</title>
		<link>http://www.wenhq.com/article/view_714.html</link>
		<comments>http://www.wenhq.com/article/view_714.html#comments</comments>
		<pubDate>Fri, 25 Nov 2011 11:17:57 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[XSL-FO]]></category>

		<guid isPermaLink="false">http://www.wenhq.com/?p=714</guid>
		<description><![CDATA[fop中一般是这样应用图片：
&#60;fo:external-graphic src=&#8221;url(/path/cover1.jpg)&#8221; /&#62;
这样图片是不会变的，有时需要根据条件换个图片，src属性值不能引入&#60;xsl:value-of select= 去获取xml中的值。可以通过attribute的属性给src动态赋值，如：
&#60;fo:external-graphic&#62;
&#60;xsl:attribute name=&#8221;src&#8221;&#62;&#60;xsl:value-of select=&#8221;concat(&#8216;url(&#38;quot;&#8217;,Data/SealJpg, &#8216;.jpg&#8217;, &#8216;&#38;quot;)&#8217;)&#8221;/&#62;&#60;/xsl:attribute&#62;
&#60;/fo:external-graphic&#62;
]]></description>
			<content:encoded><![CDATA[<p>fop中一般是这样应用图片：</p>
<p>&lt;fo:external-graphic src=&#8221;url(/path/cover1.jpg)&#8221; /&gt;</p>
<p>这样图片是不会变的，有时需要根据条件换个图片，src属性值不能引入&lt;xsl:value-of select= 去获取xml中的值。可以通过attribute的属性给src动态赋值，如：</p>
<p>&lt;fo:external-graphic&gt;</p>
<p>&lt;xsl:attribute name=&#8221;src&#8221;&gt;&lt;xsl:value-of select=&#8221;concat(&#8216;url(&amp;quot;&#8217;,Data/SealJpg, &#8216;.jpg&#8217;, &#8216;&amp;quot;)&#8217;)&#8221;/&gt;&lt;/xsl:attribute&gt;</p>
<p>&lt;/fo:external-graphic&gt;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wenhq.com/article/view_714.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>mysql常用命令</title>
		<link>http://www.wenhq.com/article/view_713.html</link>
		<comments>http://www.wenhq.com/article/view_713.html#comments</comments>
		<pubDate>Sun, 13 Nov 2011 02:48:37 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[IT杂谈]]></category>
		<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false">http://www.wenhq.com/?p=713</guid>
		<description><![CDATA[1、查看当前的连接数
mysqladmin -u root -proot  -h 127.0.0.1 processlist
2关于自增字段重新赋初值的问题？
ALTER TABLE tbl AUTO_INCREMENT = 1;
3、查看当前最大连接数：
mysqladmin -uroot -proot variables &#124;find &#8220;max_con&#8221;
mysqladmin -uroot -proot variables &#124;find &#8220;threads&#8221;
4、修改最大连接数
客户端登录：mysql -uroot -proot
设置新的最大连接数为200：mysql&#62; set GLOBAL max_connections=1000
显示当前运行的Query：mysql&#62; show processlist
显示完整的sql    mysql&#62;show full processlist;
显示当前状态：mysql&#62; show status
显示所有数据库 mysql&#62;show databases;
选定数据库 mysql&#62;use database1111；
显示数据库的表 mysql&#62;show tables;
退出客户端：mysql&#62; exit
列出所有表名：SHOW TABLES FROM `lvyeinfo`
xplain来了解SQL执行的状态。
explain select * from wp_posts\G;
使用show status like &#8220;Handler_read%&#8221;; 来了解索引的效果。
Handler_read_key 值高表示索引效果好，Handler_read_rnd_next值高表示索引低效。
#######################################################
mysql的函数：
SELECT MOD(234, 10);  [...]]]></description>
			<content:encoded><![CDATA[<p>1、查看当前的连接数</p>
<p>mysqladmin -u root -proot  -h 127.0.0.1 processlist</p>
<p>2关于自增字段重新赋初值的问题？</p>
<p>ALTER TABLE tbl AUTO_INCREMENT = 1;</p>
<p>3、查看当前最大连接数：</p>
<p>mysqladmin -uroot -proot variables |find &#8220;max_con&#8221;</p>
<p>mysqladmin -uroot -proot variables |find &#8220;threads&#8221;</p>
<p>4、修改最大连接数</p>
<p>客户端登录：mysql -uroot -proot</p>
<p>设置新的最大连接数为200：mysql&gt; set GLOBAL max_connections=1000</p>
<p>显示当前运行的Query：mysql&gt; show processlist</p>
<p>显示完整的sql    mysql&gt;show full processlist;</p>
<p>显示当前状态：mysql&gt; show status</p>
<p>显示所有数据库 mysql&gt;show databases;</p>
<p>选定数据库 mysql&gt;use database1111；</p>
<p>显示数据库的表 mysql&gt;show tables;</p>
<p>退出客户端：mysql&gt; exit</p>
<p>列出所有表名：SHOW TABLES FROM `lvyeinfo`</p>
<p>xplain来了解SQL执行的状态。</p>
<p>explain select * from wp_posts\G;</p>
<p>使用show status like &#8220;Handler_read%&#8221;; 来了解索引的效果。</p>
<p>Handler_read_key 值高表示索引效果好，Handler_read_rnd_next值高表示索引低效。</p>
<p>#######################################################</p>
<p>mysql的函数：</p>
<p>SELECT MOD(234, 10);  求余算法</p>
<p>round 四舍五入；</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wenhq.com/article/view_713.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>mysql 查询所有表名</title>
		<link>http://www.wenhq.com/article/view_712.html</link>
		<comments>http://www.wenhq.com/article/view_712.html#comments</comments>
		<pubDate>Sun, 06 Nov 2011 02:48:29 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[数据库]]></category>
		<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false">http://www.wenhq.com/?p=712</guid>
		<description><![CDATA[
mysql使用sql查询表名的两种方法：
1、show tables;
2、SELECT TABLE_NAME,TABLE_ROWS FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA=&#8217;dbname&#8217;;&#8211;dbname为mysql的数据库名称
查询指定数据库中指定表的所有字段名
select column_name from information_schema.columns where table_schema=’YOURDATABASENAME’ and table_name=’YOURTABLENAME’
 
mysql使用sql查询表名的两种方法：
1、show tables;
2、SELECT TABLE_NAME,TABLE_ROWS FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA=&#8217;dbname&#8217;;&#8211;dbname为mysql的数据库名称
 
查询指定数据库中指定表的所有字段名
select column_name from information_schema.columns where table_schema=’YOURDATABASENAME’ and table_name=’YOURTABLENAME’

]]></description>
			<content:encoded><![CDATA[<p><!--[if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:PunctuationKerning /> <w:DrawingGridVerticalSpacing>7.8 磅</w:DrawingGridVerticalSpacing> <w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery> <w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery> <w:ValidateAgainstSchemas /> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:Compatibility> <w:SpaceForUL /> <w:BalanceSingleByteDoubleByteWidth /> <w:DoNotLeaveBackslashAlone /> <w:ULTrailSpace /> <w:DoNotExpandShiftReturn /> <w:AdjustLineHeightInTable /> <w:BreakWrappedTables /> <w:SnapToGridInCell /> <w:WrapTextWithPunct /> <w:UseAsianBreakRules /> <w:DontGrowAutofit /> <w:UseFELayout /> </w:Compatibility> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" LatentStyleCount="156"> </w:LatentStyles> </xml><![endif]--><!--[if gte mso 10]><br />
<style>
 /* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:普通表格;
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-parent:"";
	mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
	mso-para-margin:0cm;
	mso-para-margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";
	mso-ansi-language:#0400;
	mso-fareast-language:#0400;
	mso-bidi-language:#0400;}
</style>
<p> <![endif]--></p>
<p class="MsoNormal"><span lang="EN-US">mysql</span><span style="font-family: 宋体;">使用</span><span lang="EN-US">sql</span><span style="font-family: 宋体;">查询表名的两种方法：</span></p>
<p class="MsoNormal"><span lang="EN-US">1</span><span style="font-family: 宋体;">、</span><span lang="EN-US">show tables;</span></p>
<p class="MsoNormal"><span lang="EN-US">2</span><span style="font-family: 宋体;">、</span><span lang="EN-US">SELECT TABLE_NAME,TABLE_ROWS FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA=&#8217;dbname&#8217;;&#8211;dbname</span><span style="font-family: 宋体;">为</span><span lang="EN-US">mysql</span><span style="font-family: 宋体;">的数据库名称</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">查询指定数据库中指定表的所有字段名</span></p>
<p class="MsoNormal"><span lang="EN-US">select column_name from information_schema.columns<span> </span>where table_schema=’YOURDATABASENAME’ and table_name=’YOURTABLENAME’</span></p>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow: hidden;"><!--[if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:PunctuationKerning /> <w:DrawingGridVerticalSpacing>7.8 磅</w:DrawingGridVerticalSpacing> <w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery> <w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery> <w:ValidateAgainstSchemas /> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:Compatibility> <w:SpaceForUL /> <w:BalanceSingleByteDoubleByteWidth /> <w:DoNotLeaveBackslashAlone /> <w:ULTrailSpace /> <w:DoNotExpandShiftReturn /> <w:AdjustLineHeightInTable /> <w:BreakWrappedTables /> <w:SnapToGridInCell /> <w:WrapTextWithPunct /> <w:UseAsianBreakRules /> <w:DontGrowAutofit /> <w:UseFELayout /> </w:Compatibility> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" LatentStyleCount="156"> </w:LatentStyles> </xml><![endif]--><!--[if gte mso 10]> <mce:style><!   /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:普通表格; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-parent:""; 	mso-padding-alt:0cm 5.4pt 0cm 5.4pt; 	mso-para-margin:0cm; 	mso-para-margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:10.0pt; 	font-family:"Times New Roman"; 	mso-fareast-font-family:"Times New Roman"; 	mso-ansi-language:#0400; 	mso-fareast-language:#0400; 	mso-bidi-language:#0400;} --> <!--[endif]--></p>
<p class="MsoNormal"><span lang="EN-US">mysql</span><span style="font-family: 宋体;">使用</span><span lang="EN-US">sql</span><span style="font-family: 宋体;">查询表名的两种方法：</span></p>
<p class="MsoNormal"><span lang="EN-US">1</span><span style="font-family: 宋体;">、</span><span lang="EN-US">show tables;</span></p>
<p class="MsoNormal"><span lang="EN-US">2</span><span style="font-family: 宋体;">、</span><span lang="EN-US">SELECT TABLE_NAME,TABLE_ROWS FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA=&#8217;dbname&#8217;;&#8211;dbname</span><span style="font-family: 宋体;">为</span><span lang="EN-US">mysql</span><span style="font-family: 宋体;">的数据库名称</span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">查询指定数据库中指定表的所有字段名</span></p>
<p class="MsoNormal"><span lang="EN-US">select column_name from information_schema.columns<span> </span>where table_schema=’YOURDATABASENAME’ and table_name=’YOURTABLENAME’</span></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.wenhq.com/article/view_712.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>java访问未验证证书的HTTPS</title>
		<link>http://www.wenhq.com/article/view_711.html</link>
		<comments>http://www.wenhq.com/article/view_711.html#comments</comments>
		<pubDate>Thu, 20 Oct 2011 00:33:30 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[tomcat]]></category>

		<guid isPermaLink="false">http://www.wenhq.com/?p=711</guid>
		<description><![CDATA[用http进行连接的，客户端代码比较简单，直接使用URL类进行连接并获取输入流即可。https不需要客户端证书，并且服务器端的证书是已经受信任的也同http一样容易。当验证的证书每年的费用得好几千元，为了省钱，这里主要是说java访问未验证证书的https的访问。
通常有两种方案：1、将证书导入到TrustStore文件中；2、修改X509证书信任管理器类的实现。推荐使用第一种方案，我们可以尽量让服务器的证书稳定，不在使用中修改就可以了。
第一步、导出服务器端证书。用ie连接地址，然后出现了证书确认的提示框，点击查看证书－详细信息，点击复制到文件，选择base64编码，导出保存文件为test.cert。
第二步、把证书从其它文件导入到TrustStore文件中。
keytool -import -file test.cer -keystore test_store
第三步、设置java的javax.net.ssl.trustStore的系统属性
System.setProperty(&#8220;javax.net.ssl.trustStore&#8221;, &#8220;D: \\test_store&#8221;);//注意是绝对路径
这样通过HttpClient应用接口就可以访问我们自己的https服务了。
常见错误：javax.net.ssl.SSLException: java.lang.RuntimeException: Unexpected error: Java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty 异常，有两种情况：
1、没有设置或者文件路径设置错误；
2、证书就采用keytool的默认jks类型就可以，否则也会报错，参考内容
An implementation of PKCS12 as JCA keystore type &#8220;pkcs12&#8243;. Storing trusted anchors in PKCS12 is not supported. Users should store trust anchors in JKS format and save private keys in PKCS12 format.
来自http://www.cs.nyu.edu/artg/internet/Spring2006/readings/JSSERefGuide.html
]]></description>
			<content:encoded><![CDATA[<p>用http进行连接的，客户端代码比较简单，直接使用URL类进行连接并获取输入流即可。https不需要客户端证书，并且服务器端的证书是已经受信任的也同http一样容易。当验证的证书每年的费用得好几千元，为了省钱，这里主要是说java访问未验证证书的https的访问。<br />
通常有两种方案：1、将证书导入到TrustStore文件中；2、修改X509证书信任管理器类的实现。推荐使用第一种方案，我们可以尽量让服务器的证书稳定，不在使用中修改就可以了。<br />
第一步、导出服务器端证书。用ie连接地址，然后出现了证书确认的提示框，点击查看证书－详细信息，点击复制到文件，选择base64编码，导出保存文件为test.cert。<br />
第二步、把证书从其它文件导入到TrustStore文件中。<br />
keytool -import -file test.cer -keystore test_store<br />
第三步、设置java的javax.net.ssl.trustStore的系统属性<br />
System.setProperty(&#8220;javax.net.ssl.trustStore&#8221;, &#8220;D: \\test_store&#8221;);//注意是绝对路径<br />
这样通过HttpClient应用接口就可以访问我们自己的https服务了。<br />
常见错误：javax.net.ssl.SSLException: java.lang.RuntimeException: Unexpected error: Java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty 异常，有两种情况：<br />
1、没有设置或者文件路径设置错误；<br />
2、证书就采用keytool的默认jks类型就可以，否则也会报错，参考内容<br />
An implementation of PKCS12 as JCA keystore type &#8220;pkcs12&#8243;. Storing trusted anchors in PKCS12 is not supported. Users should store trust anchors in JKS format and save private keys in PKCS12 format.<br />
来自http://www.cs.nyu.edu/artg/internet/Spring2006/readings/JSSERefGuide.html</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wenhq.com/article/view_711.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>tomcat中配置ssl</title>
		<link>http://www.wenhq.com/article/view_710.html</link>
		<comments>http://www.wenhq.com/article/view_710.html#comments</comments>
		<pubDate>Mon, 17 Oct 2011 10:11:19 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[tomcat]]></category>

		<guid isPermaLink="false">http://www.wenhq.com/?p=710</guid>
		<description><![CDATA[ssl是安全连接的缩写，也就是通过https访问，tomcat中配置ssl很方便，大致有几步：
第一、   生成一个证书；
Java中的keytool就可以很方便生成证书，在命令行先进入java的bin目录，然后执行：
keytool -genkey -alias tomcat -keyalg RSA -validity 10000 -dname &#8220;cn=127.0.0.1,o=qcb,c=cn&#8221; -keystore tomcat.jks -storepass 123456  -keypass 123456
就可以生成一个tomcat.jks的证书。
第二、   修改配置文件；
&#60;Connector port=&#8221;8443&#8243; maxHttpHeaderSize=&#8221;8192&#8243;
maxThreads=&#8221;150&#8243; minSpareThreads=&#8221;25&#8243; maxSpareThreads=&#8221;75&#8243;
enableLookups=&#8221;false&#8221; disableUploadTimeout=&#8221;true&#8221;
acceptCount=&#8221;100&#8243; scheme=&#8221;https&#8221; secure=&#8221;true&#8221;  keystoreFile=&#8221;tomcat.jks&#8221; keystorePass=&#8221;123456&#8243;
clientAuth=&#8221;false&#8221; sslProtocol=&#8221;TLS&#8221; /&#62;
keystoreFile的路径是TOMCAT的安装路径下的tomcat. jks (使用keytool生成的证书库文件，并拷贝到tomcat的安装路径)
keystoreFile保存了服务器端的证书库，用于客户端认证。
常用的配置属性：
clientAuth
如果想要Tomcat为了使用这个socket而要求所有SSL客户出示一个客户证书，置该值为true。
keystoreFile
如果创建的keystore文件不在Tomcat认为的缺省位置（一个在Tomcat运行的home目录下的叫.keystore的文件），则加上该属性。可以指定一个绝对路径或依赖$CATALINA_BASE环境变量的相对路径。
keystorePass
如果使用了一个与Tomcat预期不同的keystore（和证书）密码，则加入该属性。
keystoreType
如果使用了一个PKCS12 keystore，加入该属性。有效值是JKS和PKCS12。
sslProtocol
socket使用的加密/解密协议。如果使用的是Sun的JVM，则不建议改变这个值。据说IBM的1.4.1版的TLS协议的实现和一些流行的浏览器不兼容。这种情况下，使用SSL。
ciphers
此socket允许使用的被逗号分隔的密码列表。缺省情况下，可以使用任何可用的密码。
algorithm
使用的X509算法。缺省为Sun的实现（SunX509）。对于IBM JVMS应该使用ibmX509。对于其它JVM，参考JVM文档取正确的值。
truststoreFile
用来验证客户证书的TrustStore文件。
truststorePass
访问TrustStore使用的密码。缺省值是keystorePass。
truststoreType
如果使用一个不同于正在使用的KeyStore的TrustStore格式，加入该属性。有效值是JKS和PKCS12。
第三、   通过浏览器访问验证；
在地址栏中输入https://localhost:8443
]]></description>
			<content:encoded><![CDATA[<p>ssl是安全连接的缩写，也就是通过https访问，tomcat中配置ssl很方便，大致有几步：</p>
<p>第一、   生成一个证书；</p>
<p>Java中的keytool就可以很方便生成证书，在命令行先进入java的bin目录，然后执行：</p>
<p>keytool -genkey -alias tomcat -keyalg RSA -validity 10000 -dname &#8220;cn=127.0.0.1,o=qcb,c=cn&#8221; -keystore tomcat.jks -storepass 123456  -keypass 123456</p>
<p>就可以生成一个tomcat.jks的证书。</p>
<p>第二、   修改配置文件；</p>
<p>&lt;Connector port=&#8221;8443&#8243; maxHttpHeaderSize=&#8221;8192&#8243;</p>
<p>maxThreads=&#8221;150&#8243; minSpareThreads=&#8221;25&#8243; maxSpareThreads=&#8221;75&#8243;</p>
<p>enableLookups=&#8221;false&#8221; disableUploadTimeout=&#8221;true&#8221;</p>
<p>acceptCount=&#8221;100&#8243; scheme=&#8221;https&#8221; secure=&#8221;true&#8221;  keystoreFile=&#8221;tomcat.jks&#8221; keystorePass=&#8221;123456&#8243;</p>
<p>clientAuth=&#8221;false&#8221; sslProtocol=&#8221;TLS&#8221; /&gt;</p>
<p>keystoreFile的路径是TOMCAT的安装路径下的tomcat. jks (使用keytool生成的证书库文件，并拷贝到tomcat的安装路径)</p>
<p>keystoreFile保存了服务器端的证书库，用于客户端认证。</p>
<p>常用的配置属性：</p>
<p>clientAuth</p>
<p>如果想要Tomcat为了使用这个socket而要求所有SSL客户出示一个客户证书，置该值为true。</p>
<p>keystoreFile</p>
<p>如果创建的keystore文件不在Tomcat认为的缺省位置（一个在Tomcat运行的home目录下的叫.keystore的文件），则加上该属性。可以指定一个绝对路径或依赖$CATALINA_BASE环境变量的相对路径。</p>
<p>keystorePass</p>
<p>如果使用了一个与Tomcat预期不同的keystore（和证书）密码，则加入该属性。</p>
<p>keystoreType</p>
<p>如果使用了一个PKCS12 keystore，加入该属性。有效值是JKS和PKCS12。</p>
<p>sslProtocol</p>
<p>socket使用的加密/解密协议。如果使用的是Sun的JVM，则不建议改变这个值。据说IBM的1.4.1版的TLS协议的实现和一些流行的浏览器不兼容。这种情况下，使用SSL。</p>
<p>ciphers</p>
<p>此socket允许使用的被逗号分隔的密码列表。缺省情况下，可以使用任何可用的密码。</p>
<p>algorithm</p>
<p>使用的X509算法。缺省为Sun的实现（SunX509）。对于IBM JVMS应该使用ibmX509。对于其它JVM，参考JVM文档取正确的值。</p>
<p>truststoreFile</p>
<p>用来验证客户证书的TrustStore文件。</p>
<p>truststorePass</p>
<p>访问TrustStore使用的密码。缺省值是keystorePass。</p>
<p>truststoreType</p>
<p>如果使用一个不同于正在使用的KeyStore的TrustStore格式，加入该属性。有效值是JKS和PKCS12。</p>
<p>第三、   通过浏览器访问验证；</p>
<p>在地址栏中输入https://localhost:8443</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wenhq.com/article/view_710.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ora-00054的解决办法</title>
		<link>http://www.wenhq.com/article/view_709.html</link>
		<comments>http://www.wenhq.com/article/view_709.html#comments</comments>
		<pubDate>Mon, 29 Aug 2011 13:15:27 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[数据库]]></category>
		<category><![CDATA[oracle]]></category>

		<guid isPermaLink="false">http://www.wenhq.com/?p=709</guid>
		<description><![CDATA[连接oracle运行drop table遇到了ora-00054的错误，提示资源正忙，需要提交transaction, 或者杀掉session.
ORA-00054:resource busy and acquire with NOWAIT specified
Cause:Resource interested is busy.
Action:Retry if necessary.
此错误发生在resource被锁了，同时又发出一个NOWAIT的命令。例如在update一个表的同时对他重建索引。解决方法，等待 resource的锁释放以后再试。释放的方法可以通过等待事务完成自动释放，也可以强制结束session的方法释放。具体方法根据实际需要来决定，下 面是强制结束session的方法释放此resource的锁：
查看数据库中那些用户产生了锁，
select username,sid,serial#,logon_time from v$locked_object,v$session where v$locked_object.session_id=v$session.sid;
然后kill掉未提交的进程, sid是sid值，serial#是serial#值:
alter system kill session &#8216;sid,serial#&#8216; ;
]]></description>
			<content:encoded><![CDATA[<p>连接oracle运行drop table遇到了ora-00054的错误，提示资源正忙，需要提交transaction, 或者杀掉session.<br />
ORA-00054:resource busy and acquire with NOWAIT specified<br />
Cause:Resource interested is busy.<br />
Action:Retry if necessary.</p>
<p>此错误发生在resource被锁了，同时又发出一个NOWAIT的命令。例如在update一个表的同时对他重建索引。解决方法，等待 resource的锁释放以后再试。释放的方法可以通过等待事务完成自动释放，也可以强制结束session的方法释放。具体方法根据实际需要来决定，下 面是强制结束session的方法释放此resource的锁：</p>
<p>查看数据库中那些用户产生了锁，<br />
select username,sid,serial#,logon_time from v$locked_object,v$session where v$locked_object.session_id=v$session.sid;</p>
<p>然后kill掉未提交的进程, sid是sid值，serial#是serial#值:<br />
alter system kill session &#8216;<em><span style="color: #ff0000;">sid,serial#</span></em>&#8216; ;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wenhq.com/article/view_709.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

