﻿<?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-Java,永远不敢言精通-随笔分类-ConnectionPool</title><link>http://www.blogjava.net/crazycoding/category/43825.html</link><description>God helps those who help themselves. </description><language>zh-cn</language><lastBuildDate>Mon, 01 Feb 2010 19:45:27 GMT</lastBuildDate><pubDate>Mon, 01 Feb 2010 19:45:27 GMT</pubDate><ttl>60</ttl><item><title>tomcat 数据库连接池的配置（mysql）</title><link>http://www.blogjava.net/crazycoding/archive/2010/02/01/311542.html</link><dc:creator>Ying-er</dc:creator><author>Ying-er</author><pubDate>Mon, 01 Feb 2010 11:55:00 GMT</pubDate><guid>http://www.blogjava.net/crazycoding/archive/2010/02/01/311542.html</guid><wfw:comment>http://www.blogjava.net/crazycoding/comments/311542.html</wfw:comment><comments>http://www.blogjava.net/crazycoding/archive/2010/02/01/311542.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/crazycoding/comments/commentRss/311542.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/crazycoding/services/trackbacks/311542.html</trackback:ping><description><![CDATA[<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="ProgId" content="Word.Document" />
<meta name="Generator" content="Microsoft Word 11" />
<meta name="Originator" content="Microsoft Word 11" />
<link rel="File-List" href="file:///C:%5CDOCUME%7E1%5Csamsung%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml" /><!--[if gte mso 9]><xml>
Normal
0
7.8 磅
0
2
false
false
false
MicrosoftInternetExplorer4
</xml><![endif]--><!--[if gte mso 9]><![endif]--><style>
<!--
/* Font Definitions */
@font-face
{font-family:宋体;
panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
{font-family:""@宋体";
panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-parent:"";
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.5pt;
font-family:"Times New Roman";}
/* Page Definitions */
@page
{}
@page Section1
{size:612.0pt 792.0pt;
margin:72.0pt 90.0pt 72.0pt 90.0pt;}
div.Section1
{page:Section1;}
-->
</style><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{
mso-style-parent:"";
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
</style>
<![endif]-->
<p><strong><em><span style="background: aqua none repeat scroll 0% 0%; font-size: 15pt; font-family: 宋体; color: blue; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;">①</span></em></strong><strong><em><span style="background: aqua none repeat scroll 0% 0%; font-size: 15pt; font-family: 宋体; color: blue; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;">载入驱动</span></em></strong></p>
<p><strong><em><span style="font-size: 36pt; font-family: 宋体; color: red;">注意</span></em></strong><span style="font-family: 宋体;">：要将驱动载入到</span>tomcat<span style="font-family: 宋体;">的</span>lib<span style="font-family: 宋体;">目录下，</span></p>
<p>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="ProgId" content="Word.Document" />
<meta name="Generator" content="Microsoft Word 11" />
<meta name="Originator" content="Microsoft Word 11" />
<link rel="File-List" href="file:///C:%5CDOCUME%7E1%5Csamsung%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml" /><!--[if gte mso 9]><xml>
Normal
0
7.8 磅
0
2
false
false
false
MicrosoftInternetExplorer4
</xml><![endif]--><!--[if gte mso 9]><![endif]--><style>
<!--
/* Font Definitions */
@font-face
{font-family:宋体;
panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
{font-family:""@宋体";
panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-parent:"";
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.5pt;
font-family:"Times New Roman";}
/* Page Definitions */
@page
{}
@page Section1
{size:612.0pt 792.0pt;
margin:72.0pt 90.0pt 72.0pt 90.0pt;}
div.Section1
{page:Section1;}
-->
</style><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{
mso-style-parent:"";
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
</style>
<![endif]-->
<p><strong><em><span style="background: aqua none repeat scroll 0% 0%; font-size: 16pt; font-family: 宋体; color: blue; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;">②在该</span></em></strong><strong><em><span style="background: aqua none repeat scroll 0% 0%; font-size: 16pt; color: blue; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;">web</span></em></strong><strong><em><span style="background: aqua none repeat scroll 0% 0%; font-size: 16pt; font-family: 宋体; color: blue; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;">工程中修改该工程的</span></em></strong><strong><em><span style="background: aqua none repeat scroll 0% 0%; font-size: 16pt; color: blue; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;">web.xml</span></em></strong><strong><em><span style="background: aqua none repeat scroll 0% 0%; font-size: 16pt; font-family: 宋体; color: blue; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;">文件</span></em></strong></p>
<p>增加resource-ref结点</p>
</p>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #008080;">&nbsp;1</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;2</span>&nbsp;<span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;datasource&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;3</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">resource-ref</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;4</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">description</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">MySql&nbsp;Datasource&nbsp;example</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">description</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;5</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">res-ref-name</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">jdbc/mysqlEmailPoolTest</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">res-ref-name</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;6</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">res-type</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">javax.sql.DataSource</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">res-type</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;7</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">res-auth</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">Container</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">res-auth</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;8</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">resource-ref</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;9</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">10</span>&nbsp;</div>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="ProgId" content="Word.Document" />
<meta name="Generator" content="Microsoft Word 11" />
<meta name="Originator" content="Microsoft Word 11" />
<link rel="File-List" href="file:///C:%5CDOCUME%7E1%5Csamsung%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml" /><!--[if gte mso 9]><xml>
Normal
0
7.8 磅
0
2
false
false
false
MicrosoftInternetExplorer4
</xml><![endif]--><!--[if gte mso 9]><![endif]--><style>
<!--
/* Font Definitions */
@font-face
{font-family:宋体;
panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
{font-family:""@宋体";
panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-parent:"";
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.5pt;
font-family:"Times New Roman";}
/* Page Definitions */
@page
{}
@page Section1
{size:612.0pt 792.0pt;
margin:72.0pt 90.0pt 72.0pt 90.0pt;}
div.Section1
{page:Section1;}
-->
</style><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{
mso-style-parent:"";
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
</style>
<![endif]--><span style="font-size: 10.5pt; font-family: 宋体;"><br />
完整</span><span style="font-size: 10.5pt; font-family: &quot;Times New Roman&quot;;">web.xml文件：<br />
</span>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #008080;">&nbsp;1</span>&nbsp;<span style="color: #0000ff;">&lt;?</span><span style="color: #ff00ff;">xml&nbsp;version="1.0"&nbsp;encoding="UTF-8"</span><span style="color: #0000ff;">?&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;2</span>&nbsp;<span style="color: #0000ff;">&lt;</span><span style="color: #800000;">web-app&nbsp;</span><span style="color: #ff0000;">version</span><span style="color: #0000ff;">="2.4"</span><span style="color: #ff0000;">&nbsp;xmlns</span><span style="color: #0000ff;">="http://java.sun.com/xml/ns/j2ee"</span><span style="color: #ff0000;"><br />
</span><span style="color: #008080;">&nbsp;3</span>&nbsp;<span style="color: #ff0000;">&nbsp;&nbsp;&nbsp;&nbsp;xmlns:xsi</span><span style="color: #0000ff;">="http://www.w3.org/2001/XMLSchema-instance"</span><span style="color: #ff0000;"><br />
</span><span style="color: #008080;">&nbsp;4</span>&nbsp;<span style="color: #ff0000;">&nbsp;&nbsp;&nbsp;&nbsp;xsi:schemaLocation</span><span style="color: #0000ff;">="http://java.sun.com/xml/ns/j2ee&nbsp;<br />
</span><span style="color: #008080;">&nbsp;5</span>&nbsp;<span style="color: #0000ff;">&nbsp;&nbsp;&nbsp;&nbsp;http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;6</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">&nbsp;7</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;首页&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;8</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">welcome-file-list</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;9</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">welcome-file</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">/web/page/index.jsp</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">welcome-file</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">10</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">welcome-file-list</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">11</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">12</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;datasource&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">13</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">resource-ref</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">14</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">description</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">MySql&nbsp;Datasource&nbsp;example</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">description</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">15</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">res-ref-name</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">jdbc/mysqlEmailPoolTest</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">res-ref-name</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">16</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">res-type</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">javax.sql.DataSource</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">res-type</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">17</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">res-auth</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">Container</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">res-auth</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">18</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">resource-ref</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">19</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">20</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">21</span>&nbsp;<span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">web-app</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">22</span>&nbsp;</div>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="ProgId" content="Word.Document" />
<meta name="Generator" content="Microsoft Word 11" />
<meta name="Originator" content="Microsoft Word 11" />
<link rel="File-List" href="file:///C:%5CDOCUME%7E1%5Csamsung%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml" /><!--[if gte mso 9]><xml>
Normal
0
7.8 磅
0
2
false
false
false
MicrosoftInternetExplorer4
</xml><![endif]--><!--[if gte mso 9]><![endif]--><style>
<!--
/* Font Definitions */
@font-face
{font-family:宋体;
panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
{font-family:""@宋体";
panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-parent:"";
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.5pt;
font-family:"Times New Roman";}
/* Page Definitions */
@page
{}
@page Section1
{size:612.0pt 792.0pt;
margin:72.0pt 90.0pt 72.0pt 90.0pt;}
div.Section1
{page:Section1;}
-->
</style><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{
mso-style-parent:"";
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
</style>
<![endif]-->
<p><strong><em><span style="background: aqua none repeat scroll 0% 0%; font-size: 16pt; font-family: 宋体; color: blue; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;">③</span></em></strong><strong><em><span style="background: aqua none repeat scroll 0% 0%; font-size: 16pt; font-family: 宋体; color: blue; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;">修改</span></em></strong><strong><em><span style="background: aqua none repeat scroll 0% 0%; font-size: 16pt; color: blue; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;">tomcat conf</span></em></strong><strong><em><span style="background: aqua none repeat scroll 0% 0%; font-size: 16pt; font-family: 宋体; color: blue; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;">目录下的</span></em></strong><strong><em><span style="background: aqua none repeat scroll 0% 0%; font-size: 16pt; color: blue; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;">server.xml</span></em></strong><strong><em><span style="background: aqua none repeat scroll 0% 0%; font-size: 16pt; font-family: 宋体; color: blue; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;">文件</span></em></strong></p>
<p><span style="font-family: 宋体;">将该工程的结点打开</span></p>
<p><span style="font-family: 宋体;">修改为：</span></p>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">Context&nbsp;</span><span style="color: #ff0000;">path</span><span style="color: #0000ff;">="/webDBConnPool"</span><span style="color: #ff0000;">&nbsp;reloadable</span><span style="color: #0000ff;">="true"</span><span style="color: #ff0000;">&nbsp;docBase</span><span style="color: #0000ff;">="D:"</span><span style="color: #ff0000;">workspace"webDBConnPool"&nbsp;workDir</span><span style="color: #0000ff;">="D:"</span><span style="color: #ff0000;">workspace"webDBConnPool"work"&nbsp;</span><span style="color: #0000ff;">&gt;</span></div>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">Resource&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="jdbc/</span><strong><span style="background: yellow none repeat scroll 0% 0%; color: red; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;">mysqlEmailPoolTest</span></strong><span style="color: #000000;">"&nbsp;auth="Container"&nbsp;type="javax.sql.DataSource"</span></div>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">&nbsp;maxActive="100"&nbsp;maxIdle="30"&nbsp;maxWait="10000"<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;username="root"&nbsp;password="1234"&nbsp;driverClassName="org.gjt.mm.mysql.Driver"<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;url="jdbc:mysql://127.0.0.1/test"/&gt;<br />
<br />
</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">Context</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span></div>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="ProgId" content="Word.Document" />
<meta name="Generator" content="Microsoft Word 11" />
<meta name="Originator" content="Microsoft Word 11" />
<link rel="File-List" href="file:///C:%5CDOCUME%7E1%5Csamsung%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml" /><!--[if gte mso 9]><xml>
Normal
0
7.8 磅
0
2
false
false
false
MicrosoftInternetExplorer4
</xml><![endif]--><!--[if gte mso 9]><![endif]--><style>
<!--
/* Font Definitions */
@font-face
{font-family:宋体;
panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
{font-family:""@宋体";
panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-parent:"";
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.5pt;
font-family:"Times New Roman";}
/* Page Definitions */
@page
{}
@page Section1
{size:612.0pt 792.0pt;
margin:72.0pt 90.0pt 72.0pt 90.0pt;}
div.Section1
{page:Section1;}
-->
</style><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{
mso-style-parent:"";
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
</style>
<![endif]-->
<p><strong><em><span style="background: aqua none repeat scroll 0% 0%; font-size: 16pt; font-family: 宋体; color: blue; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;">④</span></em></strong><strong><em><span style="background: aqua none repeat scroll 0% 0%; font-size: 16pt; font-family: 宋体; color: blue; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;">指定数据源：</span></em></strong></p>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #008080;">&nbsp;1</span>&nbsp;<span style="color: #0000ff;">package</span><span style="color: #000000;">&nbsp;com.linying.util;<br />
</span><span style="color: #008080;">&nbsp;2</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;3</span>&nbsp;<span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;java.sql.Connection;<br />
</span><span style="color: #008080;">&nbsp;4</span>&nbsp;<span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;java.sql.SQLException;<br />
</span><span style="color: #008080;">&nbsp;5</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;6</span>&nbsp;<span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;javax.naming.InitialContext;<br />
</span><span style="color: #008080;">&nbsp;7</span>&nbsp;<span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;javax.sql.DataSource;<br />
</span><span style="color: #008080;">&nbsp;8</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;9</span>&nbsp;<span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">class</span><span style="color: #000000;">&nbsp;DBConnPool{<br />
</span><span style="color: #008080;">10</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;private&nbsp;static&nbsp;Logger&nbsp;logger&nbsp;=&nbsp;Logger.getLogger(DBConnPool.class);</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">11</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">12</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">/**</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">13</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;从Tomcat连接池中取得连接,记得要关闭<br />
</span><span style="color: #008080;">14</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">15</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;Connection&nbsp;getConnection()&nbsp;</span><span style="color: #0000ff;">throws</span><span style="color: #000000;">&nbsp;SQLException{<br />
</span><span style="color: #008080;">16</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;上下文对象</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">17</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InitialContext&nbsp;ctx;<br />
</span><span style="color: #008080;">18</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">19</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;数据源对象</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">20</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataSource&nbsp;ds;<br />
</span><span style="color: #008080;">21</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">22</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">try</span><span style="color: #000000;">&nbsp;{<br />
</span><span style="color: #008080;">23</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ctx&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;InitialContext();<br />
</span><span style="color: #008080;">24</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ds&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;(DataSource)ctx.lookup(</span><span style="color: #000000;">"</span><span style="color: #000000;">java:comp/env/jdbc/mysqlEmailPoolTest</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
</span><span style="color: #008080;">25</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;ds.getConnection();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">26</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span style="color: #0000ff;">catch</span><span style="color: #000000;">&nbsp;(Exception&nbsp;e){<br />
</span><span style="color: #008080;">27</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />
</span><span style="color: #008080;">28</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">logger.fatal("数据源初始化失败.原因是"+e.getMessage());</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">29</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">throw</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;SQLException(</span><span style="color: #000000;">"</span><span style="color: #000000;">数据源初始化失败.原因是</span><span style="color: #000000;">"</span><span style="color: #000000;">+</span><span style="color: #000000;">e.getMessage());<br />
</span><span style="color: #008080;">30</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">31</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080;">32</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080;">33</span>&nbsp;</div>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="ProgId" content="Word.Document" />
<meta name="Generator" content="Microsoft Word 11" />
<meta name="Originator" content="Microsoft Word 11" />
<link rel="File-List" href="file:///C:%5CDOCUME%7E1%5Csamsung%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml" /><!--[if gte mso 9]><xml>
Normal
0
7.8 磅
0
2
false
false
false
MicrosoftInternetExplorer4
</xml><![endif]--><!--[if gte mso 9]><![endif]--><style>
<!--
/* Font Definitions */
@font-face
{font-family:宋体;
panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
{font-family:""@宋体";
panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-parent:"";
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.5pt;
font-family:"Times New Roman";}
/* Page Definitions */
@page
{}
@page Section1
{size:612.0pt 792.0pt;
margin:72.0pt 90.0pt 72.0pt 90.0pt;}
div.Section1
{page:Section1;}
-->
</style><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{
mso-style-parent:"";
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
</style>
<![endif]-->
<p><strong><em><span style="font-size: 42pt; font-family: 宋体; color: red;">注意：</span></em></strong></p>
<p><span style="font-family: 宋体;">红色加粗，黄底的（</span><strong><span style="background: yellow none repeat scroll 0% 0%; font-size: 10pt; font-family: &quot;Courier New&quot;; color: red; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;">mysqlEmailPoolTest</span></strong><span style="font-family: 宋体;">）三处名字自拟但要保证一致</span></p>
<p>
</p>
<img src ="http://www.blogjava.net/crazycoding/aggbug/311542.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/crazycoding/" target="_blank">Ying-er</a> 2010-02-01 19:55 <a href="http://www.blogjava.net/crazycoding/archive/2010/02/01/311542.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>DBCP</title><link>http://www.blogjava.net/crazycoding/archive/2010/02/01/311541.html</link><dc:creator>Ying-er</dc:creator><author>Ying-er</author><pubDate>Mon, 01 Feb 2010 11:44:00 GMT</pubDate><guid>http://www.blogjava.net/crazycoding/archive/2010/02/01/311541.html</guid><wfw:comment>http://www.blogjava.net/crazycoding/comments/311541.html</wfw:comment><comments>http://www.blogjava.net/crazycoding/archive/2010/02/01/311541.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/crazycoding/comments/commentRss/311541.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/crazycoding/services/trackbacks/311541.html</trackback:ping><description><![CDATA[<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="ProgId" content="Word.Document" />
<meta name="Generator" content="Microsoft Word 11" />
<meta name="Originator" content="Microsoft Word 11" />
<link rel="File-List" href="file:///C:%5CDOCUME%7E1%5Csamsung%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml" /><!--[if gte mso 9]><xml>
Normal
0
7.8 磅
0
2
false
false
false
MicrosoftInternetExplorer4
</xml><![endif]--><!--[if gte mso 9]><![endif]--><style>
<!--
/* Font Definitions */
@font-face
{font-family:宋体;
panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
{font-family:""@宋体";
panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-parent:"";
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.5pt;
font-family:"Times New Roman";}
/* Page Definitions */
@page
{}
@page Section1
{size:612.0pt 792.0pt;
margin:72.0pt 90.0pt 72.0pt 90.0pt;}
div.Section1
{page:Section1;}
-->
</style><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{
mso-style-parent:"";
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
</style>
<![endif]-->
<p><em><span style="font-family: 宋体; color: fuchsia;">简要说明：</span><span style="color: fuchsia;">DBCP——开源组件，</span></em><em><span style="font-family: 宋体; color: fuchsia;">将原</span><span style="color: fuchsia;">Conection</span></em><em><span style="font-family: 宋体; color: fuchsia;">包裹了起来</span></em></p>
<p>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="ProgId" content="Word.Document" />
<meta name="Generator" content="Microsoft Word 11" />
<meta name="Originator" content="Microsoft Word 11" />
<link rel="File-List" href="file:///C:%5CDOCUME%7E1%5Csamsung%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml" /><!--[if gte mso 9]><xml>
Normal
0
7.8 磅
0
2
false
false
false
MicrosoftInternetExplorer4
</xml><![endif]--><!--[if gte mso 9]><![endif]--><style>
<!--
/* Font Definitions */
@font-face
{font-family:宋体;
panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
{font-family:""@宋体";
panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-parent:"";
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.5pt;
font-family:"Times New Roman";}
/* Page Definitions */
@page
{}
@page Section1
{size:612.0pt 792.0pt;
margin:72.0pt 90.0pt 72.0pt 90.0pt;}
div.Section1
{page:Section1;}
/* List Definitions */
@list l0
{}
@list l0:level1
{
margin-left:39.0pt;
text-indent:-18.0pt;}
ol
{margin-bottom:0cm;}
ul
{margin-bottom:0cm;}
-->
</style><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{
mso-style-parent:"";
font-size:10.0pt;
font-family:"Times New Roman";}
</style>
<![endif]-->
</p>
<p style="margin-left: 39pt; text-indent: -18pt;"><strong><span style="color: red;"><span>1.<span style="font-family: &quot;Times New Roman&quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span></strong><strong><span style="font-family: 宋体; color: red;">需要用到三个</span><span style="color: red;">Jar</span></strong><strong><span style="font-family: 宋体; color: red;">包：</span></strong></p>
<p style="margin-left: 39pt; text-indent: -18pt;"><strong><span style="font-family: 宋体; color: red;"><a target="_blank" title="commons-collections-3.2.1.jar" style="color: #2708ff;" href="http://commons.apache.org/collections/">commons-collections-3.2.1.jar</a></span></strong></p>
<p style="margin-left: 39pt; text-indent: -18pt;"><strong><span style="font-family: 宋体; color: red;"><a title="commons-dbcp-1.2.2.jar" style="color: #0040ff;" href="http://commons.apache.org/dbcp/">commons-dbcp-1.2.2.jar</a></span></strong></p>
<p style="margin-left: 39pt; text-indent: -18pt;"><strong><span style="font-family: 宋体; color: red;"><a title="commons-pool-1.5.2.jar" href="http://commons.apache.org/pool/">commons-pool-1.5.2.jar</a></span></strong></p>
<p style="margin-left: 39pt; text-indent: -18pt;"><br />
<strong></strong></p>
<p style="margin-left: 39pt; text-indent: -18pt;">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="ProgId" content="Word.Document" />
<meta name="Generator" content="Microsoft Word 11" />
<meta name="Originator" content="Microsoft Word 11" />
<link rel="File-List" href="file:///C:%5CDOCUME%7E1%5Csamsung%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml" /><!--[if gte mso 9]><xml>
Normal
0
7.8 磅
0
2
false
false
false
MicrosoftInternetExplorer4
</xml><![endif]--><!--[if gte mso 9]><![endif]--><style>
<!--
/* Font Definitions */
@font-face
{font-family:宋体;
panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
{font-family:""@宋体";
panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-parent:"";
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.5pt;
font-family:"Times New Roman";}
/* Page Definitions */
@page
{}
@page Section1
{size:612.0pt 792.0pt;
margin:72.0pt 90.0pt 72.0pt 90.0pt;}
div.Section1
{page:Section1;}
-->
</style><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{
mso-style-parent:"";
font-size:10.0pt;
font-family:"Times New Roman";}
</style>
<![endif]-->
</p>
<p><strong><span style="color: red;">2. </span></strong><strong><span style="font-family: 宋体; color: red;">编写</span><span style="color: red;">dbcpconfig.properties</span></strong><strong><span style="font-family: 宋体; color: red;">文件，赋予基本参数</span></strong></p>
<p>&nbsp;</p>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #008080;">&nbsp;1</span>&nbsp;<span style="color: #000000;">#连接设置<br />
</span><span style="color: #008080;">&nbsp;2</span>&nbsp;<span style="color: #000000;">driverClassName</span><span style="color: #000000;">=</span><span style="color: #000000;">org.gjt.mm.mysql.Driver<br />
</span><span style="color: #008080;">&nbsp;3</span>&nbsp;<span style="color: #000000;">url</span><span style="color: #000000;">=</span><span style="color: #000000;">jdbc:mysql://</span><span style="color: #000000;">127.0.0.1</span><span style="color: #000000;">/test<br />
</span><span style="color: #008080;">&nbsp;4</span>&nbsp;<span style="color: #000000;">username</span><span style="color: #000000;">=</span><span style="color: #000000;">root<br />
</span><span style="color: #008080;">&nbsp;5</span>&nbsp;<span style="color: #000000;">password</span><span style="color: #000000;">=</span><span style="color: #000000;">1234</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;6</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;7</span>&nbsp;<span style="color: #000000;">#&lt;!--&nbsp;初始化连接&nbsp;--&gt;<br />
</span><span style="color: #008080;">&nbsp;8</span>&nbsp;<span style="color: #000000;">dataSource.initialSize</span><span style="color: #000000;">=</span><span style="color: #000000;">20</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;9</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">10</span>&nbsp;<span style="color: #000000;">#&lt;!--&nbsp;最大空闲连接&nbsp;--&gt;<br />
</span><span style="color: #008080;">11</span>&nbsp;<span style="color: #000000;">dataSource.maxIdle</span><span style="color: #000000;">=</span><span style="color: #000000;">20</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">12</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">13</span>&nbsp;<span style="color: #000000;">#&lt;!--&nbsp;最小空闲连接&nbsp;--&gt;<br />
</span><span style="color: #008080;">14</span>&nbsp;<span style="color: #000000;">dataSource.minIdle</span><span style="color: #000000;">=</span><span style="color: #000000;">5</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">15</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">16</span>&nbsp;<span style="color: #000000;">#最大连接数量<br />
</span><span style="color: #008080;">17</span>&nbsp;<span style="color: #000000;">dataSource.maxActive</span><span style="color: #000000;">=</span><span style="color: #000000;">100</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">18</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">19</span>&nbsp;<span style="color: #000000;">#是否在自动回收超时连接的时候打印连接的超时错误<br />
</span><span style="color: #008080;">20</span>&nbsp;<span style="color: #000000;">dataSource.logAbandoned</span><span style="color: #000000;">=</span><span style="color: #000000;">true<br />
</span><span style="color: #008080;">21</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">22</span>&nbsp;<span style="color: #000000;">#是否自动回收超时连接<br />
</span><span style="color: #008080;">23</span>&nbsp;<span style="color: #000000;">dataSource.removeAbandoned</span><span style="color: #000000;">=</span><span style="color: #000000;">true<br />
</span><span style="color: #008080;">24</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">25</span>&nbsp;<span style="color: #000000;">#超时时间(以秒数为单位)<br />
</span><span style="color: #008080;">26</span>&nbsp;<span style="color: #000000;">#设置超时时间有一个要注意的地方，超时时间</span><span style="color: #000000;">=</span><span style="color: #000000;">现在的时间-程序中创建Connection的时间，如果&nbsp;maxActive比较大，比如超过100，那么removeAbandonedTimeout可以设置长一点比如180，也就是三分钟无响应的连接进行回收，当然应用的不同设置长度也不同。<br />
</span><span style="color: #008080;">27</span>&nbsp;<span style="color: #000000;">dataSource.removeAbandonedTimeout</span><span style="color: #000000;">=</span><span style="color: #000000;">180</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">28</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">29</span>&nbsp;<span style="color: #000000;">#&lt;!--&nbsp;超时等待时间以毫秒为单位&nbsp;--&gt;<br />
</span><span style="color: #008080;">30</span>&nbsp;<span style="color: #000000;">#maxWait代表当Connection用尽了，多久之后进行回收丢失连接<br />
</span><span style="color: #008080;">31</span>&nbsp;<span style="color: #000000;">dataSource.maxWait</span><span style="color: #000000;">=</span><span style="color: #000000;">1000</span></div>
<br />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="ProgId" content="Word.Document" />
<meta name="Generator" content="Microsoft Word 11" />
<meta name="Originator" content="Microsoft Word 11" />
<link rel="File-List" href="file:///C:%5CDOCUME%7E1%5Csamsung%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml" /><!--[if gte mso 9]><xml>
Normal
0
7.8 磅
0
2
false
false
false
MicrosoftInternetExplorer4
</xml><![endif]--><!--[if gte mso 9]><![endif]--><style>
<!--
/* Font Definitions */
@font-face
{font-family:宋体;
panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
{font-family:""@宋体";
panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-parent:"";
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.5pt;
font-family:"Times New Roman";}
/* Page Definitions */
@page
{}
@page Section1
{size:612.0pt 792.0pt;
margin:72.0pt 90.0pt 72.0pt 90.0pt;}
div.Section1
{page:Section1;}
-->
</style><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{
mso-style-parent:"";
font-size:10.0pt;
font-family:"Times New Roman";}
</style>
<![endif]-->
<p><strong><span style="color: red;">3. </span></strong><strong><span style="font-family: 宋体; color: red;">文件目录：</span></strong></p>
<p><strong><span style="font-family: 宋体; color: red;"><img src="http://www.blogjava.net/images/blogjava_net/crazycoding/image005.png" alt="" border="0" /></span></strong></p>
<p>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="ProgId" content="Word.Document" />
<meta name="Generator" content="Microsoft Word 11" />
<meta name="Originator" content="Microsoft Word 11" />
<link rel="File-List" href="file:///C:%5CDOCUME%7E1%5Csamsung%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml" /><!--[if gte mso 9]><xml>
Normal
0
7.8 磅
0
2
false
false
false
MicrosoftInternetExplorer4
</xml><![endif]--><!--[if gte mso 9]><![endif]--><style>
<!--
/* Font Definitions */
@font-face
{font-family:宋体;
panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
{font-family:""@宋体";
panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-parent:"";
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.5pt;
font-family:"Times New Roman";}
/* Page Definitions */
@page
{}
@page Section1
{size:612.0pt 792.0pt;
margin:72.0pt 90.0pt 72.0pt 90.0pt;}
div.Section1
{page:Section1;}
-->
</style><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{
mso-style-parent:"";
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
</style>
<![endif]-->
<p><span style="font-family: 宋体;">注意，要将属性文件编译到</span>bin<span style="font-family: 宋体;">目录下</span></p>
<p><strong><span style="color: red;">4. </span></strong><strong><span style="font-family: 宋体; color: red;">建立连接池</span></strong></p>
<p><span style="font-family: 宋体;">①</span> <span style="font-family: 宋体;">创建</span><span style="background: silver none repeat scroll 0% 0%; font-size: 10pt; font-family: &quot;Courier New&quot;; color: black; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;">Properties</span><span style="font-size: 10pt; font-family: 宋体; color: black;">对象</span></p>
<p><span style="font-size: 10pt; font-family: 宋体; color: black;">②</span><span style="font-size: 10pt; font-family: 宋体; color: black;">读取项目中的</span><span style="background: silver none repeat scroll 0% 0%; font-size: 10pt; font-family: &quot;Courier New&quot;; color: black; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;">Properties</span><span style="font-size: 10pt; font-family: 宋体; color: black;">文件</span><span style="font-size: 10pt; font-family: 宋体; color: black;">封装成字节流文件</span></p>
<p><span style="font-size: 10pt; font-family: 宋体; color: black;">③</span><span style="font-size: 10pt; font-family: 宋体; color: black;">让</span><span style="background: silver none repeat scroll 0% 0%; font-size: 10pt; font-family: &quot;Courier New&quot;; color: black; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;">Properties</span><span style="font-size: 10pt; font-family: 宋体; color: black;">对象读取该字节流</span></p>
<p><span style="font-size: 10pt; font-family: 宋体; color: black;">④</span><span style="font-size: 10pt; font-family: 宋体; color: black;">通过工厂模式创建</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">DataSource</span></p>
</p>
使用方法：<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #008080;">&nbsp;1</span>&nbsp;<span style="color: #0000ff;">package</span><span style="color: #000000;">&nbsp;com.linying.util;<br />
</span><span style="color: #008080;">&nbsp;2</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;3</span>&nbsp;<span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;java.io.InputStream;<br />
</span><span style="color: #008080;">&nbsp;4</span>&nbsp;<span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;java.sql.Connection;<br />
</span><span style="color: #008080;">&nbsp;5</span>&nbsp;<span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;java.sql.SQLException;<br />
</span><span style="color: #008080;">&nbsp;6</span>&nbsp;<span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;java.util.Properties;<br />
</span><span style="color: #008080;">&nbsp;7</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;8</span>&nbsp;<span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;javax.sql.DataSource;<br />
</span><span style="color: #008080;">&nbsp;9</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">10</span>&nbsp;<span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;org.apache.commons.dbcp.BasicDataSourceFactory;<br />
</span><span style="color: #008080;">11</span>&nbsp;<span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">final</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">class</span><span style="color: #000000;">&nbsp;JDBCUtil{<br />
</span><span style="color: #008080;">12</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;DataSource&nbsp;myDataSource</span><span style="color: #000000;">=</span><span style="color: #0000ff;">null</span><span style="color: #000000;">;<br />
</span><span style="color: #008080;">13</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;JDBCUtil(){<br />
</span><span style="color: #008080;">14</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">15</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080;">16</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;{<br />
</span><span style="color: #008080;">17</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">try</span><span style="color: #000000;">{<br />
</span><span style="color: #008080;">18</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Properties&nbsp;pro</span><span style="color: #000000;">=</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;Properties();<br />
</span><span style="color: #008080;">19</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InputStream&nbsp;is</span><span style="color: #000000;">=</span><span style="color: #000000;">JDBCUtil.</span><span style="color: #0000ff;">class</span><span style="color: #000000;">.getClassLoader().getResourceAsStream(</span><span style="color: #000000;">"</span><span style="color: #000000;">dbcpconfig.properties</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
</span><span style="color: #008080;">20</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pro.load(is);<br />
</span><span style="color: #008080;">21</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;myDataSource</span><span style="color: #000000;">=</span><span style="color: #000000;">BasicDataSourceFactory.createDataSource(pro);<br />
</span><span style="color: #008080;">22</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080;">23</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">catch</span><span style="color: #000000;">(Exception&nbsp;e){<br />
</span><span style="color: #008080;">24</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">25</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080;">26</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080;">27</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;Connection&nbsp;getConnection()</span><span style="color: #0000ff;">throws</span><span style="color: #000000;">&nbsp;SQLException{<br />
</span><span style="color: #008080;">28</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;myDataSource.getConnection();<br />
</span><span style="color: #008080;">29</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080;">30</span>&nbsp;<span style="color: #000000;">}</span></div>
<br />
<p style="margin-left: 39pt; text-indent: -18pt;">
</p>
<p>&nbsp;</p>
<img src ="http://www.blogjava.net/crazycoding/aggbug/311541.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/crazycoding/" target="_blank">Ying-er</a> 2010-02-01 19:44 <a href="http://www.blogjava.net/crazycoding/archive/2010/02/01/311541.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>对连接池原理的最初探索——DIY</title><link>http://www.blogjava.net/crazycoding/archive/2010/02/01/311540.html</link><dc:creator>Ying-er</dc:creator><author>Ying-er</author><pubDate>Mon, 01 Feb 2010 11:06:00 GMT</pubDate><guid>http://www.blogjava.net/crazycoding/archive/2010/02/01/311540.html</guid><wfw:comment>http://www.blogjava.net/crazycoding/comments/311540.html</wfw:comment><comments>http://www.blogjava.net/crazycoding/archive/2010/02/01/311540.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/crazycoding/comments/commentRss/311540.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/crazycoding/services/trackbacks/311540.html</trackback:ping><description><![CDATA[<strong>为什么要使用连接池？</strong><br />
连接池一般比直接连接更有优越性因为它提高了性能的同时还保存了宝贵的资源。打开数据库连接时CPU和网络的重要任务因此，在整个应用程序的使用过程当中重复的打开直接连接将导致性能的下降。而池连接只在服务器启动时打开一次，从而消除了这种性能问题。另外，因为连接只用于很短的时间，所以，连接可以被有效共享，而且有关连接参数的特有信息，只对池驱动程序有效，如数据库用户名称和密码，从而增强了系统的安全性和可管理性。<br />
打个比方：<br />
一辆汽车想从河的此岸到彼岸，这之间没有桥，怎么办呢？架桥吧。<br />
桥架好了，车过去了。<br />
然后呢？这个桥是拆掉呢？还是接着供以后使用呢？<br />
如果是拆掉，那么就相当于数据库的直连，数据库的每一个连接，都需要架一所桥，数据操作之后也就是说&#8220;车&#8221;通过之后，拆掉此桥。<br />
如果是保留，那么就相当于使用了&#8220;连接池&#8221;技术，不过也并非&#8220;一座桥&#8221;这么简单。<br />
<br />
<strong>主要思想：</strong><br />
&nbsp; 是基于JDBC而来的 <br />
&nbsp;  JDBC方法：开启一个Connection,使用一个连接,关闭一个连接。 <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 再次操作重复上面的。  <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 而开启一个连接对象浪费很多服务器资源。 <br />
&nbsp; 数据库连接池：通过参数配置（参数看你需要综合考虑）开启N个连接 放在容器中(Tomcat,weblogic等) <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 使用连接，<span style="color: #ff0000;">释放连接。注意不是关闭</span>，从新放回容器中，等待下次使用，无需再次开启连接。 <br />
<br />
<br />
<strong>实现其基本功能的核心代码：</strong><br />
<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #008080;">&nbsp;1</span>&nbsp;<span style="color: #0000ff;">package</span><span style="color: #000000;">&nbsp;com.linying;<br />
</span><span style="color: #008080;">&nbsp;2</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;3</span>&nbsp;<span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;java.sql.Connection;<br />
</span><span style="color: #008080;">&nbsp;4</span>&nbsp;<span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;java.sql.DriverManager;<br />
</span><span style="color: #008080;">&nbsp;5</span>&nbsp;<span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;java.sql.SQLException;<br />
</span><span style="color: #008080;">&nbsp;6</span>&nbsp;<span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;java.util.LinkedList;<br />
</span><span style="color: #008080;">&nbsp;7</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;8</span>&nbsp;<span style="color: #008000;">/**</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">&nbsp;9</span>&nbsp;<span style="color: #008000;">&nbsp;* </span>加工数据源，实现连接池<br />
<span style="color: #008080;">10</span>&nbsp;<span style="color: #008000;">&nbsp;*&nbsp;</span><span style="color: #808080;">@author</span><span style="color: #008000;">&nbsp;Ying-er<br />
</span><span style="color: #008080;">11</span>&nbsp;<span style="color: #008000;">&nbsp;*&nbsp;@time&nbsp;2010-2-1下午06:47:03<br />
</span><span style="color: #008080;">12</span>&nbsp;<span style="color: #008000;">&nbsp;*&nbsp;</span><span style="color: #808080;">@version</span><span style="color: #008000;">&nbsp;1.0<br />
</span><span style="color: #008080;">13</span>&nbsp;<span style="color: #008000;">&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">14</span>&nbsp;<span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">class</span><span style="color: #000000;">&nbsp;MyDataSource&nbsp;{<br />
</span><span style="color: #008080;">15</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">/**</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">16</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;指定数据库的URL<br />
</span><span style="color: #008080;">17</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">18</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;String&nbsp;url&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">jdbc:mysql://127.0.0.1/test</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br />
</span><span style="color: #008080;">19</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">20</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">/**</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">21</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;指定登陆用户名<br />
</span><span style="color: #008080;">22</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">23</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;String&nbsp;user&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">root</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br />
</span><span style="color: #008080;">24</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">25</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">/**</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">26</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;指定登陆用户的密码<br />
</span><span style="color: #008080;">27</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">28</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;String&nbsp;password&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">1234</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br />
</span><span style="color: #008080;">29</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">30</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">/**</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">31</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;初始连接数（一次性创建50个连接）<br />
</span><span style="color: #008080;">32</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">33</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;initCount&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">50</span><span style="color: #000000;">;<br />
</span><span style="color: #008080;">34</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">35</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">/**</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">36</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;记录当前连接数<br />
</span><span style="color: #008080;">37</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">38</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;currentCount&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;<br />
</span><span style="color: #008080;">39</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">40</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">/**</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">41</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;使用LinkedList的connectionPool存储MyConnection对象<br />
</span><span style="color: #008080;">42</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">43</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;LinkedList</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">Connection</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;connectionPool&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;LinkedList</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">Connection</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">();<br />
</span><span style="color: #008080;">44</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">45</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">/**</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">46</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;构造函数&nbsp;创建MyDataSource时创建initCount个连接<br />
</span><span style="color: #008080;">47</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;<br />
</span><span style="color: #008080;">48</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">49</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;MyDataSource()&nbsp;{<br />
</span><span style="color: #008080;">50</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">try</span><span style="color: #000000;">&nbsp;{<br />
</span><span style="color: #008080;">51</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">&nbsp;(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;&nbsp;i&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">&nbsp;initCount;&nbsp;i</span><span style="color: #000000;">++</span><span style="color: #000000;">)&nbsp;{<br />
</span><span style="color: #008080;">52</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.connectionPool.addLast(</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.createConnection());<br />
</span><span style="color: #008080;">53</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.currentCount</span><span style="color: #000000;">++</span><span style="color: #000000;">;<br />
</span><span style="color: #008080;">54</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080;">55</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span style="color: #0000ff;">catch</span><span style="color: #000000;">&nbsp;(SQLException&nbsp;e)&nbsp;{<br />
</span><span style="color: #008080;">56</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">throw</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;ExceptionInInitializerError(e);<br />
</span><span style="color: #008080;">57</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080;">58</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080;">59</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">60</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">/**</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">61</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;创建连接<br />
</span><span style="color: #008080;">62</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;<br />
</span><span style="color: #008080;">63</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080;">@return</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">64</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080;">@throws</span><span style="color: #008000;">&nbsp;SQLException<br />
</span><span style="color: #008080;">65</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">66</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;Connection&nbsp;createConnection()&nbsp;</span><span style="color: #0000ff;">throws</span><span style="color: #000000;">&nbsp;SQLException&nbsp;{<br />
</span><span style="color: #008080;">67</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Connection&nbsp;realConnection&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;DriverManager.getConnection(url,&nbsp;user,<br />
</span><span style="color: #008080;">68</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;password);<br />
</span><span style="color: #008080;">69</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MyConnection&nbsp;myConnection&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;MyConnection(realConnection,&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">);<br />
</span><span style="color: #008080;">70</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;myConnection;<br />
</span><span style="color: #008080;">71</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080;">72</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">73</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">/**</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">74</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;从连接池里获得连接<br />
</span><span style="color: #008080;">75</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;<br />
</span><span style="color: #008080;">76</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080;">@return</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">77</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080;">@throws</span><span style="color: #008000;">&nbsp;SQLException<br />
</span><span style="color: #008080;">78</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">79</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;Connection&nbsp;getConnection()&nbsp;</span><span style="color: #0000ff;">throws</span><span style="color: #000000;">&nbsp;SQLException&nbsp;{<br />
</span><span style="color: #008080;">80</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">synchronized</span><span style="color: #000000;">&nbsp;(connectionPool)&nbsp;{<br />
</span><span style="color: #008080;">81</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.connectionPool.size()&nbsp;</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">)&nbsp;{<br />
</span><span style="color: #008080;">82</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.connectionPool.removeFirst();<br />
</span><span style="color: #008080;">83</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span style="color: #0000ff;">else</span><span style="color: #000000;">&nbsp;{<br />
</span><span style="color: #008080;">84</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.currentCount</span><span style="color: #000000;">++</span><span style="color: #000000;">;<br />
</span><span style="color: #008080;">85</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.createConnection();<br />
</span><span style="color: #008080;">86</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080;">87</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">88</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080;">89</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080;">90</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">91</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">/**</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">92</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;释放连接<br />
</span><span style="color: #008080;">93</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;<br />
</span><span style="color: #008080;">94</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080;">@param</span><span style="color: #008000;">&nbsp;conn<br />
</span><span style="color: #008080;">95</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">96</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;free(Connection&nbsp;conn)&nbsp;{<br />
</span><span style="color: #008080;">97</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.connectionPool.addLast(conn);<br />
</span><span style="color: #008080;">98</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080;">99</span>&nbsp;<span style="color: #000000;">}</span></div>
<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #008080;">&nbsp;1</span>&nbsp;<span style="color: #0000ff;">package</span><span style="color: #000000;">&nbsp;com.linying;<br />
</span><span style="color: #008080;">&nbsp;2</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;3</span>&nbsp;<span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;java.sql.Array;<br />
</span><span style="color: #008080;">&nbsp;4</span>&nbsp;<span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;java.sql.Blob;<br />
</span><span style="color: #008080;">&nbsp;5</span>&nbsp;<span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;java.sql.CallableStatement;<br />
</span><span style="color: #008080;">&nbsp;6</span>&nbsp;<span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;java.sql.Clob;<br />
</span><span style="color: #008080;">&nbsp;7</span>&nbsp;<span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;java.sql.Connection;<br />
</span><span style="color: #008080;">&nbsp;8</span>&nbsp;<span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;java.sql.DatabaseMetaData;<br />
</span><span style="color: #008080;">&nbsp;9</span>&nbsp;<span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;java.sql.NClob;<br />
</span><span style="color: #008080;">10</span>&nbsp;<span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;java.sql.PreparedStatement;<br />
</span><span style="color: #008080;">11</span>&nbsp;<span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;java.sql.SQLClientInfoException;<br />
</span><span style="color: #008080;">12</span>&nbsp;<span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;java.sql.SQLException;<br />
</span><span style="color: #008080;">13</span>&nbsp;<span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;java.sql.SQLWarning;<br />
</span><span style="color: #008080;">14</span>&nbsp;<span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;java.sql.SQLXML;<br />
</span><span style="color: #008080;">15</span>&nbsp;<span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;java.sql.Savepoint;<br />
</span><span style="color: #008080;">16</span>&nbsp;<span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;java.sql.Statement;<br />
</span><span style="color: #008080;">17</span>&nbsp;<span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;java.sql.Struct;<br />
</span><span style="color: #008080;">18</span>&nbsp;<span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;java.util.Map;<br />
</span><span style="color: #008080;">19</span>&nbsp;<span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;java.util.Properties;<br />
</span><span style="color: #008080;">20</span>&nbsp;<span style="color: #008000;">/**</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">21</span>&nbsp;<span style="color: #008000;">&nbsp;*&nbsp;自定义Connection<br />
</span><span style="color: #008080;">22</span>&nbsp;<span style="color: #008000;">&nbsp;*&nbsp;</span><span style="color: #808080;">@author</span><span style="color: #008000;">&nbsp;Ying-er<br />
</span><span style="color: #008080;">23</span>&nbsp;<span style="color: #008000;">&nbsp;*&nbsp;@time&nbsp;2010-2-1下午06:36:24<br />
</span><span style="color: #008080;">24</span>&nbsp;<span style="color: #008000;">&nbsp;*&nbsp;</span><span style="color: #808080;">@version</span><span style="color: #008000;">&nbsp;1.0<br />
</span><span style="color: #008080;">25</span>&nbsp;<span style="color: #008000;">&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">26</span>&nbsp;<span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">class</span><span style="color: #000000;">&nbsp;MyConnection&nbsp;</span><span style="color: #0000ff;">implements</span><span style="color: #000000;">&nbsp;Connection{<br />
</span><span style="color: #008080;">27</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">28</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;Connection&nbsp;realConnection;<br />
</span><span style="color: #008080;">29</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;MyDataSource&nbsp;dataSource;<br />
</span><span style="color: #008080;">30</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;maxUserCount</span><span style="color: #000000;">=</span><span style="color: #000000;">200</span><span style="color: #000000;">;<br />
</span><span style="color: #008080;">31</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;currentUserCount</span><span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;">;<br />
</span><span style="color: #008080;">32</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">33</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;MyConnection(Connection&nbsp;connection,MyDataSource&nbsp;dataSource){<br />
</span><span style="color: #008080;">34</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.realConnection</span><span style="color: #000000;">=</span><span style="color: #000000;">connection;<br />
</span><span style="color: #008080;">35</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.dataSource</span><span style="color: #000000;">=</span><span style="color: #000000;">dataSource;<br />
</span><span style="color: #008080;">36</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080;">37</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">38</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;clearWarnings()&nbsp;</span><span style="color: #0000ff;">throws</span><span style="color: #000000;">&nbsp;SQLException&nbsp;{<br />
</span><span style="color: #008080;">39</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;TODO&nbsp;Auto-generated&nbsp;method&nbsp;stub</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">40</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.realConnection.clearWarnings();<br />
</span><span style="color: #008080;">41</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">42</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080;">43</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">44</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">/**</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">45</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;重写close方法，<br />
</span><span style="color: #008080;">46</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;close的时候<br />
</span><span style="color: #008080;">47</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;将此已用过的数据源添加到LinkedList尾部<br />
</span><span style="color: #008080;">48</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;此LinkedList在MyDataSource文件中定义<br />
</span><span style="color: #008080;">49</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;注意：目的是释放而不是不是关闭数据源<br />
</span><span style="color: #008080;">50</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">51</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;close()&nbsp;</span><span style="color: #0000ff;">throws</span><span style="color: #000000;">&nbsp;SQLException&nbsp;{<br />
</span><span style="color: #008080;">52</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;TODO&nbsp;Auto-generated&nbsp;method&nbsp;stub</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">53</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.currentUserCount</span><span style="color: #000000;">++</span><span style="color: #000000;">;<br />
</span><span style="color: #008080;">54</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.currentUserCount</span><span style="color: #000000;">&lt;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.maxUserCount){<br />
</span><span style="color: #008080;">55</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.dataSource.connectionPool.addLast(</span><span style="color: #0000ff;">this</span><span style="color: #000000;">);<br />
</span><span style="color: #008080;">56</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080;">57</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">else</span><span style="color: #000000;">{<br />
</span><span style="color: #008080;">58</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.realConnection.close();<br />
</span><span style="color: #008080;">59</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.dataSource.currentCount</span><span style="color: #000000;">--</span><span style="color: #000000;">;<br />
</span><span style="color: #008080;">60</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080;">61</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">62</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080;">63</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">64</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">/**</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">65</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;实现Connection中的所有方法<br />
</span><span style="color: #008080;">66</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&#8230;&#8230;<br />
</span><span style="color: #008080;">67</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">68</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">69</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;commit()&nbsp;</span><span style="color: #0000ff;">throws</span><span style="color: #000000;">&nbsp;SQLException&nbsp;{<br />
</span><span style="color: #008080;">70</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;TODO&nbsp;Auto-generated&nbsp;method&nbsp;stub</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">71</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.realConnection.commit();<br />
</span><span style="color: #008080;">72</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">73</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080;">74</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">/**</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">75</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* 以下代码略掉<br />
</span><span style="color: #008080;">76</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">*/</span></div>
<br />
此实例工程下载地址：<br />
<a href="/Files/crazycoding/DBConnectionPool.rar">http://www.blogjava.net/Files/crazycoding/DBConnectionPool.rar</a><br />
<br />
注：只是个人研究成果，有错误和不准确之处请谅解。<br />
<br />
<img src ="http://www.blogjava.net/crazycoding/aggbug/311540.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/crazycoding/" target="_blank">Ying-er</a> 2010-02-01 19:06 <a href="http://www.blogjava.net/crazycoding/archive/2010/02/01/311540.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>