﻿<?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-mashiguang</title><link>http://www.blogjava.net/mashiguang/</link><description>小马快跑</description><language>zh-cn</language><lastBuildDate>Thu, 30 Apr 2026 06:23:27 GMT</lastBuildDate><pubDate>Thu, 30 Apr 2026 06:23:27 GMT</pubDate><ttl>60</ttl><item><title>开发常用文件</title><link>http://www.blogjava.net/mashiguang/archive/2011/08/11/356336.html</link><dc:creator>mashiguang</dc:creator><author>mashiguang</author><pubDate>Thu, 11 Aug 2011 15:05:00 GMT</pubDate><guid>http://www.blogjava.net/mashiguang/archive/2011/08/11/356336.html</guid><description><![CDATA[spring2.5-reference.pdf<a href="http://m0.mail.sina.com.cn/apps/netdisk/download.php?id=d9d1668c0b162f26d115a49e0b308e4f"><br />http://m0.mail.sina.com.cn/apps/netdisk/download.php?id=d9d1668c0b162f26d115a49e0b308e4f</a><br /><br />deerjet src.zip<br /><a href="http://m0.mail.sina.com.cn/apps/netdisk/download.php?id=c859c9a30c5f19e2732255e81a4f0c36">http://m0.mail.sina.com.cn/apps/netdisk/download.php?id=c859c9a30c5f19e2732255e81a4f0c36</a><br /><br />jQueryAPI-100214.chm<br /><a href="http://m0.mail.sina.com.cn/apps/netdisk/download.php?id=c64a572a16f169ac6db829a3122c4279">http://m0.mail.sina.com.cn/apps/netdisk/download.php?id=c64a572a16f169ac6db829a3122c4279</a> <br /><br />hibernate_annotations.pdf<br /><a href="http://m0.mail.sina.com.cn/apps/netdisk/download.php?id=88bd4e31848fda5ca2e65b6fc19df73f">http://m0.mail.sina.com.cn/apps/netdisk/download.php?id=88bd4e31848fda5ca2e65b6fc19df73f</a><br /><br />hibernate_reference.pdf<br /><a href="http://m0.mail.sina.com.cn/apps/netdisk/download.php?id=603986150b7056ce617289370197ea9a">http://m0.mail.sina.com.cn/apps/netdisk/download.php?id=603986150b7056ce617289370197ea9a</a><br /><br />HQL与Criteria对照.pdf<br /><a href="http://m0.mail.sina.com.cn/apps/netdisk/download.php?id=c2805f9d49171f6165baa528a29774c7">http://m0.mail.sina.com.cn/apps/netdisk/download.php?id=c2805f9d49171f6165baa528a29774c7</a> <br /><br />oracle编程艺术.pdf<br /><a href="http://m0.mail.sina.com.cn/apps/netdisk/download.php?id=0c39f09f81f674ef67016482a224a025">http://m0.mail.sina.com.cn/apps/netdisk/download.php?id=0c39f09f81f674ef67016482a224a025</a><br /><br />精通oracle10g pl_sql编程.pdf<br /><a href="http://m0.mail.sina.com.cn/apps/netdisk/download.php?id=455bb7bbfeff510ee66acafe6c8f035b">http://m0.mail.sina.com.cn/apps/netdisk/download.php?id=455bb7bbfeff510ee66acafe6c8f035b</a><img src ="http://www.blogjava.net/mashiguang/aggbug/356336.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/mashiguang/" target="_blank">mashiguang</a> 2011-08-11 23:05 <a href="http://www.blogjava.net/mashiguang/archive/2011/08/11/356336.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>hibernate DetachedCriteria的使用</title><link>http://www.blogjava.net/mashiguang/archive/2011/08/11/356334.html</link><dc:creator>mashiguang</dc:creator><author>mashiguang</author><pubDate>Thu, 11 Aug 2011 14:50:00 GMT</pubDate><guid>http://www.blogjava.net/mashiguang/archive/2011/08/11/356334.html</guid><description><![CDATA[<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;PageModel</span><span style="color: #000000">&lt;</span><span style="color: #000000">CrmWarning</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;query(PageModel</span><span style="color: #000000">&lt;</span><span style="color: #000000">CrmWarning</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;pageModel)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">throws</span><span style="color: #000000">&nbsp;Exception&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Assert.notNull(pageModel);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DetachedCriteria&nbsp;dc&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;DetachedCriteria.forClass(CrmWarning.</span><span style="color: #0000ff">class</span><span style="color: #000000">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">/*</span><span style="color: #008000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;添加查询条件<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;如:dc.add(Restrictions.like("key",&nbsp;"%"+pageModel.getCondition("key")+"%"));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #008000">*/</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">null</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">!=</span><span style="color: #000000">&nbsp;pageModel.getCondition(</span><span style="color: #000000">"</span><span style="color: #000000">warnLevel</span><span style="color: #000000">"</span><span style="color: #000000">))&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dc.add(Restrictions.eq(</span><span style="color: #000000">"</span><span style="color: #000000">warnLevel</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;pageModel.getCondition(</span><span style="color: #000000">"</span><span style="color: #000000">warnLevel</span><span style="color: #000000">"</span><span style="color: #000000">)));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(StringUtils.isNotBlank((String)pageModel.getCondition(</span><span style="color: #000000">"</span><span style="color: #000000">detail</span><span style="color: #000000">"</span><span style="color: #000000">)))&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dc.add(Restrictions.like(</span><span style="color: #000000">"</span><span style="color: #000000">detail</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">%</span><span style="color: #000000">"</span><span style="color: #000000">+</span><span style="color: #000000">pageModel.getCondition(</span><span style="color: #000000">"</span><span style="color: #000000">detail</span><span style="color: #000000">"</span><span style="color: #000000">)</span><span style="color: #000000">+</span><span style="color: #000000">"</span><span style="color: #000000">%</span><span style="color: #000000">"</span><span style="color: #000000">));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(StringUtils.isNotBlank((String)pageModel.getCondition(</span><span style="color: #000000">"</span><span style="color: #000000">warnDate</span><span style="color: #000000">"</span><span style="color: #000000">)))&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">/*</span><span style="color: #008000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;warnDate格式是yyyy-MM-dd，这里改成查询这一天的预警<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Restrictions.sqlRestriction()允许写原生sql的方式完成特殊需求，如下<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #008000">*/</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dc.add(Restrictions.sqlRestriction(</span><span style="color: #000000">"</span><span style="color: #000000">to_char(time_start,'yyyy-MM-dd')&nbsp;=&nbsp;'</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;pageModel.getCondition(</span><span style="color: #000000">"</span><span style="color: #000000">warnDate</span><span style="color: #000000">"</span><span style="color: #000000">)&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">'</span><span style="color: #000000">"</span><span style="color: #000000">));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">null</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">!=</span><span style="color: #000000">&nbsp;pageModel.getCondition(</span><span style="color: #000000">"</span><span style="color: #000000">templateId</span><span style="color: #000000">"</span><span style="color: #000000">))&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">/*</span><span style="color: #008000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;这里的templateId是模板的主键id,查询时应该转换成模板对象<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #008000">*/</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CrmWarnTemplate&nbsp;warnTemplate&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;CrmWarnTemplate();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;warnTemplate.setTemplateId((Long)pageModel.getCondition(</span><span style="color: #000000">"</span><span style="color: #000000">templateId</span><span style="color: #000000">"</span><span style="color: #000000">));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dc.add(Restrictions.eq(</span><span style="color: #000000">"</span><span style="color: #000000">crmWarnTemplate</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;warnTemplate));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dc.addOrder(Order.asc(</span><span style="color: #000000">"</span><span style="color: #000000">crmWarnTemplate</span><span style="color: #000000">"</span><span style="color: #000000">));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dc.addOrder(Order.desc(</span><span style="color: #000000">"</span><span style="color: #000000">timeStart</span><span style="color: #000000">"</span><span style="color: #000000">));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pageModel.setDateList(warningDao.query(dc,&nbsp;pageModel.getFirstNote(),&nbsp;pageModel.getNumInPage()));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pageModel.setTotal(warningDao.count(dc));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;pageModel;<br />&nbsp;&nbsp;&nbsp;&nbsp;}</span></div><img src ="http://www.blogjava.net/mashiguang/aggbug/356334.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/mashiguang/" target="_blank">mashiguang</a> 2011-08-11 22:50 <a href="http://www.blogjava.net/mashiguang/archive/2011/08/11/356334.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>hibernate手动组装pojo</title><link>http://www.blogjava.net/mashiguang/archive/2011/08/11/hibernate_pojo_manual.html</link><dc:creator>mashiguang</dc:creator><author>mashiguang</author><pubDate>Thu, 11 Aug 2011 14:25:00 GMT</pubDate><guid>http://www.blogjava.net/mashiguang/archive/2011/08/11/hibernate_pojo_manual.html</guid><description><![CDATA[<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000ff">package</span><span style="color: #000000">&nbsp;com.jl.dao.bookplatform.impl;<br /><br /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.util.List;<br /><br /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;org.hibernate.Hibernate;<br /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;org.hibernate.Query;<br /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;org.hibernate.Session;<br /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;org.hibernate.transform.Transformers;<br /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;org.springframework.dao.DataAccessException;<br /><br /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;com.jl.dao.baseDao.GenericDao;<br /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;com.jl.dao.bookplatform.ProductItemDao;<br /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;com.jl.entity.bookplatform.CrmProduct;<br /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;com.jl.entity.bookplatform.CrmProductItem;<br /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;com.jl.entity.bookplatform.ProductItemConfig;<br /><br /></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;ProductItemDaoImpl&nbsp;</span><span style="color: #0000ff">extends</span><span style="color: #000000">&nbsp;GenericDao</span><span style="color: #000000">&lt;</span><span style="color: #000000">CrmProductItem,&nbsp;Long</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">implements</span><span style="color: #000000">&nbsp;ProductItemDao&nbsp;{<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;List</span><span style="color: #000000">&lt;</span><span style="color: #000000">ProductItemConfig</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;getProductItemConfigs(Long&nbsp;productId,&nbsp;Long&nbsp;planetypeId)&nbsp;</span><span style="color: #0000ff">throws</span><span style="color: #000000">&nbsp;DataAccessException{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;sql&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">select&nbsp;chi.charge_item_id&nbsp;\</span><span style="color: #000000">"</span><span style="color: #000000">chargeItemId\</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;chi.charge_item&nbsp;\</span><span style="color: #000000">"</span><span style="color: #000000">chargeItem\</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;chi.charge_unit&nbsp;\</span><span style="color: #000000">"</span><span style="color: #000000">chargeUnit\</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;cpi.product_id&nbsp;\</span><span style="color: #000000">"</span><span style="color: #000000">productId\</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;cpi.product_item_id&nbsp;\</span><span style="color: #000000">"</span><span style="color: #000000">productItemId\</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;cpi.sale_planetype_id&nbsp;\</span><span style="color: #000000">"</span><span style="color: #000000">salePlanetypeId\</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;cpi.inland_price&nbsp;\</span><span style="color: #000000">"</span><span style="color: #000000">inlandPrice\</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;cpi.outland_price&nbsp;\</span><span style="color: #000000">"</span><span style="color: #000000">outlandPrice\</span><span style="color: #000000">""</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;from&nbsp;(select&nbsp;*&nbsp;from&nbsp;crm_charge_item&nbsp;chi2&nbsp;where&nbsp;chi2.if_regular&nbsp;=&nbsp;1)&nbsp;chi&nbsp;left&nbsp;join&nbsp;crm_product_item&nbsp;cpi</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;on&nbsp;cpi.charge_item_id&nbsp;=&nbsp;chi.charge_item_id&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;and&nbsp;cpi.product_id&nbsp;=&nbsp;?</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;and&nbsp;cpi.sale_planetype_id&nbsp;=&nbsp;?</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;order&nbsp;by&nbsp;chi.charge_item_id</span><span style="color: #000000">"</span><span style="color: #000000">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Session&nbsp;session&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;getSession();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Query&nbsp;query&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;session.createSQLQuery(sql)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.addScalar(</span><span style="color: #000000">"</span><span style="color: #000000">chargeItemId</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;Hibernate.LONG)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.addScalar(</span><span style="color: #000000">"</span><span style="color: #000000">chargeItem</span><span style="color: #000000">"</span><span style="color: #000000">,Hibernate.STRING)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.addScalar(</span><span style="color: #000000">"</span><span style="color: #000000">chargeUnit</span><span style="color: #000000">"</span><span style="color: #000000">,Hibernate.STRING)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.addScalar(</span><span style="color: #000000">"</span><span style="color: #000000">productId</span><span style="color: #000000">"</span><span style="color: #000000">,Hibernate.LONG)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.addScalar(</span><span style="color: #000000">"</span><span style="color: #000000">productItemId</span><span style="color: #000000">"</span><span style="color: #000000">,Hibernate.LONG)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.addScalar(</span><span style="color: #000000">"</span><span style="color: #000000">salePlanetypeId</span><span style="color: #000000">"</span><span style="color: #000000">,Hibernate.LONG)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.addScalar(</span><span style="color: #000000">"</span><span style="color: #000000">inlandPrice</span><span style="color: #000000">"</span><span style="color: #000000">,Hibernate.DOUBLE)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.addScalar(</span><span style="color: #000000">"</span><span style="color: #000000">outlandPrice</span><span style="color: #000000">"</span><span style="color: #000000">,Hibernate.DOUBLE)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.setResultTransformer(Transformers.aliasToBean(ProductItemConfig.</span><span style="color: #0000ff">class</span><span style="color: #000000">))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.setParameter(</span><span style="color: #000000">0</span><span style="color: #000000">,&nbsp;productId)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.setParameter(</span><span style="color: #000000">1</span><span style="color: #000000">,&nbsp;planetypeId);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List</span><span style="color: #000000">&lt;</span><span style="color: #000000">ProductItemConfig</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;configs&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;query.list();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;configs;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;List</span><span style="color: #000000">&lt;</span><span style="color: #000000">CrmProductItem</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;getProductItem(CrmProduct&nbsp;product)&nbsp;</span><span style="color: #0000ff">throws</span><span style="color: #000000">&nbsp;DataAccessException&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;hql&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">from&nbsp;CrmProductItem&nbsp;cpi&nbsp;where&nbsp;cpi.crmProduct&nbsp;=&nbsp;?</span><span style="color: #000000">"</span><span style="color: #000000">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Session&nbsp;session&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;getSession();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Query&nbsp;query&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;session.createSQLQuery(hql).setParameter(</span><span style="color: #000000">0</span><span style="color: #000000">,&nbsp;product);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List</span><span style="color: #000000">&lt;</span><span style="color: #000000">CrmProductItem</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;items&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;query.list();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;items;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;copy(Long&nbsp;productId_dest,Long&nbsp;productId_orig,String&nbsp;createMan)&nbsp;</span><span style="color: #0000ff">throws</span><span style="color: #000000">&nbsp;DataAccessException&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;sql&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">insert&nbsp;into&nbsp;crm_product_item&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;select&nbsp;hibernate_sequence.nextval,</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;?,</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;cpi.charge_item_id,</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;cpi.sale_planetype_id,</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;cpi.inland_price,</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;cpi.outland_price,</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;?,</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;sysdate</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;from&nbsp;crm_product_item&nbsp;cpi</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;where&nbsp;cpi.product_id&nbsp;=&nbsp;?</span><span style="color: #000000">"</span><span style="color: #000000">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Session&nbsp;session&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;getSession();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Query&nbsp;sqlQuery&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;session.createSQLQuery(sql)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.setParameter(</span><span style="color: #000000">0</span><span style="color: #000000">,&nbsp;productId_dest)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.setParameter(</span><span style="color: #000000">1</span><span style="color: #000000">,&nbsp;createMan)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.setParameter(</span><span style="color: #000000">2</span><span style="color: #000000">,&nbsp;productId_orig);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sqlQuery.executeUpdate();<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />}<br /></span></div><img src ="http://www.blogjava.net/mashiguang/aggbug/356330.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/mashiguang/" target="_blank">mashiguang</a> 2011-08-11 22:25 <a href="http://www.blogjava.net/mashiguang/archive/2011/08/11/hibernate_pojo_manual.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>tomcat eclipse远程调试</title><link>http://www.blogjava.net/mashiguang/archive/2011/02/26/345245.html</link><dc:creator>mashiguang</dc:creator><author>mashiguang</author><pubDate>Sat, 26 Feb 2011 09:39:00 GMT</pubDate><guid>http://www.blogjava.net/mashiguang/archive/2011/02/26/345245.html</guid><wfw:comment>http://www.blogjava.net/mashiguang/comments/345245.html</wfw:comment><comments>http://www.blogjava.net/mashiguang/archive/2011/02/26/345245.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/mashiguang/comments/commentRss/345245.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/mashiguang/services/trackbacks/345245.html</trackback:ping><description><![CDATA[1，配置tomcat启动参数<br />
直接在%tomcat_home%\bin下建立tomcat_debug.bat文件，内容如下：<br />
<br />
cd %CATALINE_HOME%/bin <br />
set JPDA_ADDRESS=8787 <br />
set JPDA_TRANSPORT=dt_socket <br />
set CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8787 <br />
startup<br />
<br />
需要远程调试时从tomcat_debug.bat启动。<br />
<br />
2，eclipse调试<br />
选择菜单"Run&gt;Debug..."，弹出窗口里右键点击"Remote Java Application"，选择"New"，如图：<br />
<img alt="" src="http://www.blogjava.net/images/blogjava_net/mashiguang/tomcat_debug.jpg" border="0" /><br />
<br />
点击"Debug"按钮，开始远程调试，当程序运行到断点时，Eclipse会捕获到。<br />
<br />
<br />
有关普通java app的远程调试可以参考http://blog.chenlb.com/2010/07/eclipse-remoting-debug-java-app.html
<img src ="http://www.blogjava.net/mashiguang/aggbug/345245.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/mashiguang/" target="_blank">mashiguang</a> 2011-02-26 17:39 <a href="http://www.blogjava.net/mashiguang/archive/2011/02/26/345245.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jQuery validate 日期比较 自定义验证方法</title><link>http://www.blogjava.net/mashiguang/archive/2011/02/17/344518.html</link><dc:creator>mashiguang</dc:creator><author>mashiguang</author><pubDate>Thu, 17 Feb 2011 02:34:00 GMT</pubDate><guid>http://www.blogjava.net/mashiguang/archive/2011/02/17/344518.html</guid><wfw:comment>http://www.blogjava.net/mashiguang/comments/344518.html</wfw:comment><comments>http://www.blogjava.net/mashiguang/archive/2011/02/17/344518.html#Feedback</comments><slash:comments>9</slash:comments><wfw:commentRss>http://www.blogjava.net/mashiguang/comments/commentRss/344518.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/mashiguang/services/trackbacks/344518.html</trackback:ping><description><![CDATA[<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><span style="color: #0000ff">&lt;!</span><span style="color: #ff00ff">DOCTYPE&nbsp;HTML&nbsp;PUBLIC&nbsp;"-//W3C//DTD&nbsp;HTML&nbsp;4.0&nbsp;Transitional//EN"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">HTML</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">HEAD</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">TITLE</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;New&nbsp;Document&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">TITLE</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">META&nbsp;</span><span style="color: #ff0000">NAME</span><span style="color: #0000ff">="Generator"</span><span style="color: #ff0000">&nbsp;CONTENT</span><span style="color: #0000ff">="EditPlus"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">META&nbsp;</span><span style="color: #ff0000">NAME</span><span style="color: #0000ff">="Author"</span><span style="color: #ff0000">&nbsp;CONTENT</span><span style="color: #0000ff">=""</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">META&nbsp;</span><span style="color: #ff0000">NAME</span><span style="color: #0000ff">="Keywords"</span><span style="color: #ff0000">&nbsp;CONTENT</span><span style="color: #0000ff">=""</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">META&nbsp;</span><span style="color: #ff0000">NAME</span><span style="color: #0000ff">="Description"</span><span style="color: #ff0000">&nbsp;CONTENT</span><span style="color: #0000ff">=""</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">script&nbsp;</span><span style="color: #ff0000">type</span><span style="color: #0000ff">="text/javascript"</span><span style="color: #ff0000">&nbsp;src</span><span style="color: #0000ff">="jquery-1.4.2.js"</span><span style="color: #0000ff">&gt;&lt;/</span><span style="color: #800000">script</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">script&nbsp;</span><span style="color: #ff0000">type</span><span style="color: #0000ff">="text/javascript"</span><span style="color: #ff0000">&nbsp;src</span><span style="color: #0000ff">="jquery.validate.js"</span><span style="color: #0000ff">&gt;&lt;/</span><span style="color: #800000">script</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">SCRIPT&nbsp;</span><span style="color: #ff0000">LANGUAGE</span><span style="color: #0000ff">="JavaScript"</span><span style="color: #0000ff">&gt;</span><span style="background-color: #f5f5f5; color: #000000"><br />
&nbsp;&nbsp;</span><span style="background-color: #f5f5f5; color: #000000">&lt;!--</span><span style="background-color: #f5f5f5; color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;jQuery(</span><span style="background-color: #f5f5f5; color: #0000ff">function</span><span style="background-color: #f5f5f5; color: #000000">(){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jQuery.validator.methods.compareDate&nbsp;</span><span style="background-color: #f5f5f5; color: #000000">=</span><span style="background-color: #f5f5f5; color: #000000">&nbsp;</span><span style="background-color: #f5f5f5; color: #0000ff">function</span><span style="background-color: #f5f5f5; color: #000000">(value,&nbsp;element,&nbsp;param)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="background-color: #f5f5f5; color: #008000">//</span><span style="background-color: #f5f5f5; color: #008000">var&nbsp;startDate&nbsp;=&nbsp;jQuery(param).val()&nbsp;+&nbsp;":00";补全yyyy-MM-dd&nbsp;HH:mm:ss格式</span><span style="background-color: #f5f5f5; color: #008000"><br />
</span><span style="background-color: #f5f5f5; color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="background-color: #f5f5f5; color: #008000">//</span><span style="background-color: #f5f5f5; color: #008000">value&nbsp;=&nbsp;value&nbsp;+&nbsp;":00";</span><span style="background-color: #f5f5f5; color: #008000"><br />
</span><span style="background-color: #f5f5f5; color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="background-color: #f5f5f5; color: #0000ff">var</span><span style="background-color: #f5f5f5; color: #000000">&nbsp;startDate&nbsp;</span><span style="background-color: #f5f5f5; color: #000000">=</span><span style="background-color: #f5f5f5; color: #000000">&nbsp;jQuery(param).val();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="background-color: #f5f5f5; color: #0000ff">var</span><span style="background-color: #f5f5f5; color: #000000">&nbsp;date1&nbsp;</span><span style="background-color: #f5f5f5; color: #000000">=</span><span style="background-color: #f5f5f5; color: #000000">&nbsp;</span><span style="background-color: #f5f5f5; color: #0000ff">new</span><span style="background-color: #f5f5f5; color: #000000">&nbsp;Date(Date.parse(startDate.replace(</span><span style="background-color: #f5f5f5; color: #000000">"</span><span style="background-color: #f5f5f5; color: #000000">-</span><span style="background-color: #f5f5f5; color: #000000">"</span><span style="background-color: #f5f5f5; color: #000000">,&nbsp;</span><span style="background-color: #f5f5f5; color: #000000">"</span><span style="background-color: #f5f5f5; color: #000000">/</span><span style="background-color: #f5f5f5; color: #000000">"</span><span style="background-color: #f5f5f5; color: #000000">)));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="background-color: #f5f5f5; color: #0000ff">var</span><span style="background-color: #f5f5f5; color: #000000">&nbsp;date2&nbsp;</span><span style="background-color: #f5f5f5; color: #000000">=</span><span style="background-color: #f5f5f5; color: #000000">&nbsp;</span><span style="background-color: #f5f5f5; color: #0000ff">new</span><span style="background-color: #f5f5f5; color: #000000">&nbsp;Date(Date.parse(value.replace(</span><span style="background-color: #f5f5f5; color: #000000">"</span><span style="background-color: #f5f5f5; color: #000000">-</span><span style="background-color: #f5f5f5; color: #000000">"</span><span style="background-color: #f5f5f5; color: #000000">,&nbsp;</span><span style="background-color: #f5f5f5; color: #000000">"</span><span style="background-color: #f5f5f5; color: #000000">/</span><span style="background-color: #f5f5f5; color: #000000">"</span><span style="background-color: #f5f5f5; color: #000000">)));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="background-color: #f5f5f5; color: #0000ff">return</span><span style="background-color: #f5f5f5; color: #000000">&nbsp;date1&nbsp;</span><span style="background-color: #f5f5f5; color: #000000">&lt;</span><span style="background-color: #f5f5f5; color: #000000">&nbsp;date2;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;};<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jQuery(</span><span style="background-color: #f5f5f5; color: #000000">"</span><span style="background-color: #f5f5f5; color: #000000">#form1</span><span style="background-color: #f5f5f5; color: #000000">"</span><span style="background-color: #f5f5f5; color: #000000">).validate({<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;focusInvalid:</span><span style="background-color: #f5f5f5; color: #0000ff">false</span><span style="background-color: #f5f5f5; color: #000000">,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rules:{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="background-color: #f5f5f5; color: #000000">"</span><span style="background-color: #f5f5f5; color: #000000">timeStart</span><span style="background-color: #f5f5f5; color: #000000">"</span><span style="background-color: #f5f5f5; color: #000000">:{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;required:&nbsp;</span><span style="background-color: #f5f5f5; color: #0000ff">true</span><span style="background-color: #f5f5f5; color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="background-color: #f5f5f5; color: #000000">"</span><span style="background-color: #f5f5f5; color: #000000">timeEnd</span><span style="background-color: #f5f5f5; color: #000000">"</span><span style="background-color: #f5f5f5; color: #000000">:&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;required:&nbsp;</span><span style="background-color: #f5f5f5; color: #0000ff">true</span><span style="background-color: #f5f5f5; color: #000000">,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;compareDate:&nbsp;</span><span style="background-color: #f5f5f5; color: #000000">"</span><span style="background-color: #f5f5f5; color: #000000">#timeStart</span><span style="background-color: #f5f5f5; color: #000000">"</span><span style="background-color: #f5f5f5; color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;messages:{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="background-color: #f5f5f5; color: #000000">"</span><span style="background-color: #f5f5f5; color: #000000">timeStart</span><span style="background-color: #f5f5f5; color: #000000">"</span><span style="background-color: #f5f5f5; color: #000000">:{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;required:&nbsp;</span><span style="background-color: #f5f5f5; color: #000000">"</span><span style="background-color: #f5f5f5; color: #000000">开始时间不能为空</span><span style="background-color: #f5f5f5; color: #000000">"</span><span style="background-color: #f5f5f5; color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="background-color: #f5f5f5; color: #000000">"</span><span style="background-color: #f5f5f5; color: #000000">timeEnd</span><span style="background-color: #f5f5f5; color: #000000">"</span><span style="background-color: #f5f5f5; color: #000000">:{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;required:&nbsp;</span><span style="background-color: #f5f5f5; color: #000000">"</span><span style="background-color: #f5f5f5; color: #000000">结束时间不能为空</span><span style="background-color: #f5f5f5; color: #000000">"</span><span style="background-color: #f5f5f5; color: #000000">,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;compareDate:&nbsp;</span><span style="background-color: #f5f5f5; color: #000000">"</span><span style="background-color: #f5f5f5; color: #000000">结束日期必须大于开始日期!</span><span style="background-color: #f5f5f5; color: #000000">"</span><span style="background-color: #f5f5f5; color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});<br />
&nbsp;&nbsp;&nbsp;&nbsp;});<br />
&nbsp;&nbsp;</span><span style="background-color: #f5f5f5; color: #008000">//</span><span style="background-color: #f5f5f5; color: #008000">--&gt;</span><span style="background-color: #f5f5f5; color: #008000"><br />
</span><span style="background-color: #f5f5f5; color: #000000">&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">SCRIPT</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">HEAD</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<br />
&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">BODY</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">form&nbsp;</span><span style="color: #ff0000">id</span><span style="color: #0000ff">="form1"</span><span style="color: #ff0000">&nbsp;name</span><span style="color: #0000ff">="form1"</span><span style="color: #ff0000">&nbsp;method</span><span style="color: #0000ff">="post"</span><span style="color: #ff0000">&nbsp;action</span><span style="color: #0000ff">="demo.html"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">p</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">timeStart:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">input&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="timeStart"</span><span style="color: #ff0000">&nbsp;type</span><span style="color: #0000ff">="text"</span><span style="color: #ff0000">&nbsp;id</span><span style="color: #0000ff">="timeStart"</span><span style="color: #ff0000">&nbsp;value</span><span style="color: #0000ff">="2011-02-17&nbsp;10:00:00"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;yyyy-MM-dd&nbsp;HH:mm:ss<br />
&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">p</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">p</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">timeEnd:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">input&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="timeEnd"</span><span style="color: #ff0000">&nbsp;type</span><span style="color: #0000ff">="text"</span><span style="color: #ff0000">&nbsp;id</span><span style="color: #0000ff">="timeEnd"</span><span style="color: #ff0000">&nbsp;value</span><span style="color: #0000ff">="2011-02-17&nbsp;9:00:00"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;yyyy-MM-dd&nbsp;HH:mm:ss<br />
&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">p</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">p</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">input&nbsp;</span><span style="color: #ff0000">type</span><span style="color: #0000ff">="submit"</span><span style="color: #ff0000">&nbsp;name</span><span style="color: #0000ff">="Submit"</span><span style="color: #ff0000">&nbsp;value</span><span style="color: #0000ff">="提交"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">p</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">form</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;<br />
&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">BODY</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">HTML</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span></div>
<img src ="http://www.blogjava.net/mashiguang/aggbug/344518.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/mashiguang/" target="_blank">mashiguang</a> 2011-02-17 10:34 <a href="http://www.blogjava.net/mashiguang/archive/2011/02/17/344518.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于Oracle一个汉字代表几个字节的问题（转）</title><link>http://www.blogjava.net/mashiguang/archive/2011/01/21/343313.html</link><dc:creator>mashiguang</dc:creator><author>mashiguang</author><pubDate>Fri, 21 Jan 2011 04:49:00 GMT</pubDate><guid>http://www.blogjava.net/mashiguang/archive/2011/01/21/343313.html</guid><wfw:comment>http://www.blogjava.net/mashiguang/comments/343313.html</wfw:comment><comments>http://www.blogjava.net/mashiguang/archive/2011/01/21/343313.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/mashiguang/comments/commentRss/343313.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/mashiguang/services/trackbacks/343313.html</trackback:ping><description><![CDATA[<p>在Oracle定义变量时，常有VARCHAR2 (3 Char)或者VARCHAR2 (10 Byte)的数据类型，那么3char或者10Byte到底代表几个汉字，几个字符呢，上次外公司一同事讨论这个问题，一下没给解释清楚，所以下来以后整理如下：</p>
<p>总结：<br />
当NLS_CHARACTERSET=AL32UTF8时（）<br />
NLS_LENGTH_SEMANTICS=BYTE时，一个汉字代表三个字节<br />
NLS_LENGTH_SEMANTICS=CHAR时，一个汉字代表一个字节<br />
当NLS_CHARACTERSET=US7ASCII时（字符集为单字节）<br />
NLS_LENGTH_SEMANTICS=BYTE时，一个汉字代表两个字节<br />
NLS_LENGTH_SEMANTICS=CHAR时，一个汉字代表两个字节</p>
<p>现象:<br />
select * from nls_database_parameters;<br />
&#8230;.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8230;&#8230;&#8230;&#8230;..<br />
NLS_CHARACTERSET&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AL32UTF8</p>
<p>&#8230;..</p>
<p>NLS_LENGTH_SEMANTICS BYTE</p>
<p>&#8230;.</p>
<p>NLS_NCHAR_CHARACTERSET&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AL16UTF16</p>
<p>NLS_RDBMS_VERSION&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10.2.0.4.0<br />
&nbsp;</p>
<p>SQL&gt; alter session set nls_length_semantics='BYTE';</p>
<p>SQL&gt; create table nls_byte(c1 varchar2(7));</p>
<p>SQL&gt; insert into nls_byte values('测试机');</p>
<p>&nbsp;insert into nls_byte values('测试机')</p>
<p>&nbsp;ORA-12899: 列 "SYS"."NLS_BYTE"."C1" 的值太大 (实际值: 9, 最大值: 7)</p>
<p>SQL&gt; insert into nls_byte values('测试a');</p>
<p>&nbsp;1 row inserted<br />
&nbsp;<br />
SQL&gt; select table_name,column_name,t.DATA_TYPE,t.DATA_LENGTH,t.CHAR_USED from user_tab_columns t where table_name='NLS_BYTE';</p>
<p>&nbsp;TABLE_NAME COLU DATA_TYP DATA_LENGTH CHAR_USED</p>
<p>---------- ---- -------- ----------- ---------</p>
<p>NLS_BYTE&nbsp;&nbsp; C1&nbsp;&nbsp; VARCHAR2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 7 B<br />
&nbsp;&nbsp; <br />
NLS_LENGTH_SEMANTICS allows you to specify the length of a column datatype in terms of CHARacters rather than in terms of BYTEs. Typically this is when using an AL32UTF8 or other varying width NLS_CHARACTERSET database where one character is not always one byte. While using CHAR semantics has as such no added value in a 7/8 bit characterset it's fully supported so any application code / table setup using CHAR can also be used in a 7/8bit characterset like US7ASCII/WE8MSWIN1252.<br />
This parameter is a 9i (and up) feature and is not available in older releases</p>
<p>翻译过来就是:这个参数允许将列的数据单位设为字符而不是byte.这个问题会在字符集设为UTF8的时候出现. 此参数在9i以上版本有效.</p>
<p>NLS_LENGTH_SEMANTICS 设置.</p>
<p>1.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NLS_DATABASE_PARAMETERS中的值是在数据库创建的时候确定的,一般都为BYTE</p>
<p>2.&nbsp;&nbsp;&nbsp;&nbsp; 此参数可以以 &#8220;ALTER SYSTEM SET NLS_LENGTH_SEMANTICS=CHAR scope=both&#8221;方式修改,但是需要重启数据库才能生效.</p>
<p>3.&nbsp;&nbsp;&nbsp;&nbsp; 也可用&#8221; ALTER SESSION SET NLS_LENGTH_SEMANTICS=CHAR&#8221;使对当前session生效.</p>
<p>4.&nbsp;&nbsp;&nbsp;&nbsp; 此参数可以在10G以上版本中,在环境变量或注册表中设置(注意需要大写),设定后从当前客户端启动的所有会话都采用新的取值.</p>
<p>5.&nbsp;&nbsp;&nbsp;&nbsp; 修改后只对新建的列生效,对于已有的列没有作用</p>
<p>6.&nbsp;&nbsp;&nbsp;&nbsp; 新建或升级DB时用BYTE,否则XDB或dba_tables会出现问题.</p>
<p>7.&nbsp;&nbsp;&nbsp;&nbsp; NLS_LENGTH_SEMANTICS对sys用户下的对象无效.</p>
<p>8.&nbsp;&nbsp;&nbsp;&nbsp; 如果对于7/8bit的字符集,设为byte/char意义不大,因为无论是char和byte都对应一个byte.</p>
<p>测试:</p>
<p>一.在当前session中修改此参数</p>
<p>&nbsp;SQL&gt; alter session set nls_length_semantics='char';</p>
<p>&nbsp;Session altered</p>
<p>&nbsp;SQL&gt; create table nls_char(c1 varchar2(7),c2 varchar2(7));</p>
<p>&nbsp;Table created</p>
<p>&nbsp;SQL&gt; desc nls_char</p>
<p>Name Type&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Nullable Default Comments</p>
<p>---- ----------- -------- ------- --------</p>
<p>C1&nbsp;&nbsp; VARCHAR2(7) Y&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p>
<p>C2&nbsp;&nbsp; VARCHAR2(7) Y&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p>
<p>&nbsp;SQL&gt; insert into nls_char values('测试机','测试测试测试');</p>
<p>&nbsp;1 row inserted&nbsp; </p>
<p>如果对于alter system,效果是一样的</p>
<p>二.对于已经存在的表,</p>
<p>&nbsp;SQL&gt; desc nls_byte</p>
<p>Name Type&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Nullable Default Comments</p>
<p>---- ---------------- -------- ------- --------</p>
<p>C1&nbsp;&nbsp; VARCHAR2(7 BYTE) Y&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p>
<p>SQL&gt; alter table nls_byte modify c1 varchar2(7 char);</p>
<p>&nbsp;Table altered</p>
<p>&nbsp;SQL&gt; desc nls_byte</p>
<p>Name Type&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Nullable Default Comments</p>
<p>---- ----------- -------- ------- --------</p>
<p>C1&nbsp;&nbsp; VARCHAR2(7) Y&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p>
<p>&nbsp;SQL&gt; insert into nls_byte values('测试机');</p>
<p>&nbsp;1 row inserted<br />
&nbsp;<br />
1.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exp/imp : 不能直接导入,因为会采用source table的建表方式在target db里建表,即使目标库设的值为char.</p>
<p>*可以预先在目标库中以char方式建表</p>
<p>*然后导入,指定参数ignore=y</p>
<p>&nbsp; 2. Alter table</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; alter table "&lt;owner&gt;"."&lt;table&gt;" modify "&lt;column&gt;" char (10 char);</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 创建脚本,修改列设定.</p>
<p>&nbsp;注:</p>
<p>Bug-3611750, ora-01450 online rebuild of index fails, 可以在重建索引前指定byte, 10.2.0.5以上已经修复</p>
<p>Bug 1488174 UNICODE: ALTER SYSTEM SET NLS_LENGTH_SEMANTICS DOESN'T<br />
TAKE EFFECT, 用此语句修改后,实际上不起作用,需要重启才能生效, 但是如果用alter session方式即时生效,不用重启.</p>
<p>进一步测试,在另一个字符集设为us7ascii的DB设置此参数</p>
<p>SQL&gt; select * from nls_database_parameters</p>
<p>6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NLS_CHARACTERSET&nbsp; US7ASCII</p>
<p>SQL&gt; alter session set nls_length_semantics=byte;</p>
<p>Session altered.</p>
<p>SQL&gt; create table nls_byte(c1 varchar2(7));</p>
<p>Table created.</p>
<p>SQL&gt; insert into&nbsp; nls_byte values('测试测试');</p>
<p>insert into&nbsp; nls_byte values('测试测试')</p>
<p>ERROR at line 1:</p>
<p>ORA-12899: value too large for column "TEA"."NLS_BYTE"."C1" (actual: 8,</p>
<p>maximum: 7)</p>
<p>SQL&gt; desc nls_byte</p>
<p>&nbsp;Name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Null?&nbsp;&nbsp;&nbsp; Type</p>
<p>&nbsp;-------------------------------</p>
<p>&nbsp;C1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VARCHAR2(7)</p>
<p>SQL&gt; alter session set nls_length_semantics=char;</p>
<p>Session altered.</p>
<p>SQL&gt; create table nls_char(c1 varchar2(7));</p>
<p>Table created.</p>
<p>SQL&gt; insert into&nbsp; nls_char values('测试测试');</p>
<p>insert into&nbsp; nls_char values('测试测试')</p>
<p>ERROR at line 1:</p>
<p>ORA-12899: value too large for column "TEA"."NLS_CHAR"."C1" (actual: 8,</p>
<p>maximum: 7)</p>
<p>SQL&gt; desc nls_char</p>
<p>&nbsp;Name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Null?&nbsp;&nbsp;&nbsp; Type</p>
<p>&nbsp;----------------------------------------- -------- -------------------</p>
<p>C1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VARCHAR2(7)<br />
&nbsp; <br />
&nbsp;可以看出,在字符集为单字节的情况下,无论取何值,汉字都是以二个字节的方式存在的.</p>
<p>&nbsp;</p>
<br />
本文转自http://www.wudeyao.com/post-69.html
<img src ="http://www.blogjava.net/mashiguang/aggbug/343313.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/mashiguang/" target="_blank">mashiguang</a> 2011-01-21 12:49 <a href="http://www.blogjava.net/mashiguang/archive/2011/01/21/343313.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java.util.ConcurrentModificationException</title><link>http://www.blogjava.net/mashiguang/archive/2010/12/08/340034.html</link><dc:creator>mashiguang</dc:creator><author>mashiguang</author><pubDate>Wed, 08 Dec 2010 01:47:00 GMT</pubDate><guid>http://www.blogjava.net/mashiguang/archive/2010/12/08/340034.html</guid><wfw:comment>http://www.blogjava.net/mashiguang/comments/340034.html</wfw:comment><comments>http://www.blogjava.net/mashiguang/archive/2010/12/08/340034.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/mashiguang/comments/commentRss/340034.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/mashiguang/services/trackbacks/340034.html</trackback:ping><description><![CDATA[在foreach调用remove可能会引发ConcurrentModificationException。<br />
如:<br />
for(Object obj : list){<br />
&nbsp;&nbsp;&nbsp;&nbsp;.remove(obj);<br />
}<br />
<br />
最好像下面这样写:<br />
for (Iterator it = list.iterator(); it.hasNext();) {<br />
......<br />
it.remove();<br />
}<br /><br />(添加20160420)<br />如果foreach的同时需要add element，就不能使用iterator了，最好重新启用一个新的list暂存新的集合元素。<img src ="http://www.blogjava.net/mashiguang/aggbug/340034.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/mashiguang/" target="_blank">mashiguang</a> 2010-12-08 09:47 <a href="http://www.blogjava.net/mashiguang/archive/2010/12/08/340034.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jquery.boxy.js扩展 (0.1.40) </title><link>http://www.blogjava.net/mashiguang/archive/2010/09/14/331998.html</link><dc:creator>mashiguang</dc:creator><author>mashiguang</author><pubDate>Tue, 14 Sep 2010 09:30:00 GMT</pubDate><guid>http://www.blogjava.net/mashiguang/archive/2010/09/14/331998.html</guid><wfw:comment>http://www.blogjava.net/mashiguang/comments/331998.html</wfw:comment><comments>http://www.blogjava.net/mashiguang/archive/2010/09/14/331998.html#Feedback</comments><slash:comments>17</slash:comments><wfw:commentRss>http://www.blogjava.net/mashiguang/comments/commentRss/331998.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/mashiguang/services/trackbacks/331998.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 这个是ie6的bug，并非boxy的问题。在ie6下，select元素的zindex最大，select元素会透过boxy的弹出层显示在其上面。这里用一个iframe挡住boxy弹出层下的select，使用时只要将useIframe置为true即可，源码如下:(jquery.boxy.js并不好用，很多jquery的弹出层插件都解决了ie6的这个问题)/**&nbsp;*&n...&nbsp;&nbsp;<a href='http://www.blogjava.net/mashiguang/archive/2010/09/14/331998.html'>阅读全文</a><img src ="http://www.blogjava.net/mashiguang/aggbug/331998.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/mashiguang/" target="_blank">mashiguang</a> 2010-09-14 17:30 <a href="http://www.blogjava.net/mashiguang/archive/2010/09/14/331998.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>hello cas</title><link>http://www.blogjava.net/mashiguang/archive/2009/12/07/304958.html</link><dc:creator>mashiguang</dc:creator><author>mashiguang</author><pubDate>Mon, 07 Dec 2009 01:50:00 GMT</pubDate><guid>http://www.blogjava.net/mashiguang/archive/2009/12/07/304958.html</guid><wfw:comment>http://www.blogjava.net/mashiguang/comments/304958.html</wfw:comment><comments>http://www.blogjava.net/mashiguang/archive/2009/12/07/304958.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.blogjava.net/mashiguang/comments/commentRss/304958.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/mashiguang/services/trackbacks/304958.html</trackback:ping><description><![CDATA[&nbsp;
<h1 style="text-align: center" align="center"><span style="font-family: 宋体">使用</span>cas<span style="font-family: 宋体">做</span>sso helloword</h1>
<p><span style="font-family: 宋体">因为工作需要接触到</span>sso<span style="font-family: 宋体">，据知目前多数</span>sso<span style="font-family: 宋体">使用耶鲁的</span>cas<span style="font-family: 宋体">实现，且发现使用</span>cas<span style="font-family: 宋体">真的是很简单就可以做出一个单点登录系统来，</span>cas<span style="font-family: 宋体">还提供丰富的扩展功能，对于扩展功能日后再细细研究，这里只使用</span>cas<span style="font-family: 宋体">做一个</span>hello world<span style="font-family: 宋体">来记录本人的学习过程，如有幸被高人看到，还望指出弊病，不吝赐教。</span></p>
<p><span style="font-family: 宋体">在使用</span>cas<span style="font-family: 宋体">之前最好对数字证书有所了解，不了解也没有关系，跟着我的步骤也一样可以跑的通。</span></p>
<h2><span style="font-family: 黑体">准备工作</span></h2>
<p><span style="font-family: 宋体">需要的文件：</span></p>
<p style="margin-left: 21pt; text-indent: -21pt; tab-stops: list 21.0pt"><span style="font-family: Wingdings">&#252;<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span>Jdk6</p>
<p style="margin-left: 21pt; text-indent: -21pt; tab-stops: list 21.0pt"><span style="font-family: Wingdings">&#252;<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span>Tomcat</p>
<p style="margin-left: 21pt; text-indent: -21pt; tab-stops: list 21.0pt"><span style="font-family: Wingdings">&#252;<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span>cas-server-3.3.2</p>
<p style="margin-left: 21pt; text-indent: -21pt; tab-stops: list 21.0pt"><span style="font-family: Wingdings">&#252;<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span>cas-client-3.1.9</p>
<h2><span style="font-family: 黑体">证书</span></h2>
<p><span style="font-family: 宋体">下面是</span>keytool<span style="font-family: 宋体">命令的一些常用方法，先在这里认识一下它们，一会儿会用的到。</span></p>
<p><span style="font-family: 宋体">使用</span>keytool<span style="font-family: 宋体">命令生成密钥库</span></p>
<div style="border-right: windowtext 1pt solid; padding-right: 4pt; border-top: windowtext 1pt solid; padding-left: 4pt; background: #e6e6e6; padding-bottom: 1pt; border-left: windowtext 1pt solid; padding-top: 1pt; border-bottom: windowtext 1pt solid">
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">keytool -genkey -alias tomcat -keyalg RSA -dname "CN=pcma, OU=vanceinfo, O=vanceinfo, L=haidian, S=beijing, C=CN" -keystore c:"keystore5.jks</p>
</div>
<p>CN<span style="font-family: 宋体">：主机名</span></p>
<p>OU<span style="font-family: 宋体">：组织单位</span></p>
<p>O<span style="font-family: 宋体">：组织</span></p>
<p>L<span style="font-family: 宋体">：地区</span></p>
<p>S<span style="font-family: 宋体">：城市</span></p>
<p>C<span style="font-family: 宋体">：国家<br /><br />如果需要指定密钥有效期，添加-validity 365即可，单位是天，如：<br /></span><span style="font-family: 宋体; background-color: #c0c0c0;">keytool -genkey -alias tomcat -keyalg RSA -dname "xxxxx" -keystore xxxxx -validity 365</span><span style="font-family: 宋体"></span></p>
<p><span style="font-family: 宋体">导出证书</span></p>
<div style="border-right: windowtext 1pt solid; padding-right: 4pt; border-top: windowtext 1pt solid; padding-left: 4pt; background: #e6e6e6; padding-bottom: 1pt; border-left: windowtext 1pt solid; padding-top: 1pt; border-bottom: windowtext 1pt solid">
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">keytool -export -file c:/server5.crt -alias tomcat -keystore c:"keystore5.jks</p>
</div>
<p><span style="font-family: 宋体">将证书导入到客户端</span>jdk</p>
<div style="border-right: windowtext 1pt solid; padding-right: 4pt; border-top: windowtext 1pt solid; padding-left: 4pt; background: #e6e6e6; padding-bottom: 1pt; border-left: windowtext 1pt solid; padding-top: 1pt; border-bottom: windowtext 1pt solid">
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">keytool -import -keystore "D:"Java"jdk1.6.0_14"jre"lib"security"cacerts" -file c:/server5.crt -alias tomcat</p>
</div>
<p><span style="font-family: 宋体">从密钥库中删除指定别名的证书</span></p>
<div style="border-right: windowtext 1pt solid; padding-right: 4pt; border-top: windowtext 1pt solid; padding-left: 4pt; background: #e6e6e6; padding-bottom: 1pt; border-left: windowtext 1pt solid; padding-top: 1pt; border-bottom: windowtext 1pt solid">
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">keytool -delete -noprompt -alias tomcat -keystore E:"apache-tomcat-6.0.20_2"conf"keystore2.jks</p>
</div>
<p><span style="font-family: 宋体">查看密钥库中的证书</span></p>
<div style="border-right: windowtext 1pt solid; padding-right: 4pt; border-top: windowtext 1pt solid; padding-left: 4pt; background: #e6e6e6; padding-bottom: 1pt; border-left: windowtext 1pt solid; padding-top: 1pt; border-bottom: windowtext 1pt solid">
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">keytool -list -v -keystore c:"keystore5.jks</p>
</div>
<h2><span style="font-family: 黑体">配置</span>tomcat</h2>
<p><span style="font-family: 宋体">使用</span>keytool<span style="font-family: 宋体">命令生成密钥库。</span></p>
<p><span style="font-family: 宋体">配置</span>%tomcat_home%/conf/server.xml<span style="font-family: 宋体">使</span>tomcat<span style="font-family: 宋体">支持</span>SSL<span style="font-family: 宋体">协议，并指定密钥库。</span></p>
<div style="border-right: windowtext 1pt solid; padding-right: 4pt; border-top: windowtext 1pt solid; padding-left: 4pt; background: #e6e6e6; padding-bottom: 1pt; border-left: windowtext 1pt solid; padding-top: 1pt; border-bottom: windowtext 1pt solid">
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&lt;Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"</p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;maxThreads="150" scheme="https" secure="true"</p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; clientAuth="false" sslProtocol="TLS" keystorePass="mashiguang"</p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; keystoreFile="${catalina.home}/conf/keystore5.jks"/&gt;</p>
</div>
<h2><span style="font-family: 黑体">部署</span>cas server</h2>
<p><span style="font-family: 宋体">解压缩</span>cas-server-3.3.2-release.zip<span style="font-family: 宋体">文件，在</span>modules<span style="font-family: 宋体">目录里找到</span>cas-server-webapp-3.3.2.war<span style="font-family: 宋体">文件，这就是一个做好了的</span>cas<span style="font-family: 宋体">服务端，我们做的</span>sso helloword<span style="font-family: 宋体">可以直接使用，只需把</span>cas-server-webapp-3.3.2.war<span style="font-family: 宋体">改了个简单点的名字，如</span>cas.war<span style="font-family: 宋体">，然后部署到</span>tomcat<span style="font-family: 宋体">即可。</span></p>
<p><span style="font-family: 宋体">浏览器访问</span><a href="https://pcma:8443/cas">https://pcma:8443/cas</a><span style="font-family: 宋体">，如果打开显示的是</span>cas<span style="font-family: 宋体">默认的登录页面，则表示服务端已部署完毕。</span></p>
<h2><span style="font-family: 黑体">客户端使用</span>cas client</h2>
<p><span style="font-family: 宋体">新建两个</span>web<span style="font-family: 宋体">工程，用于模拟单点登录系统中的客户端，并将</span>cas-client-3.1.9"modules<span style="font-family: 宋体">里的</span>jar<span style="font-family: 宋体">包放到</span>web<span style="font-family: 宋体">工程</span>lib<span style="font-family: 宋体">目录下，是主要的是</span>cas-client-core-3.1.9.jar<span style="font-family: 宋体">文件，把</span>spring2.5<span style="font-family: 宋体">也放到</span>lib<span style="font-family: 宋体">目录下。</span></p>
<p>Web.xml<span style="font-family: 宋体">文件</span></p>
<div style="border-right: windowtext 1pt solid; padding-right: 4pt; border-top: windowtext 1pt solid; padding-left: 4pt; background: #e6e6e6; padding-bottom: 1pt; border-left: windowtext 1pt solid; padding-top: 1pt; border-bottom: windowtext 1pt solid">
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&lt;?xml version="1.0" encoding="UTF-8"?&gt;</p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&lt;web-app version="2.4" </p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlns="http://java.sun.com/xml/ns/j2ee" </p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" </p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee </p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"&gt;</p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;context-param&gt;&nbsp;</p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-name&gt;contextConfigLocation&lt;/param-name&gt;&nbsp;</p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-value&gt;&nbsp;</p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /WEB-INF/config/casContext.xml&nbsp;&nbsp; </p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/param-value&gt;&nbsp;</p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&nbsp;&nbsp; &lt;/context-param&gt;&nbsp;</p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&nbsp;&nbsp; &lt;listener&gt;&nbsp;</p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;listener-class&gt;&nbsp;</p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; org.springframework.web.context.ContextLoaderListener&nbsp;&nbsp; </p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/listener-class&gt;&nbsp;</p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&nbsp;&nbsp; &lt;/listener&gt;&nbsp;</p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&nbsp;&nbsp; &lt;!-- <span style="font-family: 宋体">负责用户认证</span> --&gt;&nbsp;</p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&nbsp;&nbsp; &lt;filter&gt;&nbsp;</p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;filter-name&gt;CAS Authentication Filter&lt;/filter-name&gt;&nbsp;</p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;filter-class&gt;org.jasig.cas.client.authentication.AuthenticationFilter&lt;/filter-class&gt;&nbsp;</p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- CAS login <span style="font-family: 宋体">服务地址</span>--&gt;&nbsp;</p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;init-param&gt;&nbsp;</p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-name&gt;casServerLoginUrl&lt;/param-name&gt;&nbsp;</p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-value&gt;https://pcma:8443/cas/login&lt;/param-value&gt;&nbsp;</p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/init-param&gt;&nbsp;</p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;init-param&gt;&nbsp;</p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-name&gt;renew&lt;/param-name&gt;&nbsp;</p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-value&gt;false&lt;/param-value&gt;&nbsp;</p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&lt;/init-param&gt;&nbsp;</p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;init-param&gt;&nbsp;</p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-name&gt;gateway&lt;/param-name&gt;&nbsp;</p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-value&gt;false&lt;/param-value&gt;&nbsp;</p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/init-param&gt;&nbsp;</p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- <span style="font-family: 宋体">客户端应用服务地址</span>--&gt;&nbsp;</p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;init-param&gt;&nbsp;</p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-name&gt;serverName&lt;/param-name&gt;&nbsp;</p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-value&gt;http://pcma:8081&lt;/param-value&gt;&nbsp;</p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/init-param&gt;&nbsp;</p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&nbsp;&nbsp; &lt;/filter&gt;&nbsp;</p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&nbsp;&nbsp; &lt;!--<span style="font-family: 宋体">负责</span>Ticket<span style="font-family: 宋体">校验</span>--&gt;&nbsp;</p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&nbsp;&nbsp; &lt;filter&gt;&nbsp;</p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;filter-name&gt;CAS Validation Filter&lt;/filter-name&gt;&nbsp;</p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;filter-class&gt;org.springframework.web.filter.DelegatingFilterProxy&lt;/filter-class&gt;&nbsp;</p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;init-param&gt;&nbsp;</p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-name&gt;targetBeanName&lt;/param-name&gt;&nbsp;</p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-value&gt;cas.validationfilter&lt;/param-value&gt;&nbsp;</p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/init-param&gt;&nbsp;</p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&nbsp;&nbsp; &lt;/filter&gt;&nbsp;</p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&nbsp;&nbsp; &lt;filter-mapping&gt;&nbsp;</p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;filter-name&gt;CAS Authentication Filter&lt;/filter-name&gt;&nbsp;</p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;url-pattern&gt;/*&lt;/url-pattern&gt;&nbsp;</p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&nbsp;&nbsp; &lt;/filter-mapping&gt;&nbsp;</p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&nbsp;&nbsp; &lt;filter-mapping&gt;&nbsp;</p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;filter-name&gt;CAS Validation Filter&lt;/filter-name&gt;&nbsp;</p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;url-pattern&gt;/*&lt;/url-pattern&gt;&nbsp;</p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&nbsp;&nbsp; &lt;/filter-mapping&gt;&nbsp;</p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&lt;/web-app&gt;</p>
</div>
<p>casContext.xml<span style="font-family: 宋体">文件</span></p>
<div style="border-right: windowtext 1pt solid; padding-right: 4pt; border-top: windowtext 1pt solid; padding-left: 4pt; background: #e6e6e6; padding-bottom: 1pt; border-left: windowtext 1pt solid; padding-top: 1pt; border-bottom: windowtext 1pt solid">
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&lt;?xml version="1.0" encoding="UTF-8"?&gt;</p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&lt;!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"</p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "http://www.springframework.org/dtd/spring-beans.dtd"&gt;</p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&lt;beans&gt;</p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&lt;bean id="cas.validationfilter" class="org.jasig.cas.client.validation.Cas10TicketValidationFilter"&gt;&nbsp;</p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="ticketValidator"&gt;&nbsp;</p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;ref bean="cas10TicketValidator"/&gt;&nbsp;</p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/property&gt;&nbsp;</p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="useSession"&gt;&nbsp;</p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;value&gt;true&lt;/value&gt;&nbsp;</p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/property&gt;&nbsp;</p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- <span style="font-family: 宋体">客户端应用服务地址</span>--&gt;&nbsp;</p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="serverName"&gt;&nbsp;</p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;value&gt;http://pcma:8081&lt;/value&gt;&nbsp;</p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/property&gt;&nbsp;</p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="redirectAfterValidation"&gt;&nbsp;</p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;value&gt;true&lt;/value&gt;&nbsp;</p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/property&gt;&nbsp;</p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&nbsp;&nbsp; &lt;/bean&gt;&nbsp;</p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&nbsp;&nbsp; &lt;bean id="cas10TicketValidator" class="org.jasig.cas.client.validation.Cas10TicketValidator"&gt;&nbsp;</p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&nbsp;&nbsp; &lt;!-- <span style="font-family: 宋体">这里参数是</span>cas<span style="font-family: 宋体">服务器的地址</span>--&gt;&nbsp;</p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;constructor-arg index="0" value="https://pcma:8443/cas" /&gt;&nbsp;</p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&nbsp;&nbsp; &lt;/bean&gt;&nbsp;</p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&lt;/beans&gt;&nbsp;</p>
</div>
<p><span style="font-family: 宋体">新建</span>index.jsp<span style="font-family: 宋体">文件</span></p>
<div style="border-right: windowtext 1pt solid; padding-right: 4pt; border-top: windowtext 1pt solid; padding-left: 4pt; background: #e6e6e6; padding-bottom: 1pt; border-left: windowtext 1pt solid; padding-top: 1pt; border-bottom: windowtext 1pt solid">
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&lt;body&gt;</p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&nbsp; hello sso&lt;br&gt;</p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&nbsp; &lt;a href="http://192.168.29.131:8080/sso2"&gt;sso2&lt;/a&gt;<span style="font-family: 宋体">这个地址是另外一台机器上的</span>sso<span style="font-family: 宋体">客户端</span></p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none">&nbsp;&lt;/body&gt;</p>
</div>
<p><span style="font-family: 宋体">上面的</span>web.xml<span style="font-family: 宋体">、</span>casContext.xml<span style="font-family: 宋体">、</span>index.jsp<span style="font-family: 宋体">是两个客户端中的一个，另一个要根据实际情况修改。</span></p>
<p><span style="font-family: 宋体">最后不要忘记客户端的</span>jdk<span style="font-family: 宋体">要使用</span>keytool<span style="font-family: 宋体">命令导入证书文件。</span></p>
<h2><span style="font-family: 黑体">测试</span></h2>
<p><span style="font-family: 宋体">启动</span>tomcat<span style="font-family: 宋体">，测试器访问</span><a href="http://pcma:8081/sso">http://pcma:8081/sso</a><span style="font-family: 宋体">，出现</span>cas<span style="font-family: 宋体">登录页面，输入相同的用户名和密码即可登录，登录成功后页面自动跳转回</span><a href="http://pcma:8081/sso">http://pcma:8081/sso</a><span style="font-family: 宋体">，这时点击页面上的</span>sso2<span style="font-family: 宋体">链接，就可以自动登录并跳转到</span>sso2<span style="font-family: 宋体">应用。</span></p>
<p><span style="font-family: 宋体">如果输入用户名密码后提示下面的异常，是因为部署客户端的</span>jdk<span style="font-family: 宋体">没有导入证书文件的原因。</span></p>
<div style="border-right: windowtext 1pt solid; padding-right: 4pt; border-top: windowtext 1pt solid; padding-left: 4pt; background: #e6e6e6; padding-bottom: 1pt; border-left: windowtext 1pt solid; padding-top: 1pt; border-bottom: windowtext 1pt solid">
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #e6e6e6; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none"><span style="color: black">javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target</span></p>
</div>
<p><span style="font-family: 黑体"><br />
源码<br />
<br />
<a href="http://www.blogjava.net/Files/mashiguang/sso.zip">http://www.blogjava.net/Files/mashiguang/sso.zip</a></span></p><img src ="http://www.blogjava.net/mashiguang/aggbug/304958.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/mashiguang/" target="_blank">mashiguang</a> 2009-12-07 09:50 <a href="http://www.blogjava.net/mashiguang/archive/2009/12/07/304958.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>oracel dbms_jobs的使用</title><link>http://www.blogjava.net/mashiguang/archive/2008/07/14/214768.html</link><dc:creator>mashiguang</dc:creator><author>mashiguang</author><pubDate>Mon, 14 Jul 2008 08:56:00 GMT</pubDate><guid>http://www.blogjava.net/mashiguang/archive/2008/07/14/214768.html</guid><wfw:comment>http://www.blogjava.net/mashiguang/comments/214768.html</wfw:comment><comments>http://www.blogjava.net/mashiguang/archive/2008/07/14/214768.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.blogjava.net/mashiguang/comments/commentRss/214768.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/mashiguang/services/trackbacks/214768.html</trackback:ping><description><![CDATA[&nbsp;
<p><span style="font-family: 宋体">最近公司客户反映有些页面运行速度太慢，通过对系统代码的分析，发现排行榜功能是罪魁祸首，因为数据量太大，每次刷新页面都计算一次排行榜，的确耗时费力。</span></p>
<p><span style="font-family: 宋体">其实可以让数据库自己计算排行榜，并把计算结果保存到一个单独的表里去，这个表只用来保存排行榜的数据，数据量很小，然后所有的排行榜查询都去</span>select<span style="font-family: 宋体">这个表。</span></p>
<p><span style="font-family: 宋体">计算排行榜的功能我们可以写成一个存储过程，但是排行榜的数据不是一成不变的，还需要不时的调用这个存储过程才行，</span>oracle<span style="font-family: 宋体">为我们提供了</span>dbms_jobs<span style="font-family: 宋体">。</span></p>
<p>oracel dbms_jobs<span style="font-family: 宋体">包可以提交作业到作业队列中，这个包中还提供其它一些函数管理以前提交的作业，如对作业进行修改、禁止或删除等操作。</span></p>
<p><span style="font-family: 宋体">常用函数：</span></p>
<p>submit()<span style="font-family: 宋体">，提交作业到作业队列。</span></p>
<p>isumbit()<span style="font-family: 宋体">，</span></p>
<p>remove()<span style="font-family: 宋体">，从作业队列中删除作业。</span></p>
<p>change()<span style="font-family: 宋体">，改变已有作业的参数。</span></p>
<p>what()<span style="font-family: 宋体">，改变作业要执行的代码。</span></p>
<p>next_date()<span style="font-family: 宋体">，改变作业下一次执行时间。</span></p>
<p>interval()<span style="font-family: 宋体">，改变作业执行的时间间隔。</span></p>
<p>broken()<span style="font-family: 宋体">，暂停执行作业。</span></p>
<p>run()<span style="font-family: 宋体">，强制执行作业。</span></p>
<p><span style="font-family: 宋体">最常用的</span>submit()<span style="font-family: 宋体">函数：</span></p>
<p>dbms_jobs.submit(</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; job out binary_integer,</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; what in varchar2,</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; next_date in date default sysdate,</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; interval in varchar default null,</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; no_parse in boolean default false,</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; instance in binary_integer default any_instance,</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; force in boolean default false</p>
<p>);</p>
<p>submit<span style="font-family: 宋体">函数参数：</span></p>
<p>job<span style="font-family: 宋体">，作业的作业号，是个输出参数，所以调用</span>submit<span style="font-family: 宋体">函数时，这个参数要指定一个已存在的变量。</span></p>
<p>what<span style="font-family: 宋体">，作业要执行的代码，一般是存储过程。</span></p>
<p>next_date<span style="font-family: 宋体">，下一次作业运行的日期。</span></p>
<p>interval<span style="font-family: 宋体">，<span style="color: red"><span style="font-family: 宋体">作业执行的间隔时间，这个参数默认值是</span>null<span style="font-family: 宋体">，</span></span></span><span style="font-family: 宋体"><span style="color: red">也就是</span></span><span style="color: red">what</span><span style="color: red; font-family: 宋体">指定的代码只在</span><span style="color: red">next_date</span><span style="color: red; font-family: 宋体">这一时间执行一次。</span></p>
<p>no_parse<span style="font-family: 宋体">，默认值是</span>false<span style="font-family: 宋体">，当参数值是</span>false<span style="font-family: 宋体">，提交作业时就对</span>what<span style="font-family: 宋体">指定的代码进行语法分析；当参数值是</span>true<span style="font-family: 宋体">，第一次运行</span>what<span style="font-family: 宋体">指定代码时才进行语法分析。</span></p>
<p>instance<span style="font-family: 宋体">，指明运行作业的数据库实例。</span></p>
<p>force<span style="font-family: 宋体">，如果是</span>true,instance<span style="font-family: 宋体">可以是任何正数；如果是</span>false<span style="font-family: 宋体">，</span>instance<span style="font-family: 宋体">指定的实例必须正在运行。</span></p>
<p><span style="font-family: 宋体">示例：</span></p>
<p>var jobno number;</p>
<p>begin</p>
<p>dbms_job.submit(:jobno,'p_xxx_taxis;',trunc(sysdate)+(18/24),'trunc(sysdate+1,''hh'')');--<span style="font-family: 宋体">每天</span>18<span style="font-family: 宋体">点执行</span></p>
<p>commit;</p>
<p>end;</p>
<p><span style="font-family: 宋体">上面这段话要在</span>&nbsp;<span style="font-family: 宋体">命令窗口</span>&nbsp;<span style="font-family: 宋体">下运行</span>,<span style="font-family: 宋体">如在</span>pl/sql developer<span style="font-family: 宋体">里面的</span>--&gt;<span style="font-family: 宋体">新键</span>--&gt;<span style="font-family: 宋体">命令窗口</span></p>
<p><span style="font-family: 宋体">这样就会在每天的</span>18<span style="font-family: 宋体">点执行存储过程</span>p_xxx_taxis<span style="font-family: 宋体">。在我这里</span>p_xxx_taxis<span style="font-family: 宋体">执行的是计算排行榜的任务。</span></p>
<img src ="http://www.blogjava.net/mashiguang/aggbug/214768.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/mashiguang/" target="_blank">mashiguang</a> 2008-07-14 16:56 <a href="http://www.blogjava.net/mashiguang/archive/2008/07/14/214768.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>