﻿<?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-自由飞翔-随笔分类-other</title><link>http://www.blogjava.net/GavinMiao/category/49352.html</link><description>我在仰望，java之上</description><language>zh-cn</language><lastBuildDate>Fri, 13 Sep 2019 16:51:02 GMT</lastBuildDate><pubDate>Fri, 13 Sep 2019 16:51:02 GMT</pubDate><ttl>60</ttl><item><title>编码至高法则-高内聚低耦合</title><link>http://www.blogjava.net/GavinMiao/archive/2019/09/11/434613.html</link><dc:creator>GavinMiao</dc:creator><author>GavinMiao</author><pubDate>Wed, 11 Sep 2019 07:59:00 GMT</pubDate><guid>http://www.blogjava.net/GavinMiao/archive/2019/09/11/434613.html</guid><wfw:comment>http://www.blogjava.net/GavinMiao/comments/434613.html</wfw:comment><comments>http://www.blogjava.net/GavinMiao/archive/2019/09/11/434613.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/GavinMiao/comments/commentRss/434613.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/GavinMiao/services/trackbacks/434613.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 此法则适合所有语言，咱们以JavaScript和Java两个角度分析一下这个东东。  一、javascript  有这样的一个页面，js、css代码都写在html页面中。  例如：gnj.html  v1版本Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-...&nbsp;&nbsp;<a href='http://www.blogjava.net/GavinMiao/archive/2019/09/11/434613.html'>阅读全文</a><img src ="http://www.blogjava.net/GavinMiao/aggbug/434613.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/GavinMiao/" target="_blank">GavinMiao</a> 2019-09-11 15:59 <a href="http://www.blogjava.net/GavinMiao/archive/2019/09/11/434613.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>公司口碑及待遇评价的网站</title><link>http://www.blogjava.net/GavinMiao/archive/2012/03/27/372859.html</link><dc:creator>GavinMiao</dc:creator><author>GavinMiao</author><pubDate>Tue, 27 Mar 2012 15:13:00 GMT</pubDate><guid>http://www.blogjava.net/GavinMiao/archive/2012/03/27/372859.html</guid><wfw:comment>http://www.blogjava.net/GavinMiao/comments/372859.html</wfw:comment><comments>http://www.blogjava.net/GavinMiao/archive/2012/03/27/372859.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/GavinMiao/comments/commentRss/372859.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/GavinMiao/services/trackbacks/372859.html</trackback:ping><description><![CDATA[1.公司速查手册 ：<a href="http://www.b1.tooyard.com/">http://www.b1.tooyard.com/<br /></a>2.分智网：<a href="http://www.fenzhi.com/">http://www.fenzhi.com/</a>&nbsp;&nbsp;<br />3.我评it：<a href="http://wopingit.com/">http://wopingit.com/</a>&nbsp; &nbsp;<br />4.企业点评网：<a href="http://www.71dp.com/">http://www.71dp.com/</a>&nbsp; &nbsp;<br />5.中国企业评价网：&nbsp;<a href="http://www.ceea.net.cn/">http://www.ceea.net.cn/</a>&nbsp;&nbsp;<br />6.公司点评网：<a href="http://www.gsdpw.com/">http://www.gsdpw.com/</a>&nbsp;&nbsp;<br />7.企业付费邀请面试：<a href="http://www.tradecv.com/">http://www.tradecv.com/</a><img src ="http://www.blogjava.net/GavinMiao/aggbug/372859.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/GavinMiao/" target="_blank">GavinMiao</a> 2012-03-27 23:13 <a href="http://www.blogjava.net/GavinMiao/archive/2012/03/27/372859.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>window下dos窗口中文乱码解决办法</title><link>http://www.blogjava.net/GavinMiao/archive/2012/03/20/372258.html</link><dc:creator>GavinMiao</dc:creator><author>GavinMiao</author><pubDate>Tue, 20 Mar 2012 03:16:00 GMT</pubDate><guid>http://www.blogjava.net/GavinMiao/archive/2012/03/20/372258.html</guid><wfw:comment>http://www.blogjava.net/GavinMiao/comments/372258.html</wfw:comment><comments>http://www.blogjava.net/GavinMiao/archive/2012/03/20/372258.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/GavinMiao/comments/commentRss/372258.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/GavinMiao/services/trackbacks/372258.html</trackback:ping><description><![CDATA[<br /><span class="Apple-style-span" style="font-family: simsun; background-color: #ffffff; ">进入注册表：<br />HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe<br /></span>新建DWORD值，然后重命名为：CodePage，修改其值为十进制的936<img src ="http://www.blogjava.net/GavinMiao/aggbug/372258.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/GavinMiao/" target="_blank">GavinMiao</a> 2012-03-20 11:16 <a href="http://www.blogjava.net/GavinMiao/archive/2012/03/20/372258.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>POI学习</title><link>http://www.blogjava.net/GavinMiao/archive/2012/02/22/370488.html</link><dc:creator>GavinMiao</dc:creator><author>GavinMiao</author><pubDate>Wed, 22 Feb 2012 02:01:00 GMT</pubDate><guid>http://www.blogjava.net/GavinMiao/archive/2012/02/22/370488.html</guid><wfw:comment>http://www.blogjava.net/GavinMiao/comments/370488.html</wfw:comment><comments>http://www.blogjava.net/GavinMiao/archive/2012/02/22/370488.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/GavinMiao/comments/commentRss/370488.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/GavinMiao/services/trackbacks/370488.html</trackback:ping><description><![CDATA[<div>POI所有组件：<br /><br /><img src="http://www.blogjava.net/images/blogjava_net/gavinmiao/poi-comp.png" border="0" alt="" width="483" height="332" /><br /></div><img src ="http://www.blogjava.net/GavinMiao/aggbug/370488.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/GavinMiao/" target="_blank">GavinMiao</a> 2012-02-22 10:01 <a href="http://www.blogjava.net/GavinMiao/archive/2012/02/22/370488.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MyEclipse修改项目名称</title><link>http://www.blogjava.net/GavinMiao/archive/2011/12/03/365484.html</link><dc:creator>GavinMiao</dc:creator><author>GavinMiao</author><pubDate>Sat, 03 Dec 2011 15:37:00 GMT</pubDate><guid>http://www.blogjava.net/GavinMiao/archive/2011/12/03/365484.html</guid><wfw:comment>http://www.blogjava.net/GavinMiao/comments/365484.html</wfw:comment><comments>http://www.blogjava.net/GavinMiao/archive/2011/12/03/365484.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/GavinMiao/comments/commentRss/365484.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/GavinMiao/services/trackbacks/365484.html</trackback:ping><description><![CDATA[<span class="Apple-style-span" style="font-family: simsun; font-size: 12px; line-height: 19px; background-color: #ffffff; ">项目上右击鼠标--&gt;Properties--&gt;MyEclipse--&gt;Web--&gt;Content Root--&gt;Web content-root--&gt;改成你想要的项目名 即可</span><img src ="http://www.blogjava.net/GavinMiao/aggbug/365484.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/GavinMiao/" target="_blank">GavinMiao</a> 2011-12-03 23:37 <a href="http://www.blogjava.net/GavinMiao/archive/2011/12/03/365484.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>转载：tomcat各种配置及编码设置</title><link>http://www.blogjava.net/GavinMiao/archive/2011/12/01/365266.html</link><dc:creator>GavinMiao</dc:creator><author>GavinMiao</author><pubDate>Thu, 01 Dec 2011 02:49:00 GMT</pubDate><guid>http://www.blogjava.net/GavinMiao/archive/2011/12/01/365266.html</guid><wfw:comment>http://www.blogjava.net/GavinMiao/comments/365266.html</wfw:comment><comments>http://www.blogjava.net/GavinMiao/archive/2011/12/01/365266.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/GavinMiao/comments/commentRss/365266.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/GavinMiao/services/trackbacks/365266.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;只有注册用户登录后才能阅读该文。<a href='http://www.blogjava.net/GavinMiao/archive/2011/12/01/365266.html'>阅读全文</a><img src ="http://www.blogjava.net/GavinMiao/aggbug/365266.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/GavinMiao/" target="_blank">GavinMiao</a> 2011-12-01 10:49 <a href="http://www.blogjava.net/GavinMiao/archive/2011/12/01/365266.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>XP 用命令查看和杀死进程</title><link>http://www.blogjava.net/GavinMiao/archive/2011/11/28/364996.html</link><dc:creator>GavinMiao</dc:creator><author>GavinMiao</author><pubDate>Mon, 28 Nov 2011 07:28:00 GMT</pubDate><guid>http://www.blogjava.net/GavinMiao/archive/2011/11/28/364996.html</guid><wfw:comment>http://www.blogjava.net/GavinMiao/comments/364996.html</wfw:comment><comments>http://www.blogjava.net/GavinMiao/archive/2011/11/28/364996.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/GavinMiao/comments/commentRss/364996.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/GavinMiao/services/trackbacks/364996.html</trackback:ping><description><![CDATA[<span class="Apple-style-span" style="font-family: 宋体, Arial; background-color: #fffcf3; ">1：查看8080端口占用情况：<br />C:\Documents and Settings\Administrator&gt;netstat -aon | findstr "8080"<br />&nbsp; TCP&nbsp;&nbsp;&nbsp; 0.0.0.0:<strong><font color="#008000" style="line-height: 1.5; ">8080</font></strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.0.0.0:0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LISTENING&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#F00000" style="line-height: 1.5; "><strong>3608<br /><br /></strong></font></span>2<span class="Apple-style-span" style="font-family: 宋体, Arial; background-color: #fffcf3; ">：查看进程<br /><br />C:\Documents and Settings\Administrator&gt;tasklist | findstr "3608"<br /><font color="#0000F0" style="line-height: 1.5; "><strong>javaw.exe</strong></font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3608 Console&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp; 69,484 K<br /><br />3.杀进程：<br /><div>tskill 3608</div></span><img src ="http://www.blogjava.net/GavinMiao/aggbug/364996.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/GavinMiao/" target="_blank">GavinMiao</a> 2011-11-28 15:28 <a href="http://www.blogjava.net/GavinMiao/archive/2011/11/28/364996.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MyEclipse + Tomcat项目重命名</title><link>http://www.blogjava.net/GavinMiao/archive/2011/11/15/363844.html</link><dc:creator>GavinMiao</dc:creator><author>GavinMiao</author><pubDate>Tue, 15 Nov 2011 07:09:00 GMT</pubDate><guid>http://www.blogjava.net/GavinMiao/archive/2011/11/15/363844.html</guid><wfw:comment>http://www.blogjava.net/GavinMiao/comments/363844.html</wfw:comment><comments>http://www.blogjava.net/GavinMiao/archive/2011/11/15/363844.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/GavinMiao/comments/commentRss/363844.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/GavinMiao/services/trackbacks/363844.html</trackback:ping><description><![CDATA[<span style="color: #2e2e2e; font-family: 宋体; font-size: 15px; line-height: 24px; background-color: #f2f9ff; ">文章来源：<br />问题描述：<br />原来项目名称是shopping，部署到tomcat后直接输入地址端口后加项目名http://localhost:8080/shopping就可以浏览主页了，后来我把项目名改成shoppingCar，重新部署到tomcat后发现部署过去的项目还是shopping而不是shoppingCar<br />解决方案：<br />在MyEclipse里面只把项目重命名是不行的，还要修改以下内容：<br />项目&#8594;properties&#8594;MyEclipse&#8594;Web下修改Web Context-root的名字为重命名之后的名字即可。</span><img src ="http://www.blogjava.net/GavinMiao/aggbug/363844.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/GavinMiao/" target="_blank">GavinMiao</a> 2011-11-15 15:09 <a href="http://www.blogjava.net/GavinMiao/archive/2011/11/15/363844.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>转载：在项目中使用多个数据源－多sessionFactory方案</title><link>http://www.blogjava.net/GavinMiao/archive/2011/11/14/363689.html</link><dc:creator>GavinMiao</dc:creator><author>GavinMiao</author><pubDate>Mon, 14 Nov 2011 08:11:00 GMT</pubDate><guid>http://www.blogjava.net/GavinMiao/archive/2011/11/14/363689.html</guid><wfw:comment>http://www.blogjava.net/GavinMiao/comments/363689.html</wfw:comment><comments>http://www.blogjava.net/GavinMiao/archive/2011/11/14/363689.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/GavinMiao/comments/commentRss/363689.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/GavinMiao/services/trackbacks/363689.html</trackback:ping><description><![CDATA[<span class="Apple-style-span" style="color: #9a9a9a; font-family: arial; font-size: 12px; line-height: 18px; background-color: #ffffff; "><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #6d6d6d; line-height: 26px; ">适用范围：适合SSH架构访问多个数据库，数据库的类型和表结构不必相同，且没有跨库事务的情况（跨库事务最好用分布式事务处理）。</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #6d6d6d; line-height: 26px; "></p><div>文章来源：<a href="http://apps.hi.baidu.com/share/detail/15756344">http://apps.hi.baidu.com/share/detail/15756344<br /><br /></a></div>实现方式：<font color="#ff0000">我们可以在spring的配置文件中配置多个sessionFactory,如：<br /></font>&lt;bean id="aDataSource"<br />&nbsp;&nbsp; class="org.apache.commons.dbcp.BasicDataSource"<br />&nbsp;&nbsp; destroy-method="close"&gt;<br />&nbsp;&nbsp; &lt;property name="driverClassName"&gt;<br />&nbsp;&nbsp;&nbsp; &lt;value&gt;${adriver}&lt;/value&gt;<br />&nbsp;&nbsp; &lt;/property&gt;<br />&nbsp;&nbsp; &lt;property name="url"&gt;<br />&nbsp;&nbsp;&nbsp; &lt;value&gt;${aurl}&lt;/value&gt;<br />&nbsp;&nbsp; &lt;/property&gt;<br />&nbsp;&nbsp; &lt;property name="username"&gt;<br />&nbsp;&nbsp;&nbsp; &lt;value&gt;${ausername}&lt;/value&gt;<br />&nbsp;&nbsp; &lt;/property&gt;<br />&nbsp;&nbsp; &lt;property name="password"&gt;<br />&nbsp;&nbsp;&nbsp; &lt;value&gt;${apassword}&lt;/value&gt;<br />&nbsp;&nbsp; &lt;/property&gt;<br />&lt;/bean&gt;<br />&lt;bean id="bDataSource"<br />&nbsp;&nbsp; class="org.apache.commons.dbcp.BasicDataSource"<br />&nbsp;&nbsp; destroy-method="close"&gt;<br />&nbsp;&nbsp; &lt;property name="driverClassName"&gt;<br />&nbsp;&nbsp;&nbsp; &lt;value&gt;${bdriver}&lt;/value&gt;<br />&nbsp;&nbsp; &lt;/property&gt;<br />&nbsp;&nbsp; &lt;property name="url"&gt;<br />&nbsp;&nbsp;&nbsp; &lt;value&gt;${burl}&lt;/value&gt;<br />&nbsp;&nbsp; &lt;/property&gt;<br />&nbsp;&nbsp; &lt;property name="username"&gt;<br />&nbsp;&nbsp;&nbsp; &lt;value&gt;${busername}&lt;/value&gt;<br />&nbsp;&nbsp; &lt;/property&gt;<br />&nbsp;&nbsp; &lt;property name="password"&gt;<br />&nbsp;&nbsp;&nbsp; &lt;value&gt;${bpassword}&lt;/value&gt;<br />&nbsp;&nbsp; &lt;/property&gt;<br />&lt;/bean&gt;<br />&lt;bean id="cDataSource"<br />&nbsp;&nbsp; class="org.apache.commons.dbcp.BasicDataSource"<br />&nbsp;&nbsp; destroy-method="close"&gt;<br />&nbsp;&nbsp; &lt;property name="driverClassName"&gt;<br />&nbsp;&nbsp;&nbsp; &lt;value&gt;${cdriver}&lt;/value&gt;<br />&nbsp;&nbsp; &lt;/property&gt;<br />&nbsp;&nbsp; &lt;property name="url"&gt;<br />&nbsp;&nbsp;&nbsp; &lt;value&gt;${curl}&lt;/value&gt;<br />&nbsp;&nbsp; &lt;/property&gt;<br />&nbsp;&nbsp; &lt;property name="username"&gt;<br />&nbsp;&nbsp;&nbsp; &lt;value&gt;${cusername}&lt;/value&gt;<br />&nbsp;&nbsp; &lt;/property&gt;<br />&nbsp;&nbsp; &lt;property name="password"&gt;<br />&nbsp;&nbsp;&nbsp; &lt;value&gt;${cpassword}&lt;/value&gt;<br />&nbsp;&nbsp; &lt;/property&gt;<br />&lt;/bean&gt;<p>&nbsp;</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #6d6d6d; line-height: 26px; ">&lt;!-- Hibernate SessionFactorys --&gt;<br />&lt;bean id="aSessionFactory"<br />&nbsp;&nbsp; class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"&gt;<br />&nbsp;&nbsp; &lt;property name="dataSource"&gt;<br />&nbsp;&nbsp;&nbsp; &lt;ref local="aDataSource" /&gt;<br />&nbsp;&nbsp; &lt;/property&gt;<br />&nbsp;&nbsp; &lt;property name="mappingResources"&gt;<br />&nbsp;&nbsp;&nbsp; &lt;list&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp; &lt;value&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .hbm.xml文件<br />&nbsp;&nbsp;&nbsp;&nbsp; &lt;/value&gt;<br />&nbsp;&nbsp;&nbsp; &lt;/list&gt;<br />&nbsp;&nbsp; &lt;/property&gt;<br />&nbsp;&nbsp; &lt;property name="hibernateProperties"&gt;<br />&nbsp;&nbsp;&nbsp; &lt;props&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp; &lt;prop key="hibernate.dialect"&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ${ahibernate.dialect}<br />&nbsp;&nbsp;&nbsp;&nbsp; &lt;/prop&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp; &lt;prop key="hibernate.show_sql"&gt;true&lt;/prop&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp; &lt;prop key="format_sql"&gt;true&lt;/prop&gt;<br />&nbsp;&nbsp;&nbsp; &lt;/props&gt;<br />&nbsp;&nbsp; &lt;/property&gt;<br />&lt;/bean&gt;<br /><br />&lt;bean id="bSessionFactory"<br />&nbsp;&nbsp; class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"&gt;<br />&nbsp;&nbsp; &lt;property name="dataSource"&gt;<br />&nbsp;&nbsp;&nbsp; &lt;ref local="bDataSource" /&gt;<br />&nbsp;&nbsp; &lt;/property&gt;<br />&nbsp;&nbsp; &lt;property name="mappingResources"&gt;<br />&nbsp;&nbsp;&nbsp; &lt;list&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp; &lt;value&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .hbm.xml文件<br />&nbsp;&nbsp;&nbsp;&nbsp; &lt;/value&gt;<br />&nbsp;&nbsp;&nbsp; &lt;/list&gt;<br />&nbsp;&nbsp; &lt;/property&gt;<br />&nbsp;&nbsp; &lt;property name="hibernateProperties"&gt;<br />&nbsp;&nbsp;&nbsp; &lt;props&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp; &lt;prop key="hibernate.dialect"&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ${bhibernate.dialect}<br />&nbsp;&nbsp;&nbsp;&nbsp; &lt;/prop&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp; &lt;prop key="hibernate.show_sql"&gt;true&lt;/prop&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp; &lt;prop key="format_sql"&gt;true&lt;/prop&gt;<br />&nbsp;&nbsp;&nbsp; &lt;/props&gt;<br />&nbsp;&nbsp; &lt;/property&gt;<br />&lt;/bean&gt;<br /><br />&lt;bean id="cSessionFactory"<br />&nbsp;&nbsp; class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"&gt;<br />&nbsp;&nbsp; &lt;property name="dataSource"&gt;<br />&nbsp;&nbsp;&nbsp; &lt;ref local="cDataSource" /&gt;<br />&nbsp;&nbsp; &lt;/property&gt;<br />&nbsp;&nbsp; &lt;property name="mappingResources"&gt;<br />&nbsp;&nbsp;&nbsp; &lt;list&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp; &lt;value&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .hbm.xml文件<br />&nbsp;&nbsp;&nbsp;&nbsp; &lt;/value&gt;<br />&nbsp;&nbsp;&nbsp; &lt;/list&gt;<br />&nbsp;&nbsp; &lt;/property&gt;<br />&nbsp;&nbsp; &lt;property name="hibernateProperties"&gt;<br />&nbsp;&nbsp;&nbsp; &lt;props&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp; &lt;prop key="hibernate.dialect"&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ${chibernate.dialect}<br />&nbsp;&nbsp;&nbsp;&nbsp; &lt;/prop&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp; &lt;prop key="hibernate.show_sql"&gt;true&lt;/prop&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp; &lt;prop key="format_sql"&gt;true&lt;/prop&gt;<br />&nbsp;&nbsp;&nbsp; &lt;/props&gt;<br />&nbsp;&nbsp; &lt;/property&gt;<br />&lt;/bean&gt;<br /><br />&lt;bean id="sessionFactory" class="com.cintel.dcp.datasource.MultiSessionFactory"&gt;<br />&nbsp;&nbsp; &lt;property name="sessionFactory"&gt;&lt;ref local="aSessionFactory"/&gt;&lt;/property&gt;<br />&lt;/bean&gt;<br />注意：<font color="#ff0000">最后一个<font color="#0000ff">com.cintel.dcp.datasource.MultiSessionFactory</font>要自己实现，它实现了SessionFactory接口和ApplicationContext接口，如下：<br /></font>package com.cintel.dcp.datasource;</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #6d6d6d; line-height: 26px; ">import java.io.Serializable;<br />import java.sql.Connection;<br />import java.util.Map;<br />import java.util.Set;</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #6d6d6d; line-height: 26px; ">import javax.naming.NamingException;<br />import javax.naming.Reference;</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #6d6d6d; line-height: 26px; ">import org.apache.commons.logging.Log;<br />import org.apache.commons.logging.LogFactory;<br />import org.hibernate.HibernateException;<br />import org.hibernate.Interceptor;<br />import org.hibernate.SessionFactory;<br />import org.hibernate.StatelessSession;<br />import org.hibernate.classic.Session;<br />import org.hibernate.engine.FilterDefinition;<br />import org.hibernate.metadata.ClassMetadata;<br />import org.hibernate.metadata.CollectionMetadata;<br />import org.hibernate.stat.Statistics;<br />import org.springframework.beans.factory.NoSuchBeanDefinitionException;<br />import org.springframework.context.ApplicationContext;<br />import org.springframework.context.ApplicationContextAware;<br /><br />public class MultiSessionFactory implements SessionFactory, ApplicationContextAware {<br />private static final long serialVersionUID = 2064557324203496378L;<br />private static final Log log = LogFactory.getLog(MultiSessionFactory.class);<br />private ApplicationContext applicationContext = null;<br />private SessionFactory sessionFactory = null;<br /><br />public ApplicationContext getApplicationContext() {<br />&nbsp;&nbsp; return applicationContext;<br />}<br /><br />public void setApplicationContext(ApplicationContext applicationContext) {<br />&nbsp;&nbsp; this.applicationContext = applicationContext;<br />}<br /><br />public SessionFactory getSessionFactory(String sessionFactoryName) {<br />&nbsp;&nbsp; log.debug("sessionFactoryName:"+sessionFactoryName);<br />&nbsp;&nbsp; try{<br />&nbsp;&nbsp;&nbsp; if(sessionFactoryName==null||sessionFactoryName.equals("")){<br />&nbsp;&nbsp;&nbsp;&nbsp; return sessionFactory;<br />&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; return (SessionFactory)this.getApplicationContext().getBean(sessionFactoryName);<br />&nbsp;&nbsp; }catch(NoSuchBeanDefinitionException ex){<br />&nbsp;&nbsp;&nbsp; throw new RuntimeException("There is not the sessionFactory &lt;name:"+sessionFactoryName+"&gt; in the applicationContext!");<br />&nbsp;&nbsp; }<br />}<br /><br />public SessionFactory getSessionFactory() {<br />&nbsp;&nbsp; String sessionFactoryName = CustomerContextHolder.getCustomerType();<br />&nbsp;&nbsp; return getSessionFactory(sessionFactoryName);<br />}<br /><br />public void setSessionFactory(SessionFactory sessionFactory) {<br />&nbsp;&nbsp; this.sessionFactory = sessionFactory;<br />}<br /><br /><br />/* (non-Javadoc)<br />* @see org.hibernate.SessionFactory#close()<br />*/<br />public void close() throws HibernateException {<br />&nbsp;&nbsp; getSessionFactory().close();<br />}<br />/* (non-Javadoc)<br />* @see org.hibernate.SessionFactory#evict(java.lang.Class)<br />*/<br />public void evict(Class persistentClass) throws HibernateException {<br />&nbsp;&nbsp; getSessionFactory().evict(persistentClass);<br />}<br />/* (non-Javadoc)<br />* @see org.hibernate.SessionFactory#evict(java.lang.Class, java.io.Serializable)<br />*/<br />public void evict(Class persistentClass, Serializable id) throws HibernateException {<br />&nbsp;&nbsp; getSessionFactory().evict(persistentClass, id);<br />}<br />/* (non-Javadoc)<br />* @see org.hibernate.SessionFactory#evictCollection(java.lang.String)<br />*/<br />public void evictCollection(String roleName) throws HibernateException {<br />&nbsp;&nbsp; getSessionFactory().evictCollection(roleName);<br />}<br />/* (non-Javadoc)<br />* @see org.hibernate.SessionFactory#evictCollection(java.lang.String, java.io.Serializable)<br />*/<br />public void evictCollection(String roleName, Serializable id) throws HibernateException {<br />&nbsp;&nbsp; getSessionFactory().evictCollection(roleName, id);<br />}<br />/* (non-Javadoc)<br />* @see org.hibernate.SessionFactory#evictEntity(java.lang.String)<br />*/<br />public void evictEntity(String entityName) throws HibernateException {<br />&nbsp;&nbsp; getSessionFactory().evictEntity(entityName);<br />}<br />/* (non-Javadoc)<br />* @see org.hibernate.SessionFactory#evictEntity(java.lang.String, java.io.Serializable)<br />*/<br />public void evictEntity(String entityName, Serializable id) throws HibernateException {<br />&nbsp;&nbsp; getSessionFactory().evictEntity(entityName, id);<br />}<br />/* (non-Javadoc)<br />* @see org.hibernate.SessionFactory#evictQueries()<br />*/<br />public void evictQueries() throws HibernateException {<br />&nbsp;&nbsp; getSessionFactory().evictQueries();<br />}<br />/* (non-Javadoc)<br />* @see org.hibernate.SessionFactory#evictQueries(java.lang.String)<br />*/<br />public void evictQueries(String cacheRegion) throws HibernateException {<br />&nbsp;&nbsp; getSessionFactory().evictQueries(cacheRegion);<br />}<br />/* (non-Javadoc)<br />* @see org.hibernate.SessionFactory#getAllClassMetadata()<br />*/<br />public Map getAllClassMetadata() throws HibernateException {<br />&nbsp;&nbsp; return getSessionFactory().getAllClassMetadata();<br />}<br />/* (non-Javadoc)<br />* @see org.hibernate.SessionFactory#getAllCollectionMetadata()<br />*/<br />public Map getAllCollectionMetadata() throws HibernateException {<br />&nbsp;&nbsp; return getSessionFactory().getAllCollectionMetadata();<br />}<br />/* (non-Javadoc)<br />* @see org.hibernate.SessionFactory#getClassMetadata(java.lang.Class)<br />*/<br />public ClassMetadata getClassMetadata(Class persistentClass) throws HibernateException {<br />&nbsp;&nbsp; return getSessionFactory().getClassMetadata(persistentClass);<br />}<br />/* (non-Javadoc)<br />* @see org.hibernate.SessionFactory#getClassMetadata(java.lang.String)<br />*/<br />public ClassMetadata getClassMetadata(String entityName) throws HibernateException {<br />&nbsp;&nbsp; return getSessionFactory().getClassMetadata(entityName);<br />}<br />/* (non-Javadoc)<br />* @see org.hibernate.SessionFactory#getCollectionMetadata(java.lang.String)<br />*/<br />public CollectionMetadata getCollectionMetadata(String roleName) throws HibernateException {<br />&nbsp;&nbsp; return getSessionFactory().getCollectionMetadata(roleName);<br />}<br />/* (non-Javadoc)<br />* @see org.hibernate.SessionFactory#getCurrentSession()<br />*/<br />public Session getCurrentSession() throws HibernateException {<br />&nbsp;&nbsp; return getSessionFactory().getCurrentSession();<br />}<br />/* (non-Javadoc)<br />* @see org.hibernate.SessionFactory#getDefinedFilterNames()<br />*/<br />public Set getDefinedFilterNames() {<br />&nbsp;&nbsp; return getSessionFactory().getDefinedFilterNames();<br />}<br />/* (non-Javadoc)<br />* @see org.hibernate.SessionFactory#getFilterDefinition(java.lang.String)<br />*/<br />public FilterDefinition getFilterDefinition(String filterName) throws HibernateException {<br />&nbsp;&nbsp; return getSessionFactory().getFilterDefinition(filterName);<br />}<br />/* (non-Javadoc)<br />* @see org.hibernate.SessionFactory#getStatistics()<br />*/<br />public Statistics getStatistics() {<br />&nbsp;&nbsp; return getSessionFactory().getStatistics();<br />}<br />/* (non-Javadoc)<br />* @see org.hibernate.SessionFactory#isClosed()<br />*/<br />public boolean isClosed() {<br />&nbsp;&nbsp; return getSessionFactory().isClosed();<br />}<br />/* (non-Javadoc)<br />* @see org.hibernate.SessionFactory#openSession()<br />*/<br />public Session openSession() throws HibernateException {<br />&nbsp;&nbsp; return getSessionFactory().openSession();<br />}<br />/* (non-Javadoc)<br />* @see org.hibernate.SessionFactory#openSession(java.sql.Connection)<br />*/<br />public Session openSession(Connection connection) {<br />&nbsp;&nbsp; return getSessionFactory().openSession(connection);<br />}<br />/* (non-Javadoc)<br />* @see org.hibernate.SessionFactory#openSession(org.hibernate.Interceptor)<br />*/<br />public Session openSession(Interceptor interceptor) throws HibernateException {<br />&nbsp;&nbsp; return getSessionFactory().openSession(interceptor);<br />}<br />/* (non-Javadoc)<br />* @see org.hibernate.SessionFactory#openSession(java.sql.Connection, org.hibernate.Interceptor)<br />*/<br />public Session openSession(Connection connection, Interceptor interceptor) {<br />&nbsp;&nbsp; return getSessionFactory().openSession(connection, interceptor);<br />}<br />/* (non-Javadoc)<br />* @see org.hibernate.SessionFactory#openStatelessSession()<br />*/<br />public StatelessSession openStatelessSession() {<br />&nbsp;&nbsp; return getSessionFactory().openStatelessSession();<br />}<br />/* (non-Javadoc)<br />* @see org.hibernate.SessionFactory#openStatelessSession(java.sql.Connection)<br />*/<br />public StatelessSession openStatelessSession(Connection connection) {<br />&nbsp;&nbsp; return getSessionFactory().openStatelessSession(connection);<br />}<br />/* (non-Javadoc)<br />* @see javax.naming.Referenceable#getReference()<br />*/<br />public Reference getReference() throws NamingException {<br />&nbsp;&nbsp; return getSessionFactory().getReference();<br />}<br />}</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #6d6d6d; line-height: 26px; "><br /><font color="#ff0000">然后我用一个常量类来标识sessionFactory</font><br />public class DynamicDataSourceType {<br />public static final String A= "aSessionFactory";<br />public static final String B= "bSessionFactory";<br />public static final String C= "cSessionFactory";<br />}</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #6d6d6d; line-height: 26px; "><font color="#ff0000">最后一个关键类：用来存放当前正在使用的sessionFactory</font><br />public class CustomerContextHolder {</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #6d6d6d; line-height: 26px; ">private static final ThreadLocal contextHolder = new ThreadLocal();</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #6d6d6d; line-height: 26px; ">public static void setCustomerType(String customerType) {<br />&nbsp;&nbsp; Assert.notNull(customerType, "customerType cannot be null");<br />&nbsp;&nbsp; contextHolder.set(customerType);<br />}</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #6d6d6d; line-height: 26px; ">public static String getCustomerType() {<br />&nbsp;&nbsp; return (String) contextHolder.get();<br />}</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #6d6d6d; line-height: 26px; ">public static void clearCustomerType() {<br />&nbsp;&nbsp; contextHolder.remove();<br />}<br />}</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #6d6d6d; line-height: 26px; "><font color="#ff0000">可以在action、service、dao中进行数据库切换，切换方式：<br />CustomerContextHolder.setCustomerType(DynamicDataSourceType.A);</font></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #6d6d6d; line-height: 26px; "></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #6d6d6d; line-height: 26px; ">以上思路来自javaEye论坛的一个高手，在此标识感谢</p></span><img src ="http://www.blogjava.net/GavinMiao/aggbug/363689.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/GavinMiao/" target="_blank">GavinMiao</a> 2011-11-14 16:11 <a href="http://www.blogjava.net/GavinMiao/archive/2011/11/14/363689.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>转载：动态切换数据源(spring+hibernate)</title><link>http://www.blogjava.net/GavinMiao/archive/2011/11/14/363685.html</link><dc:creator>GavinMiao</dc:creator><author>GavinMiao</author><pubDate>Mon, 14 Nov 2011 07:37:00 GMT</pubDate><guid>http://www.blogjava.net/GavinMiao/archive/2011/11/14/363685.html</guid><wfw:comment>http://www.blogjava.net/GavinMiao/comments/363685.html</wfw:comment><comments>http://www.blogjava.net/GavinMiao/archive/2011/11/14/363685.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/GavinMiao/comments/commentRss/363685.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/GavinMiao/services/trackbacks/363685.html</trackback:ping><description><![CDATA[<span class="Apple-style-span" style="color: #010101; font-family: 宋体, tahoma, Srial, helvetica, sans-serif; line-height: 24px; background-color: #f5f8fd; "><p style="border-top-width: medium; border-right-width: medium; border-bottom-width: medium; border-left-width: medium; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-color: initial; margin-top: 15px; margin-bottom: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 25px; "><span style="color: #000000; font-family: Tahoma; font-style: normal; font-variant: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><span style="font-size: 21px; "><strong></strong></span><span style="font-size: 12pt; "><strong>文章来源：</strong></span></span></p></span><span class="Apple-style-span" style="font-family: Tahoma; font-size: 21px; line-height: normal; background-color: #f5f8fd; "><strong><div style="display: inline !important; "><a href="http://www.th7.cn/Program/java/2011/10/23/44664.shtml"><span style="font-size: 12pt; ">http://www.th7.cn/Program/java/2011/10/23/44664.shtml<br /><br /></span></a></div></strong></span><span class="Apple-style-span" style="color: #010101; font-family: 宋体, tahoma, Srial, helvetica, sans-serif; line-height: 24px; background-color: #f5f8fd; "><p style="border-top-width: medium; border-right-width: medium; border-bottom-width: medium; border-left-width: medium; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-color: initial; margin-top: 15px; margin-bottom: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 25px; "><span style="color: #000000; font-family: Tahoma; font-style: normal; font-variant: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><span style="font-size: 21px; "><strong>起因</strong></span><span style="font-size: 16px; ">：在当前我手上的一个项目中需要多个数据源,并且来自于不同类型的数据库... 因为很多历史原因.这个项目的住数据源是MySQL,整个系统的CURD都是操作的这个数据库.</span></span></p>但是还有另外两个用于数据采集的数据库: MSSQL,ACCESS.还好只是用于数据采集，在事务上可以不要跨数据库了，这一点节省了好多的工作量.<span style="font-size: 21px; "><strong>环境</strong></span><span style="font-size: 16px; ">：我搭建的测试环境是 spring2.5.6+hibernate3.2</span><span style="font-size: 16px; "><br /></span><span style="font-size: 21px; "><strong>思路</strong></span><span style="font-size: 16px; ">：动态切换数据源确切的来说是在同一类型数据库的情况下的。意思就是说 , 在系统中的使用的数据库分布在多台数据库服务器或者在同台服务器上的多个数据库. 在运行时期间根据某种标识符来动态的选择当前操作的数据库.</span>&nbsp; &nbsp; &nbsp;1.数据源是相同类型的数据库: 一个SessionFactory+动态数据源+一个事务管理器&nbsp; &nbsp; &nbsp;2.数据源是不同类型的数据库: 根据类型 配置多套SessionFactory<span style="font-size: 21px; "><strong>模拟</strong></span><span style="font-size: 16px; ">：两个mysql数据源+一个Access数据源</span><span style="font-size: 16px; "><br /></span><span style="font-size: 21px; "><strong>实现</strong></span><span size="4" style="font-size: medium; ">：</span><span size="4" style="font-size: medium; "><br /></span><span size="4" style="font-size: medium; ">1.切换数据源需要标识符,标识符是</span><span style="font-family: 'Courier New'; font-size: 13px; ">Object</span><span style="font-size: large; ">类型</span><pre style="border-top-width: medium; border-right-width: medium; border-bottom-width: medium; border-left-width: medium; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><span style="color: #0000ff; ">package</span> lhp.example.context;<br /><span style="color: #0000ff; ">public</span> <span style="color: #0000ff; ">enum</span> DBType {<br />      dataSource1, dataSource2;<br />}</pre><span style="font-size: large; "><span style="color: #000000; font-family: Tahoma; font-style: normal; font-variant: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><span style="font-size: large; "><br /></span></span></span><span style="font-size: large; "><span style="color: #000000; font-family: Tahoma; font-style: normal; font-variant: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><span style="font-size: large; ">2.然后创建一个用于切换数据源(设置或者获得上下文)的工具类</span></span></span><span style="font-size: large; "><span style="font-size: large; "></span></span><pre style="border-top-width: medium; border-right-width: medium; border-bottom-width: medium; border-left-width: medium; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><span style="color: #0000ff; ">package</span> lhp.example.context;<br /><br /><span style="color: #0000ff; ">public</span> <span style="color: #0000ff; ">class</span> ContextHolder {<br />    <span style="color: #0000ff; ">private</span> <span style="color: #0000ff; ">static</span> <span style="color: #0000ff; ">final</span> ThreadLocal&lt;Object&gt; holder = <span style="color: #0000ff; ">new</span> ThreadLocal&lt;Object&gt;();<br /><br />    <span style="color: #0000ff; ">public</span> <span style="color: #0000ff; ">static</span> <span style="color: #0000ff; ">void</span> setDbType(DBType dbType) {<br />        holder.set(dbType);<br />    }<br /><br />    <span style="color: #0000ff; ">public</span> <span style="color: #0000ff; ">static</span> DBType getDbType() {<br />        <span style="color: #0000ff; ">return</span> (DBType) holder.get();<br />    }<br /><br />    <span style="color: #0000ff; ">public</span> <span style="color: #0000ff; ">static</span> <span style="color: #0000ff; ">void</span> clearDbType() {<br />        holder.remove();<br />    }<br />}</pre><span style="font-size: large; "><span style="color: #000000; font-family: Tahoma; font-style: normal; font-variant: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><span style="font-size: large; "><br /></span></span></span><span style="font-size: large; "><span style="color: #000000; font-family: Tahoma; font-style: normal; font-variant: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><span style="font-size: large; ">3.创建动态数据源类,继承</span><strong><span style="font-family: 'Courier New'; font-size: 13px; ">org.springframework.jdbc.datasource.lookup.</span><span style="font-family: 'Courier New'; font-size: 13px; ">AbstractRoutingDataSource</span></strong><span style="font-size: large; ">这个类.</span></span></span><span style="font-size: large; "><span style="font-size: large; "><span style="color: #000000; font-family: Tahoma; font-style: normal; font-variant: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><span style="font-size: large; "></span></span></span></span><pre style="border-top-width: medium; border-right-width: medium; border-bottom-width: medium; border-left-width: medium; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><span style="color: #0000ff; ">package</span> lhp.example.context;<br /><br /><span style="color: #0000ff; ">import</span> java.util.logging.Logger;<br /><br /><span style="color: #0000ff; ">import</span> org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource;<br /><br /><span style="color: #0000ff; ">public</span> <span style="color: #0000ff; ">class</span> DynamicDataSource <span style="color: #0000ff; ">extends</span> AbstractRoutingDataSource {<br />    <span style="color: #0000ff; ">public</span> <span style="color: #0000ff; ">static</span> <span style="color: #0000ff; ">final</span> Logger logger = Logger.getLogger(DynamicDataSource.<span style="color: #0000ff; ">class</span>.toString());<br /><br />    @Override<br />    <span style="color: #0000ff; ">protected</span> Object determineCurrentLookupKey() {<br />        DBType key = ContextHolder.getDbType();<span style="color: #008000; ">//</span><span style="color: #008000; ">获得当前数据源标识符<br />        </span><span style="color: #008000; ">//</span><span style="color: #008000; ">logger.info("当前数据源 :" + key);</span><span style="color: #008000; "><br /></span>        <span style="color: #0000ff; ">return</span> key;<br />    }<br /><br />}</pre><span style="font-size: large; "><br /></span><span style="font-size: large; "><span style="color: #000000; font-family: Tahoma; font-style: normal; font-variant: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><span style="font-size: large; ">4.然后配置多个数据源</span></span></span><span style="font-size: large; "><span style="font-size: large; "><span style="color: #000000; font-family: Tahoma; font-style: normal; font-variant: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><span style="font-size: large; "></span></span></span></span><pre style="border-top-width: medium; border-right-width: medium; border-bottom-width: medium; border-left-width: medium; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><span style="color: #008000; ">&lt;!--</span><span style="color: #008000; "> 数据源1 ： mysql </span><span style="color: #008000; ">--&gt;</span><br />    <span style="color: #0000ff; ">&lt;</span><span style="color: #800000; ">bean </span><span style="color: #ff0000; ">id</span><span style="color: #0000ff; ">="dataSource1"</span><span style="color: #ff0000; "> class</span><span style="color: #0000ff; ">="com.mchange.v2.c3p0.ComboPooledDataSource"</span><span style="color: #0000ff; ">&gt;</span><br />        <span style="color: #0000ff; ">&lt;</span><span style="color: #800000; ">property </span><span style="color: #ff0000; ">name</span><span style="color: #0000ff; ">="driverClass"</span><span style="color: #ff0000; "> value</span><span style="color: #0000ff; ">="com.mysql.jdbc.Driver"</span><span style="color: #ff0000; "> </span><span style="color: #0000ff; ">/&gt;</span><br />        <span style="color: #0000ff; ">&lt;</span><span style="color: #800000; ">property </span><span style="color: #ff0000; ">name</span><span style="color: #0000ff; ">="jdbcUrl"</span><span style="color: #ff0000; "> value</span><span style="color: #0000ff; ">="jdbc:mysql://127.0.0.1:3306/dec"</span><span style="color: #ff0000; "> </span><span style="color: #0000ff; ">/&gt;</span><br />        <span style="color: #0000ff; ">&lt;</span><span style="color: #800000; ">property </span><span style="color: #ff0000; ">name</span><span style="color: #0000ff; ">="user"</span><span style="color: #ff0000; "> value</span><span style="color: #0000ff; ">="root"</span><span style="color: #ff0000; "> </span><span style="color: #0000ff; ">/&gt;</span><br />        <span style="color: #0000ff; ">&lt;</span><span style="color: #800000; ">property </span><span style="color: #ff0000; ">name</span><span style="color: #0000ff; ">="password"</span><span style="color: #ff0000; "> value</span><span style="color: #0000ff; ">=""</span><span style="color: #ff0000; "> </span><span style="color: #0000ff; ">/&gt;</span><br />    <span style="color: #0000ff; ">&lt;/</span><span style="color: #800000; ">bean</span><span style="color: #0000ff; ">&gt;</span><br />    <span style="color: #008000; ">&lt;!--</span><span style="color: #008000; "> 数据源2 ： mysql  </span><span style="color: #008000; ">--&gt;</span><br />    <span style="color: #0000ff; ">&lt;</span><span style="color: #800000; ">bean </span><span style="color: #ff0000; ">id</span><span style="color: #0000ff; ">="dataSource2"</span><span style="color: #ff0000; "> class</span><span style="color: #0000ff; ">="com.mchange.v2.c3p0.ComboPooledDataSource"</span><span style="color: #0000ff; ">&gt;</span><br />        <span style="color: #0000ff; ">&lt;</span><span style="color: #800000; ">property </span><span style="color: #ff0000; ">name</span><span style="color: #0000ff; ">="driverClass"</span><span style="color: #ff0000; "> value</span><span style="color: #0000ff; ">="com.mysql.jdbc.Driver"</span><span style="color: #ff0000; "> </span><span style="color: #0000ff; ">/&gt;</span><br />        <span style="color: #0000ff; ">&lt;</span><span style="color: #800000; ">property </span><span style="color: #ff0000; ">name</span><span style="color: #0000ff; ">="jdbcUrl"</span><span style="color: #ff0000; "> value</span><span style="color: #0000ff; ">="jdbc:mysql://127.0.0.1:3306/lms"</span><span style="color: #ff0000; "> </span><span style="color: #0000ff; ">/&gt;</span><br />        <span style="color: #0000ff; ">&lt;</span><span style="color: #800000; ">property </span><span style="color: #ff0000; ">name</span><span style="color: #0000ff; ">="user"</span><span style="color: #ff0000; "> value</span><span style="color: #0000ff; ">="root"</span><span style="color: #ff0000; "> </span><span style="color: #0000ff; ">/&gt;</span><br />        <span style="color: #0000ff; ">&lt;</span><span style="color: #800000; ">property </span><span style="color: #ff0000; ">name</span><span style="color: #0000ff; ">="password"</span><span style="color: #ff0000; "> value</span><span style="color: #0000ff; ">=""</span><span style="color: #ff0000; "> </span><span style="color: #0000ff; ">/&gt;</span><br />    <span style="color: #0000ff; ">&lt;/</span><span style="color: #800000; ">bean</span><span style="color: #0000ff; ">&gt;</span><br /><br />    <span style="color: #008000; ">&lt;!--</span><span style="color: #008000; "> 数据源3 ：  access </span><span style="color: #008000; ">--&gt;</span><br />    <span style="color: #0000ff; ">&lt;</span><span style="color: #800000; ">bean </span><span style="color: #ff0000; ">id</span><span style="color: #0000ff; ">="dataSource3"</span><span style="color: #ff0000; "> class</span><span style="color: #0000ff; ">="com.mchange.v2.c3p0.ComboPooledDataSource"</span><span style="color: #0000ff; ">&gt;</span><br />        <span style="color: #0000ff; ">&lt;</span><span style="color: #800000; ">property </span><span style="color: #ff0000; ">name</span><span style="color: #0000ff; ">="driverClass"</span><span style="color: #ff0000; "> value</span><span style="color: #0000ff; ">="sun.jdbc.odbc.JdbcOdbcDriver"</span><span style="color: #ff0000; "> </span><span style="color: #0000ff; ">/&gt;</span><br />        <span style="color: #0000ff; ">&lt;</span><span style="color: #800000; ">property </span><span style="color: #ff0000; ">name</span><span style="color: #0000ff; ">="jdbcUrl"</span><span style="color: #ff0000; "> value</span><span style="color: #0000ff; ">="jdbc:odbc:accessTest"</span><span style="color: #ff0000; "> </span><span style="color: #0000ff; ">/&gt;</span><br />        <span style="color: #0000ff; ">&lt;</span><span style="color: #800000; ">property </span><span style="color: #ff0000; ">name</span><span style="color: #0000ff; ">="user"</span><span style="color: #ff0000; "> value</span><span style="color: #0000ff; ">="administrator"</span><span style="color: #ff0000; "> </span><span style="color: #0000ff; ">/&gt;</span><br />        <span style="color: #0000ff; ">&lt;</span><span style="color: #800000; ">property </span><span style="color: #ff0000; ">name</span><span style="color: #0000ff; ">="password"</span><span style="color: #ff0000; "> value</span><span style="color: #0000ff; ">="XLZX0309"</span><span style="color: #ff0000; "> </span><span style="color: #0000ff; ">/&gt;</span><br />    <span style="color: #0000ff; ">&lt;/</span><span style="color: #800000; ">bean</span><span style="color: #0000ff; ">&gt;</span><br /><br />    <span style="color: #008000; ">&lt;!--</span><span style="color: #008000; "> mysql 动态数据源设置</span><span style="color: #008000; ">--&gt;</span><br />    <span style="color: #0000ff; ">&lt;</span><span style="color: #800000; ">bean </span><span style="color: #ff0000; ">id</span><span style="color: #0000ff; ">="mysqlDynamicDataSource"</span><span style="color: #ff0000; "> class</span><span style="color: #0000ff; ">="lhp.example.context.DynamicDataSource"</span><span style="color: #0000ff; ">&gt;</span><br />        <span style="color: #0000ff; ">&lt;</span><span style="color: #800000; ">property </span><span style="color: #ff0000; ">name</span><span style="color: #0000ff; ">="targetDataSources"</span><span style="color: #0000ff; ">&gt;</span><br />            <span style="color: #008000; ">&lt;!--</span><span style="color: #008000; "> 标识符类型 </span><span style="color: #008000; ">--&gt;</span><br />            <span style="color: #0000ff; ">&lt;</span><span style="color: #800000; ">map </span><span style="color: #ff0000; ">key-type</span><span style="color: #0000ff; ">="lhp.example.context.DBType"</span><span style="color: #0000ff; ">&gt;</span><br />                <span style="color: #0000ff; ">&lt;</span><span style="color: #800000; ">entry </span><span style="color: #ff0000; ">key</span><span style="color: #0000ff; ">="dataSource1"</span><span style="color: #ff0000; "> value-ref</span><span style="color: #0000ff; ">="dataSource1"</span><span style="color: #ff0000; "> </span><span style="color: #0000ff; ">/&gt;</span><br />                <span style="color: #0000ff; ">&lt;</span><span style="color: #800000; ">entry </span><span style="color: #ff0000; ">key</span><span style="color: #0000ff; ">="dataSource2"</span><span style="color: #ff0000; "> value-ref</span><span style="color: #0000ff; ">="dataSource2"</span><span style="color: #ff0000; "> </span><span style="color: #0000ff; ">/&gt;</span><br />            <span style="color: #0000ff; ">&lt;/</span><span style="color: #800000; ">map</span><span style="color: #0000ff; ">&gt;</span><br />        <span style="color: #0000ff; ">&lt;/</span><span style="color: #800000; ">property</span><span style="color: #0000ff; ">&gt;</span><br />        <span style="color: #0000ff; ">&lt;</span><span style="color: #800000; ">property </span><span style="color: #ff0000; ">name</span><span style="color: #0000ff; ">="defaultTargetDataSource"</span><span style="color: #ff0000; "> ref</span><span style="color: #0000ff; ">="dataSource1"</span><span style="color: #ff0000; "> </span><span style="color: #0000ff; ">/&gt;</span><br />    <span style="color: #0000ff; ">&lt;/</span><span style="color: #800000; ">bean</span><span style="color: #0000ff; ">&gt;</span><br />    </pre><span style="font-size: large; "><br /></span><span style="font-size: large; "><span style="color: #000000; font-family: Tahoma; font-style: normal; font-variant: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><span style="font-size: large; ">5.配置sessionFactory</span></span></span><span style="font-size: large; "><span style="font-size: large; "><span style="color: #000000; font-family: Tahoma; font-style: normal; font-variant: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><span style="font-size: large; "></span></span></span></span><pre style="border-top-width: medium; border-right-width: medium; border-bottom-width: medium; border-left-width: medium; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><span style="color: #008000; ">&lt;!--</span><span style="color: #008000; "> mysql sessionFactory </span><span style="color: #008000; ">--&gt;</span><br />    <span style="color: #0000ff; ">&lt;</span><span style="color: #800000; ">bean </span><span style="color: #ff0000; ">id</span><span style="color: #0000ff; ">="mysqlSessionFactory"</span><span style="color: #ff0000; "> class</span><span style="color: #0000ff; ">="org.springframework.orm.hibernate3.LocalSessionFactoryBean"</span><span style="color: #0000ff; ">&gt;</span><br />        <span style="color: #0000ff; ">&lt;</span><span style="color: #800000; ">property </span><span style="color: #ff0000; ">name</span><span style="color: #0000ff; ">="dataSource"</span><span style="color: #ff0000; "> ref</span><span style="color: #0000ff; ">="mysqlDynamicDataSource"</span><span style="color: #ff0000; "> </span><span style="color: #0000ff; ">/&gt;</span><br />        <span style="color: #0000ff; ">&lt;</span><span style="color: #800000; ">property </span><span style="color: #ff0000; ">name</span><span style="color: #0000ff; ">="hibernateProperties"</span><span style="color: #0000ff; ">&gt;</span><br />            <span style="color: #0000ff; ">&lt;</span><span style="color: #800000; ">pro<a href="http://manager.th7.cn/pm/Photoshop/" target="_blank" class="infotextkey" style="text-decoration: none; color: #5a80ee; ">ps</a></span><span style="color: #0000ff; ">&gt;</span><br />                <span style="color: #0000ff; ">&lt;</span><span style="color: #800000; ">prop </span><span style="color: #ff0000; ">key</span><span style="color: #0000ff; ">="hibernate.dialect"</span><span style="color: #0000ff; ">&gt;</span>org.hibernate.dialect.MySQLDialect<span style="color: #0000ff; ">&lt;/</span><span style="color: #800000; ">prop</span><span style="color: #0000ff; ">&gt;</span><br />                <span style="color: #0000ff; ">&lt;</span><span style="color: #800000; ">prop </span><span style="color: #ff0000; ">key</span><span style="color: #0000ff; ">="hibernate.show_sql"</span><span style="color: #0000ff; ">&gt;</span>true<span style="color: #0000ff; ">&lt;/</span><span style="color: #800000; ">prop</span><span style="color: #0000ff; ">&gt;</span><br />                <span style="color: #0000ff; ">&lt;</span><span style="color: #800000; ">prop </span><span style="color: #ff0000; ">key</span><span style="color: #0000ff; ">="hibernate.hbm2ddl.auto"</span><span style="color: #0000ff; ">&gt;</span>update<span style="color: #0000ff; ">&lt;/</span><span style="color: #800000; ">prop</span><span style="color: #0000ff; ">&gt;</span><span style="color: #008000; ">&lt;!--</span><span style="color: #008000; ">create validate </span><span style="color: #008000; ">--&gt;</span><br />                <span style="color: #0000ff; ">&lt;</span><span style="color: #800000; ">prop </span><span style="color: #ff0000; ">key</span><span style="color: #0000ff; ">="hibernate.query.substitutions"</span><span style="color: #0000ff; ">&gt;</span>true 1, false 0<span style="color: #0000ff; ">&lt;/</span><span style="color: #800000; ">prop</span><span style="color: #0000ff; ">&gt;</span><br />            <span style="color: #0000ff; ">&lt;/</span><span style="color: #800000; ">pro<a href="http://manager.th7.cn/pm/Photoshop/" target="_blank" class="infotextkey" style="text-decoration: none; color: #5a80ee; ">ps</a></span><span style="color: #0000ff; ">&gt;</span><br />        <span style="color: #0000ff; ">&lt;/</span><span style="color: #800000; ">property</span><span style="color: #0000ff; ">&gt;</span><br />    <span style="color: #0000ff; ">&lt;/</span><span style="color: #800000; ">bean</span><span style="color: #0000ff; ">&gt;</span><br />    <br />    <span style="color: #008000; ">&lt;!--</span><span style="color: #008000; "> access sessionFactory </span><span style="color: #008000; ">--&gt;</span><br />    <span style="color: #0000ff; ">&lt;</span><span style="color: #800000; ">bean </span><span style="color: #ff0000; ">id</span><span style="color: #0000ff; ">="aceessSessionFactory"</span><span style="color: #ff0000; "> class</span><span style="color: #0000ff; ">="org.springframework.orm.hibernate3.LocalSessionFactoryBean"</span><span style="color: #0000ff; ">&gt;</span><br />        <span style="color: #0000ff; ">&lt;</span><span style="color: #800000; ">property </span><span style="color: #ff0000; ">name</span><span style="color: #0000ff; ">="dataSource"</span><span style="color: #ff0000; "> ref</span><span style="color: #0000ff; ">="dataSource3"</span><span style="color: #ff0000; "> </span><span style="color: #0000ff; ">/&gt;</span><br />        <span style="color: #0000ff; ">&lt;</span><span style="color: #800000; ">property </span><span style="color: #ff0000; ">name</span><span style="color: #0000ff; ">="hibernateProperties"</span><span style="color: #0000ff; ">&gt;</span><br />            <span style="color: #0000ff; ">&lt;</span><span style="color: #800000; ">pro<a href="http://manager.th7.cn/pm/Photoshop/" target="_blank" class="infotextkey" style="text-decoration: none; color: #5a80ee; ">ps</a></span><span style="color: #0000ff; ">&gt;</span><br />                <span style="color: #008000; ">&lt;!--</span><span style="color: #008000; "> access 语法和MSSQL相似 所以用的MSSQL方言，或者可以使用第三方方言 </span><span style="color: #008000; ">--&gt;</span><br />                <span style="color: #0000ff; ">&lt;</span><span style="color: #800000; ">prop </span><span style="color: #ff0000; ">key</span><span style="color: #0000ff; ">="hibernate.dialect"</span><span style="color: #0000ff; ">&gt;</span>org.hibernate.dialect.SQLServerDialect<span style="color: #0000ff; ">&lt;/</span><span style="color: #800000; ">prop</span><span style="color: #0000ff; ">&gt;</span><br />                <span style="color: #0000ff; ">&lt;</span><span style="color: #800000; ">prop </span><span style="color: #ff0000; ">key</span><span style="color: #0000ff; ">="hibernate.jdbc.batch_size"</span><span style="color: #0000ff; ">&gt;</span>30<span style="color: #0000ff; ">&lt;/</span><span style="color: #800000; ">prop</span><span style="color: #0000ff; ">&gt;</span><br />                <span style="color: #0000ff; ">&lt;</span><span style="color: #800000; ">prop </span><span style="color: #ff0000; ">key</span><span style="color: #0000ff; ">="hibernate.jdbc.fetch_size"</span><span style="color: #0000ff; ">&gt;</span>50<span style="color: #0000ff; ">&lt;/</span><span style="color: #800000; ">prop</span><span style="color: #0000ff; ">&gt;</span><br />                <span style="color: #0000ff; ">&lt;</span><span style="color: #800000; ">prop </span><span style="color: #ff0000; ">key</span><span style="color: #0000ff; ">="hibernate.show_sql"</span><span style="color: #0000ff; ">&gt;</span>true<span style="color: #0000ff; ">&lt;/</span><span style="color: #800000; ">prop</span><span style="color: #0000ff; ">&gt;</span><br />                <span style="color: #0000ff; ">&lt;</span><span style="color: #800000; ">prop </span><span style="color: #ff0000; ">key</span><span style="color: #0000ff; ">="hibernate.format_sql"</span><span style="color: #0000ff; ">&gt;</span>false<span style="color: #0000ff; ">&lt;/</span><span style="color: #800000; ">prop</span><span style="color: #0000ff; ">&gt;</span><br />                <span style="color: #0000ff; ">&lt;</span><span style="color: #800000; ">prop </span><span style="color: #ff0000; ">key</span><span style="color: #0000ff; ">="hibernate.hbm2ddl.auto"</span><span style="color: #0000ff; ">&gt;</span>update<span style="color: #0000ff; ">&lt;/</span><span style="color: #800000; ">prop</span><span style="color: #0000ff; ">&gt;</span><span style="color: #008000; ">&lt;!--</span><span style="color: #008000; ">create validate </span><span style="color: #008000; ">--&gt;</span><br />                <span style="color: #0000ff; ">&lt;</span><span style="color: #800000; ">prop </span><span style="color: #ff0000; ">key</span><span style="color: #0000ff; ">="hibernate.query.substitutions"</span><span style="color: #0000ff; ">&gt;</span>true 1, false 0<span style="color: #0000ff; ">&lt;/</span><span style="color: #800000; ">prop</span><span style="color: #0000ff; ">&gt;</span><br />                <span style="color: #0000ff; ">&lt;</span><span style="color: #800000; ">prop </span><span style="color: #ff0000; ">key</span><span style="color: #0000ff; ">="hibernate.cglib.use_reflection_optimizer"</span><span style="color: #0000ff; ">&gt;</span>true<span style="color: #0000ff; ">&lt;/</span><span style="color: #800000; ">prop</span><span style="color: #0000ff; ">&gt;</span><br />                <span style="color: #008000; ">&lt;!--</span><span style="color: #008000; "> &lt;prop key="hibernate.cache.use_second_level_cache"&gt;true&lt;/prop&gt; </span><span style="color: #008000; ">--&gt;</span><br />                <span style="color: #008000; ">&lt;!--</span><span style="color: #008000; "> &lt;prop key="hibernate.cache.provider_class"&gt;org.hibernate.cache.EhCacheProvider&lt;/prop&gt; </span><span style="color: #008000; ">--&gt;</span><br />                <span style="color: #008000; ">&lt;!--</span><span style="color: #008000; "> &lt;prop key="hibernate.cache.use_query_cache"&gt;true&lt;/prop&gt; </span><span style="color: #008000; ">--&gt;</span><br />                <span style="color: #008000; ">&lt;!--</span><span style="color: #008000; "> &lt;prop key="hibernate.generate_statistics"&gt;true&lt;/prop&gt; </span><span style="color: #008000; ">--&gt;</span><br />                <span style="color: #008000; ">&lt;!--</span><span style="color: #008000; "> &lt;prop key="hibernate.cache.provider_configuration_file_resource_path"&gt;classpath:ehcache.xml&lt;/prop&gt; </span><span style="color: #008000; ">--&gt;</span><br />            <span style="color: #0000ff; ">&lt;/</span><span style="color: #800000; ">pro<a href="http://manager.th7.cn/pm/Photoshop/" target="_blank" class="infotextkey" style="text-decoration: none; color: #5a80ee; ">ps</a></span><span style="color: #0000ff; ">&gt;</span><br />        <span style="color: #0000ff; ">&lt;/</span><span style="color: #800000; ">property</span><span style="color: #0000ff; ">&gt;</span><br />    <span style="color: #0000ff; ">&lt;/</span><span style="color: #800000; ">bean</span><span style="color: #0000ff; ">&gt;</span></pre><span style="font-size: large; "><br /></span><span style="font-size: large; "><span style="color: #000000; font-family: Tahoma; font-style: normal; font-variant: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><span style="font-size: large; ">6.测试用例</span></span></span><span style="font-size: large; "><span style="font-size: large; "><span style="color: #000000; font-family: Tahoma; font-style: normal; font-variant: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><span style="font-size: large; "></span></span></span></span><pre style="border-top-width: medium; border-right-width: medium; border-bottom-width: medium; border-left-width: medium; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">package lhp.example.junit;<br /><br />import <span style="color: #0000ff; ">static</span> org.junit.Assert.*;<br />import java.sql.DatabaseMetaData;<br />import lhp.example.context.ContextHolder;<br />import lhp.example.context.DBType;<br />import org.hibernate.Session;<br />import org.hibernate.SessionFactory;<br />import org.junit.Before;<br />import org.junit.Test;<br />import org.springframework.context.ApplicationContext;<br />import org.springframework.context.support.ClassPathXmlApplicationContext;<br /><br /><span style="color: #0000ff; ">public</span> <span style="color: #0000ff; ">class</span> ServiceTest {<br />    <span style="color: #0000ff; ">private</span> ApplicationContext context;<br />    <span style="color: #008000; ">//</span><span style="color: #008000; ">三个数据源的URL</span><span style="color: #008000; "><br /></span>    <span style="color: #0000ff; ">private</span> String dataSource1_URL = <span style="color: #800000; ">"</span><span style="color: #800000; ">jdbc:mysql://127.0.0.1:3306/dec</span><span style="color: #800000; ">"</span>;<br />    <span style="color: #0000ff; ">private</span> String dataSource2_URL = <span style="color: #800000; ">"</span><span style="color: #800000; ">jdbc:mysql://127.0.0.1:3306/lms</span><span style="color: #800000; ">"</span>;<br />    <span style="color: #0000ff; ">private</span> String dataSource3_URL = <span style="color: #800000; ">"</span><span style="color: #800000; ">jdbc:odbc:accessTest</span><span style="color: #800000; ">"</span>;<br />    <span style="color: #0000ff; ">private</span> SessionFactory mysqlSessionFactory;<br />    <span style="color: #0000ff; ">private</span> SessionFactory aceessSessionFactory;<br /><br />    @Before<br />    <span style="color: #0000ff; ">public</span> <span style="color: #0000ff; ">void</span> setUp() throws Exception {<br />        <span style="color: #008000; ">//</span><span style="color: #008000; "> 选择数据源初始化spring</span><span style="color: #008000; "><br /></span>        ContextHolder.setDbType(DBType.dataSource1);<br />        <span style="color: #008000; ">//<br /></span>        String[] xmlFiles = <span style="color: #0000ff; ">new</span> String[] { <br />                <span style="color: #800000; ">"</span><span style="color: #800000; ">applicationContext-dataSource.xml</span><span style="color: #800000; ">"</span>,<br />                <span style="color: #800000; ">"</span><span style="color: #800000; ">applicationContext-hibernate.xml</span><span style="color: #800000; ">"</span>,<br />                <span style="color: #800000; ">"</span><span style="color: #800000; ">applicationContext-spring.xml</span><span style="color: #800000; ">"</span> };<br />        <span style="color: #008000; ">//<br /></span>        context = <span style="color: #0000ff; ">new</span> ClassPathXmlApplicationContext(xmlFiles);<br />        <span style="color: #008000; ">//<br /></span>        mysqlSessionFactory = (SessionFactory) context.getBean(<span style="color: #800000; ">"</span><span style="color: #800000; ">mysqlSessionFactory</span><span style="color: #800000; ">"</span>);<br />        aceessSessionFactory = (SessionFactory) context.getBean(<span style="color: #800000; ">"</span><span style="color: #800000; ">aceessSessionFactory</span><span style="color: #800000; ">"</span>);<br />    }<br /><br />    @SuppressWarnings(<span style="color: #800000; ">"</span><span style="color: #800000; ">deprecation</span><span style="color: #800000; ">"</span>)<br />    @Test<br />    <span style="color: #0000ff; ">public</span> <span style="color: #0000ff; ">void</span> mysqlDataSourceTest() {<br />        <span style="color: #0000ff; ">try</span> {<br /><br />            Session mysqlSession = mysqlSessionFactory.openSession();<br />            <span style="color: #008000; ">//</span><span style="color: #008000; "> 获得数据库元数据</span><span style="color: #008000; "><br /></span>            DatabaseMetaData meatData = mysqlSession.connection().getMetaData();<br /><br />            <span style="color: #008000; ">//</span><span style="color: #008000; "> 默认启动数据源 dataSource1<br />            </span><span style="color: #008000; ">//</span><span style="color: #008000; ">断言当前数据源URL是否是dataSource1的URL</span><span style="color: #008000; "><br /></span>            assertEquals(dataSource1_URL, meatData.getURL());<br /><br />            <span style="color: #008000; ">//</span><span style="color: #008000; "> 切换到数据源 dataSource2</span><span style="color: #008000; "><br /></span>            ContextHolder.setDbType(DBType.dataSource2);<br />            mysqlSession = mysqlSessionFactory.openSession();<br />            meatData = mysqlSession.connection().getMetaData();<br />            <span style="color: #008000; ">//</span><span style="color: #008000; ">断言当前数据源URL是否是dataSource2的URL</span><span style="color: #008000; "><br /></span>            assertEquals(dataSource2_URL, meatData.getURL());<br /><br />        } <span style="color: #0000ff; ">catch</span> (Exception e) {<br />            e.printStackTrace();<br />        }<br />    }<br />    <br />    @SuppressWarnings(<span style="color: #800000; ">"</span><span style="color: #800000; ">deprecation</span><span style="color: #800000; ">"</span>)<br />    @Test<br />    <span style="color: #0000ff; ">public</span> <span style="color: #0000ff; ">void</span> accessDataSourceTest() {<br />        <span style="color: #0000ff; ">try</span> {<br />            Session accessSession = aceessSessionFactory.openSession();<br />            <span style="color: #008000; ">//</span><span style="color: #008000; "> 获得数据库元数据</span><span style="color: #008000; "><br /></span>            DatabaseMetaData meatData = accessSession.connection().getMetaData();<br />            <span style="color: #008000; ">//</span><span style="color: #008000; ">断言当前数据源URL是否是dataSource3的URL</span><span style="color: #008000; "><br /></span>            assertEquals(dataSource3_URL, meatData.getURL());<br /><br /><br />        } <span style="color: #0000ff; ">catch</span> (Exception e) {<br />            e.printStackTrace();<br />        }<br />    }<br /><br />}</pre></span><img src ="http://www.blogjava.net/GavinMiao/aggbug/363685.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/GavinMiao/" target="_blank">GavinMiao</a> 2011-11-14 15:37 <a href="http://www.blogjava.net/GavinMiao/archive/2011/11/14/363685.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>tomcat 调内存</title><link>http://www.blogjava.net/GavinMiao/archive/2011/10/26/362065.html</link><dc:creator>GavinMiao</dc:creator><author>GavinMiao</author><pubDate>Wed, 26 Oct 2011 01:51:00 GMT</pubDate><guid>http://www.blogjava.net/GavinMiao/archive/2011/10/26/362065.html</guid><wfw:comment>http://www.blogjava.net/GavinMiao/comments/362065.html</wfw:comment><comments>http://www.blogjava.net/GavinMiao/archive/2011/10/26/362065.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/GavinMiao/comments/commentRss/362065.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/GavinMiao/services/trackbacks/362065.html</trackback:ping><description><![CDATA[<div>一、java.lang.OutOfMemoryError: PermGen space 错误解决办法：<br /><div><div>修改TOMCAT_HOME/bin/catalina.sh&nbsp;</div><div>在&#8220;echo "Using CATALINA_BASE: $CATALINA_BASE"&#8221;上面加入以下行：&nbsp;</div><div>JAVA_OPTS="-server -XX:PermSize=64M -XX:MaxPermSize=128m&nbsp;<br />二、java.lang.OutOfMemoryError: Java heap space 错误解决办法：<br /><div><div>解决方法：手动设置Heap size&nbsp;</div><div>修改TOMCAT_HOME/bin/catalina.sh&nbsp;</div><div>在&#8220;echo "Using CATALINA_BASE: $CATALINA_BASE"&#8221;上面加入以下行：&nbsp;</div><div>JAVA_OPTS="-server -Xms800m -Xmx800m -XX:MaxNewSize=256m"<br /><br /><div>注意：Heap Size 最大不要超过可用物理内存的80％，一般的要将-Xms和-Xmx选项设置为相同，而-Xmn为1/4的-Xmx值。&nbsp;</div></div></div></div></div></div><img src ="http://www.blogjava.net/GavinMiao/aggbug/362065.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/GavinMiao/" target="_blank">GavinMiao</a> 2011-10-26 09:51 <a href="http://www.blogjava.net/GavinMiao/archive/2011/10/26/362065.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用命令打开windows常用软件</title><link>http://www.blogjava.net/GavinMiao/archive/2011/09/28/359656.html</link><dc:creator>GavinMiao</dc:creator><author>GavinMiao</author><pubDate>Wed, 28 Sep 2011 01:40:00 GMT</pubDate><guid>http://www.blogjava.net/GavinMiao/archive/2011/09/28/359656.html</guid><wfw:comment>http://www.blogjava.net/GavinMiao/comments/359656.html</wfw:comment><comments>http://www.blogjava.net/GavinMiao/archive/2011/09/28/359656.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/GavinMiao/comments/commentRss/359656.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/GavinMiao/services/trackbacks/359656.html</trackback:ping><description><![CDATA[<span class="Apple-style-span" style="font-family: 宋体; line-height: normal; background-color: #ffffff; ">mspaint 画图板&nbsp;<br /></span><span class="Apple-style-span" style="font-family: 宋体; line-height: normal; background-color: #ffffff; ">mstsc 远程桌面连接<br /></span><span class="Apple-style-span" style="font-family: 宋体; line-height: normal; background-color: #ffffff; ">notepad 打开记事本</span><span class="Apple-style-span" style="font-family: 宋体; line-height: normal; background-color: #ffffff; "><br /></span><span class="Apple-style-span" style="font-family: 宋体; line-height: normal; background-color: #ffffff; ">winmsd.exe 查看系统信息<br /></span><span class="Apple-style-span" style="font-family: 宋体; line-height: normal; background-color: #ffffff; ">Sndvol32 音量控制程序<br /></span><span class="Apple-style-span" style="font-family: 宋体; line-height: normal; background-color: #ffffff; ">diskmgmt.msc 磁盘管理器<br /></span><span class="Apple-style-span" style="font-family: 宋体; line-height: normal; background-color: #ffffff; ">cleanmgr 垃圾整理<br /></span><span class="Apple-style-span" style="font-family: 宋体; line-height: normal; background-color: #ffffff; ">conf 启动netmeeting聊天工具<br /></span><span class="Apple-style-span" style="font-family: 宋体; line-height: normal; background-color: #ffffff; ">cleanmgr.exe 磁盘清理&nbsp;<br /></span><span class="Apple-style-span" style="font-family: 宋体; line-height: normal; background-color: #ffffff; ">calc.exe 计算器<br /></span><span class="Apple-style-span" style="font-family: 宋体; line-height: normal; background-color: #ffffff; ">regedt32 注册表编辑器</span><span class="Apple-style-span" style="font-family: 宋体; line-height: normal; background-color: #ffffff; "><br /></span><span class="Apple-style-span" style="font-family: 宋体; line-height: normal; background-color: #ffffff; "><br /></span><img src ="http://www.blogjava.net/GavinMiao/aggbug/359656.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/GavinMiao/" target="_blank">GavinMiao</a> 2011-09-28 09:40 <a href="http://www.blogjava.net/GavinMiao/archive/2011/09/28/359656.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>电脑使用技巧：windows自带定时关机</title><link>http://www.blogjava.net/GavinMiao/archive/2011/09/28/359654.html</link><dc:creator>GavinMiao</dc:creator><author>GavinMiao</author><pubDate>Wed, 28 Sep 2011 01:16:00 GMT</pubDate><guid>http://www.blogjava.net/GavinMiao/archive/2011/09/28/359654.html</guid><wfw:comment>http://www.blogjava.net/GavinMiao/comments/359654.html</wfw:comment><comments>http://www.blogjava.net/GavinMiao/archive/2011/09/28/359654.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/GavinMiao/comments/commentRss/359654.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/GavinMiao/services/trackbacks/359654.html</trackback:ping><description><![CDATA[<span class="Apple-style-span" style="font-family: Arial; background-color: #ffffff; ">转载：<a href="http://bbs.yhcgo.com/read.php?tid-77128.html">http://bbs.yhcgo.com/read.php?tid-77128.html<br /></a><br />1.Windows XP的<a href="http://bbs.yhcgo.com/read.php?tid-77128.html" target="_blank" id="url_2" style="outline-style: none; outline-width: initial; outline-color: initial; text-decoration: none; color: #0070af; "><span style="outline-style: none; outline-width: initial; outline-color: initial; color: #000000; ">定时关机命令</span></a>是由Shutdown.exe程序来控制的，位于Windows\System32文件夹中。<br />如果想让Windows 2000也实现同样的效果，可以把Shutdown.exe复制到<span id="rlt_2" style="outline-style: none; outline-width: initial; outline-color: initial; cursor: pointer; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: #fa891b; "><span id="rlt_6" style="outline-style: none; outline-width: initial; outline-color: initial; cursor: pointer; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: #fa891b; ">系统</span></span>目录下。</span><br />系统根目录：C:\windows\下；<br />2.winows+r打开&#8220;运行&#8221;输入框，然后输入以下命令：<br /><span class="Apple-style-span" style="font-family: Arial; background-color: #ffffff; ">at 22:00 Shutdown -s &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ---&gt;无倒计时框，到<div style="display: inline-block; "></div></span><span class="Apple-style-span" style="font-family: Arial; background-color: #ffffff; ">22:00</span><span class="Apple-style-span" style="font-family: Arial; background-color: #ffffff; ">点提示关机</span><br /><div>shutdown.exe -s -t 3600 --&gt;60分钟后，以<div style="display: inline-block; "></div><span class="Apple-style-span" style="font-family: Arial; background-color: #ffffff; ">倒计时的方式关机<br /></span><span class="Apple-style-span" style="font-family: Arial; background-color: #ffffff; ">Shutdown －s －t 1320 --&gt;<div style="display: inline-block; "></div></span><span class="Apple-style-span" style="font-family: Arial; background-color: #ffffff; ">指定系统在22分钟后自动关闭</span><span class="Apple-style-span" style="font-family: Arial; background-color: #ffffff; "><br />3.<div style="display: inline-block; "></div></span><span class="Apple-style-span" style="font-family: Arial; background-color: #ffffff; ">如果想取消的话，可以在运行中输入&#8220;shutdown -a&#8221;。另外输入&#8220;shutdown -i&#8221;，则可以打开设置自动关机对话框，对自动关机进行设置。&nbsp;<br />4.<div style="display: inline-block; "></div></span><span class="Apple-style-span" style="font-family: Arial; background-color: #ffffff; ">Shutdown.exe的参数:<br /></span><span class="Apple-style-span" style="font-family: Arial; background-color: #ffffff; ">-r：关机并重启<br /></span><span class="Apple-style-span" style="font-family: Arial; background-color: #ffffff; ">-t 时间：设置关机倒计时<br /></span><span class="Apple-style-span" style="font-family: Arial; background-color: #ffffff; ">&#8220;-s&#8221;就表示关闭本地计算机<br /></span><span class="Apple-style-span" style="font-family: Arial; background-color: #ffffff; ">&#8220;-a&#8221;表示取消关机操作<br /></span><span class="Apple-style-span" style="font-family: Arial; background-color: #ffffff; ">-i：显示图形用户界面，但必须是Shutdown的第一个选项</span><span class="Apple-style-span" style="font-family: Arial; background-color: #ffffff; "><br /></span></div><img src ="http://www.blogjava.net/GavinMiao/aggbug/359654.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/GavinMiao/" target="_blank">GavinMiao</a> 2011-09-28 09:16 <a href="http://www.blogjava.net/GavinMiao/archive/2011/09/28/359654.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>birt初认识</title><link>http://www.blogjava.net/GavinMiao/archive/2011/09/22/359209.html</link><dc:creator>GavinMiao</dc:creator><author>GavinMiao</author><pubDate>Wed, 21 Sep 2011 16:01:00 GMT</pubDate><guid>http://www.blogjava.net/GavinMiao/archive/2011/09/22/359209.html</guid><wfw:comment>http://www.blogjava.net/GavinMiao/comments/359209.html</wfw:comment><comments>http://www.blogjava.net/GavinMiao/archive/2011/09/22/359209.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/GavinMiao/comments/commentRss/359209.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/GavinMiao/services/trackbacks/359209.html</trackback:ping><description><![CDATA[官网：<a href="http://www.eclipse.org/birt/phoenix/">http://www.eclipse.org/birt/phoenix/</a>&nbsp;<br />1.<div style="display: inline-block; "></div><span class="Apple-style-span" style="font-family: Arial, sans-serif; font-size: 12px; line-height: 16px; background-color: #ffffff; ">BIRT是一个基于Eclipse的开源Web应用程序&nbsp;<br />2.主要用在基于Java和J2EE的web应用程序上；<br />3.使用birt可以实现：列表、图标、混合报表、交叉表（二维表）；<br />4.安装：<br /><div style="display: inline-block; "><div>本人用的时MyEclipse6.6，对应的Eclipse3.3.；</div></div></span><span class="Apple-style-span" style="color: #333333; font-family: Arial; line-height: 26px; background-color: #ffffff; ">&nbsp; &nbsp; <br />如果使用的是eclipse3.3版本，你应该用birt-report-framework-2_2_0.zip，<br />地址：http://archive.eclipse.org/birt/downloads/build.php?build=R-R1-2_2_0-200706261010/birt-report-framework-2_2_0.zip&nbsp;<br />&nbsp;<div style="display: inline-block; "><div><a href="http://archive.eclipse.org/birt/downloads/build.php?build=R-R1-2_2_0-200706261010/birt-runtime-2_2_0.zip">http://archive.eclipse.org/birt/downloads/build.php?build=R-R1-2_2_0-200706261010/birt-runtime-2_2_0.zip</a></div></div><br />如果使用的是eclipse3.4，你应该用birt-report-framework-2_3_0.zip。<br />5.参考文章地址：<br /><div><a href="http://www.docin.com/p-177563530.html">http://www.docin.com/p-177563530.html</a></div><div><a href="http://wenku.baidu.com/view/e9414713a216147917112885.html">http://wenku.baidu.com/view/e9414713a216147917112885.html&nbsp;<br /></a><div><a href="http://wenku.baidu.com/view/8f996c553c1ec5da50e27093.html">http://wenku.baidu.com/view/8f996c553c1ec5da50e27093.html<br /></a><div><a href="http://www.blogjava.net/amigoxie/archive/2009/05/03/268684.html">http://www.blogjava.net/amigoxie/archive/2009/05/03/268684.html</a></div><a href="http://wenku.baidu.com/view/e9414713a216147917112885.html"><a href="http://wenku.baidu.com/view/8f996c553c1ec5da50e27093.html"></a></a></div><a href="http://wenku.baidu.com/view/e9414713a216147917112885.html"></a></div></span><img src ="http://www.blogjava.net/GavinMiao/aggbug/359209.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/GavinMiao/" target="_blank">GavinMiao</a> 2011-09-22 00:01 <a href="http://www.blogjava.net/GavinMiao/archive/2011/09/22/359209.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>select count(*)时，报错java.lang.ClassCastException: java.lang.Long</title><link>http://www.blogjava.net/GavinMiao/archive/2011/09/15/358708.html</link><dc:creator>GavinMiao</dc:creator><author>GavinMiao</author><pubDate>Thu, 15 Sep 2011 07:12:00 GMT</pubDate><guid>http://www.blogjava.net/GavinMiao/archive/2011/09/15/358708.html</guid><wfw:comment>http://www.blogjava.net/GavinMiao/comments/358708.html</wfw:comment><comments>http://www.blogjava.net/GavinMiao/archive/2011/09/15/358708.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/GavinMiao/comments/commentRss/358708.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/GavinMiao/services/trackbacks/358708.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;只有注册用户登录后才能阅读该文。<a href='http://www.blogjava.net/GavinMiao/archive/2011/09/15/358708.html'>阅读全文</a><img src ="http://www.blogjava.net/GavinMiao/aggbug/358708.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/GavinMiao/" target="_blank">GavinMiao</a> 2011-09-15 15:12 <a href="http://www.blogjava.net/GavinMiao/archive/2011/09/15/358708.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>各数据库数据类型比较</title><link>http://www.blogjava.net/GavinMiao/archive/2011/09/06/358081.html</link><dc:creator>GavinMiao</dc:creator><author>GavinMiao</author><pubDate>Tue, 06 Sep 2011 05:01:00 GMT</pubDate><guid>http://www.blogjava.net/GavinMiao/archive/2011/09/06/358081.html</guid><wfw:comment>http://www.blogjava.net/GavinMiao/comments/358081.html</wfw:comment><comments>http://www.blogjava.net/GavinMiao/archive/2011/09/06/358081.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/GavinMiao/comments/commentRss/358081.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/GavinMiao/services/trackbacks/358081.html</trackback:ping><description><![CDATA[<img src="http://www.blogjava.net/images/blogjava_net/gavinmiao/database-compare.png" width="800" height="1282" alt="" /><img src ="http://www.blogjava.net/GavinMiao/aggbug/358081.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/GavinMiao/" target="_blank">GavinMiao</a> 2011-09-06 13:01 <a href="http://www.blogjava.net/GavinMiao/archive/2011/09/06/358081.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>UE设置java环境</title><link>http://www.blogjava.net/GavinMiao/archive/2011/09/05/358008.html</link><dc:creator>GavinMiao</dc:creator><author>GavinMiao</author><pubDate>Mon, 05 Sep 2011 09:29:00 GMT</pubDate><guid>http://www.blogjava.net/GavinMiao/archive/2011/09/05/358008.html</guid><wfw:comment>http://www.blogjava.net/GavinMiao/comments/358008.html</wfw:comment><comments>http://www.blogjava.net/GavinMiao/archive/2011/09/05/358008.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/GavinMiao/comments/commentRss/358008.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/GavinMiao/services/trackbacks/358008.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;只有注册用户登录后才能阅读该文。<a href='http://www.blogjava.net/GavinMiao/archive/2011/09/05/358008.html'>阅读全文</a><img src ="http://www.blogjava.net/GavinMiao/aggbug/358008.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/GavinMiao/" target="_blank">GavinMiao</a> 2011-09-05 17:29 <a href="http://www.blogjava.net/GavinMiao/archive/2011/09/05/358008.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ssh与设计模式</title><link>http://www.blogjava.net/GavinMiao/archive/2011/08/29/357477.html</link><dc:creator>GavinMiao</dc:creator><author>GavinMiao</author><pubDate>Mon, 29 Aug 2011 02:42:00 GMT</pubDate><guid>http://www.blogjava.net/GavinMiao/archive/2011/08/29/357477.html</guid><wfw:comment>http://www.blogjava.net/GavinMiao/comments/357477.html</wfw:comment><comments>http://www.blogjava.net/GavinMiao/archive/2011/08/29/357477.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/GavinMiao/comments/commentRss/357477.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/GavinMiao/services/trackbacks/357477.html</trackback:ping><description><![CDATA[参考文章来源：<br /><div><a href="http://www.docin.com/p-87219490.html">http://www.docin.com/p-87219490.html</a>&nbsp;&nbsp;<br /><a href="http://kaixuan489577823.iteye.com/blog/662864">http://kaixuan489577823.iteye.com/blog/662864</a>&nbsp;&nbsp;<br /><div></div>一、struts1主要用到的设计模式：<br />1.Straegy策略模式<br />2.singletom单例模式<br />3.command命令模式<br />4.Facade外观模式<br />5.composite view组成模式<br />6.decorator装饰模式<br />7.MVC模式<br />二、spring主要用到的设计模式：<br />1.简单工厂即静态工厂模式Static Factory Method<br />2.工厂模式Factory Method<br />3.单例模式Singleton<br />4.适配器Adapter<br />5.装饰器Decorator<br />6.代理Proxy<br />7.观察者Observer<br />8.策略Strategy<br />9.模板方法Template Method<br />三、struts2主要用到的模式：<br />1.MVC模式<br />2.command命令模式<br />3.代理Proxy<br />4.适配器Adapter<br />5.单例模式Singleton<br />6.&nbsp;<span class="Apple-style-span" style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; ">职责链模式 Chain of Responsibility&nbsp;</span><br /><br /><div><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; ">GoF设计模式的分类：&nbsp;<br />根据目的准则分类：&nbsp;<br />1． 创建型：creational 与对象的创建有关。&nbsp;<br />2． 结构型：Structural 处理类或对象之间的组合。&nbsp;<br />3． 行为型：behavioral 描述类或对象如何交互及如何分配职责。<br /><br /><br />创建型模式<br /><br />1.抽象工厂模式 AbstractFactory&nbsp;<br />2.建造者模式 Builder&nbsp;<br />3.工厂方法模式 Factory Method&nbsp;<br />4.原型模式 Prototype&nbsp;<br />5.单例模式 Singleton&nbsp;<br /><br />结构型模式&nbsp;<br /><br />1.适配器模式 Adapter&nbsp;<br />2.桥接模式 Bridge&nbsp;<br />3.组合模式 Composite&nbsp;<br />4.装饰模式 Decorator&nbsp;<br />5.外观模式 Facade&nbsp;<br />6.享元模式 Flyweight&nbsp;<br />7.代理模式 Proxy&nbsp;<br /><br />行为模式&nbsp;<br /><br />1.职责链模式 Chain of Responsibility&nbsp;<br />2.命令模式 Command&nbsp;<br />3.解释器模式 Interpreter&nbsp;<br />4.迭代器模式 Iterator&nbsp;<br />5.中介者模式 Mediator&nbsp;<br />6.备忘录模式 Memento&nbsp;<br />7.观察者模式 Observer&nbsp;<br />8.状态模式 State&nbsp;<br />9.策略模式 Strategy&nbsp;<br />10.模板方法模式 Template Method&nbsp;<br />11.访问者模式 Visitor</span></div></div><img src ="http://www.blogjava.net/GavinMiao/aggbug/357477.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/GavinMiao/" target="_blank">GavinMiao</a> 2011-08-29 10:42 <a href="http://www.blogjava.net/GavinMiao/archive/2011/08/29/357477.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>瞎聊</title><link>http://www.blogjava.net/GavinMiao/archive/2011/08/23/357151.html</link><dc:creator>GavinMiao</dc:creator><author>GavinMiao</author><pubDate>Tue, 23 Aug 2011 15:26:00 GMT</pubDate><guid>http://www.blogjava.net/GavinMiao/archive/2011/08/23/357151.html</guid><wfw:comment>http://www.blogjava.net/GavinMiao/comments/357151.html</wfw:comment><comments>http://www.blogjava.net/GavinMiao/archive/2011/08/23/357151.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/GavinMiao/comments/commentRss/357151.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/GavinMiao/services/trackbacks/357151.html</trackback:ping><description><![CDATA[<span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">事务具有四个特征：原子性（</span> <span lang="EN-US">Atomicity</span> <span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">）、一致性（</span> <span lang="EN-US">Consistency</span> <span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">）、隔离性（</span> <span lang="EN-US">Isolation</span> <span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">）和持久性（</span> <span lang="EN-US">Durability</span> <span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">）。这四个特性简称为</span> <span lang="EN-US">ACID</span> <span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">特性<br />事务是一组原子操作单元<br />从数据库角度说，就是一组SQL指令，<br />要么全部执行成功，要么撤销不执行。<br /><br />使用单态模式的目标是为了控制对象的创建，单态模式经常使用在控制资源的访问上。例如数据库连接或Socket连接等。单态模式可以控制在某个时刻只有一个线程访问资源。<br /><br /></span><img src ="http://www.blogjava.net/GavinMiao/aggbug/357151.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/GavinMiao/" target="_blank">GavinMiao</a> 2011-08-23 23:26 <a href="http://www.blogjava.net/GavinMiao/archive/2011/08/23/357151.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>