如果想要搭建一个高效的网站,链接池是必须用到的一部分。而连接池的选择是多种多样的。就现在的软件开发界而言,最为多用的是DBCP, c3p0, 和 proxool。而hibernate推荐使用的是c3p0 和proxool,并且宣布不再支持DBCP。 因此,重点就是如果想要在自己的应用程序中加入数据库连接池,就必须掌握其中的一种,而最好得选择就是c3p0和proxool中的任何一种。

  下面来说说数据库连接池的相关概念和基本原理,以便于读者更加容易的理解后边的实际应用。

  使用过数据库操作的人都知道,当我们需要进行数据库操作时,首先需要对数据库进行连接,然后执行操作,再然后我们使用完毕后需要将数据库关闭。如果在使用后没有关闭数据库连接,那么,这个连接就一直在占用状态。当使用的人数增加,连接也增加,系统会很快就崩溃。在超过负荷之后直接down掉!!!这就是在程序中没有及时的关闭数据库连接的危害。但是,这种每使用一次就连接和关闭一次数据库连接其实际上是对数据库有一定的影响的。因此,才有了数据库连接池的概念。

  数据库连接池实际上就是在程序加载时就按照设置的数量先和数据库建立一定量的连接,当需要数据库连接时就直接从最开始建立的连接中取得所需要的连接就行。当不需要时,只需要将连接还给连接池;当建立的连接被取用完后,并且还存在后续的请求,也就是说现在的连接数量已经超过了系统设置的最大连接数。那么,后面的请求只有等待!!

  百度给出的解释是:

    

      作者:itRed      邮箱:it_red@sina.com    博客:http://www.cnblogs.com/itred

Normal
0

7.8 磅
0
2

false
false
false

EN-US
ZH-CN
X-NONE

/* Style Definitions */
table.MsoNormalTable
{mso-style-name:普通表格;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.5pt;
mso-bidi-font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;
mso-font-kerning:1.0pt;}

  在进行正式开放之前,了解一下几个专用术语:

Normal
0

7.8 磅
0
2

false
false
false

EN-US
ZH-CN
X-NONE

/* Style Definitions */
table.MsoNormalTable
{mso-style-name:普通表格;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.5pt;
mso-bidi-font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;
mso-font-kerning:1.0pt;}

maximum-connection-count:最大连接数(默认5个),超过了这个连接数,再有请求时,就排在队列中等候,最大的等待请求数由maximum-new-connections决定

minimum-connection-count最小连接数(默认2个)

house-keeping-sleep-time:proxool自动侦察各个连接状态的时间间隔(毫秒),侦察到空闲的连接就马上回收,超时的销毁 默认30秒

maximum-new-connections没有空闲连接可以分配而在队列中等候的最大请求数,超过这个请求数的用户连接就不会被接受

prototype-count 最少保持的空闲连接数(默认2个)

test-before-use在使用之前测试

house-keeping-test-sql用于保持连接的测试语句

Normal
0

7.8 磅
0
2

false
false
false

EN-US
ZH-CN
X-NONE

/* Style Definitions */
table.MsoNormalTable
{mso-style-name:普通表格;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.5pt;
mso-bidi-font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;
mso-font-kerning:1.0pt;}

  好了!看看具体的实例应用就会明白以上所说的相关概念了。本人按java和web工程来叙述案例,需要声明一下,proxool的应用是没有固定的形式了。并不是只能在java中应用它的xml形式。它的配置可以以任何形式运行。具体的看它的官方文档。本人主要以理解为首,开发为主。因此以web和java工程区分。

  先说一下数据库的数据

  

Normal
0

7.8 磅
0
2

false
false
false

EN-US
ZH-CN
X-NONE

/* Style Definitions */
table.MsoNormalTable
{mso-style-name:普通表格;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.5pt;
mso-bidi-font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;
mso-font-kerning:1.0pt;}

Demo 1. 在java工程中添加proxool连接池

Normal
0

7.8 磅
0
2

false
false
false

EN-US
ZH-CN
X-NONE

/* Style Definitions */
table.MsoNormalTable
{mso-style-name:普通表格;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.5pt;
mso-bidi-font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;
mso-font-kerning:1.0pt;}

一.新建java工程,在目录下直接见一个lib包,用来存放项目工程所有的jar包,导入相关的jar包,然后build path。利用proxool实现连接池的jar包如下:

  

Normal
0

7.8 磅
0
2

false
false
false

EN-US
ZH-CN
X-NONE

/* Style Definitions */
table.MsoNormalTable
{mso-style-name:普通表格;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.5pt;
mso-bidi-font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;
mso-font-kerning:1.0pt;}

二. 在src目录下新家一个测试包,附加一个测试类Test.java:

包名:com.red.test

Test.java的源码如下:

package com.red.test;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement; import org.logicalcobwebs.proxool.configuration.JAXPConfigurator; public class Test { public static void main(String[] args) throws Exception {
Test obj = new Test();
obj.test2();
} int beginIndex = 0;
int endIndex = 10; //取10条记录
String MySQLdbTableName = "user";
String MySQLreq = "select * from " + MySQLdbTableName + " limit "
+ beginIndex + ", " + endIndex; public void test2() throws Exception {
// Java应用中先要加载配置文件,否则谁知道你配置给谁用的
JAXPConfigurator.configure("src/proxool.xml", false);
// 1:注册驱动类,这次这个驱动已经不是Oracle的驱动了,是Proxool专用的驱动
Class.forName("org.logicalcobwebs.proxool.ProxoolDriver");
// 2:创建数据库连接,这个参数是一个字符串,是数据源的别名,在配置文件中配置的timalias,参数格式为:proxool.数据源的别名
Connection conn = DriverManager.getConnection("proxool.mysql");
for (int i = 0; i < 20; i++)
conn = DriverManager.getConnection("proxool.mysql");
Statement stmt = conn.createStatement();
ResultSet res = stmt.executeQuery(MySQLreq);
ResultSetMetaData rsmd = res.getMetaData();
int columnCount = rsmd.getColumnCount();
int rowCount = 0;
while (res.next()) {
System.out.print(rowCount + " ");
rowCount++;
for (int j = 1; j <= columnCount; j++) {
String strRes = res.getString(j);
System.out.print(strRes + "|\t");
}
System.out.println();
}
conn.close();
}
}

Normal
0

7.8 磅
0
2

false
false
false

EN-US
ZH-CN
X-NONE

/* Style Definitions */
table.MsoNormalTable
{mso-style-name:普通表格;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.5pt;
mso-bidi-font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;
mso-font-kerning:1.0pt;}

三. 在src目录下新建一个xml文件。在这个文件中配置项目与数据库的连接。源码如下:

Proxool.xml源码:

<?xml version="1.0" encoding="UTF-8"?>
<something-else-entirely>
<proxool>
<alias>mysql</alias>
<driver-url>jdbc:mysql://127.0.0.1:3306/test</driver-url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<driver-properties>
<property name="user" value="root" />
<property name="password" value="123456" />
</driver-properties>
<!--
最大连接数(默认5个),超过了这个连接数,再有请求时,就排在队列中等候,最大的等待请求数由maximum-new-connections决定
-->
<maximum-connection-count>30</maximum-connection-count>
<!--最小连接数(默认2个)-->
<minimum-connection-count>1</minimum-connection-count>
<!--proxool自动侦察各个连接状态的时间间隔(毫秒),侦察到空闲的连接就马上回收,超时的销毁 默认30秒-->
<house-keeping-sleep-time>90000</house-keeping-sleep-time>
<!--没有空闲连接可以分配而在队列中等候的最大请求数,超过这个请求数的用户连接就不会被接受-->
<maximum-new-connections>6</maximum-new-connections>
<!--最少保持的空闲连接数(默认2个)-->
<prototype-count>5</prototype-count>
<!--在使用之前测试-->
<test-before-use>true</test-before-use>
<!--用于保持连接的测试语句 -->
<house-keeping-test-sql>show tables</house-keeping-test-sql>
</proxool>
</something-else-entirely>

proxool.xml

Normal
0

7.8 磅
0
2

false
false
false

EN-US
ZH-CN
X-NONE

/* Style Definitions */
table.MsoNormalTable
{mso-style-name:普通表格;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.5pt;
mso-bidi-font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;
mso-font-kerning:1.0pt;}

四. 运行结果:

    

Normal
0

7.8 磅
0
2

false
false
false

EN-US
ZH-CN
X-NONE

/* Style Definitions */
table.MsoNormalTable
{mso-style-name:普通表格;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.5pt;
mso-bidi-font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;
mso-font-kerning:1.0pt;}

Demo 2. 在java web 项目下使用proxool数据库连接池:

Normal
0

7.8 磅
0
2

false
false
false

EN-US
ZH-CN
X-NONE

/* Style Definitions */
table.MsoNormalTable
{mso-style-name:普通表格;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.5pt;
mso-bidi-font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;
mso-font-kerning:1.0pt;}

一.新建web工程,导入jar包。过程同上;

二.在src目录下新建两个包,分别是放数据库连接的,还有一个包用来存放测试用的文件。在src目录下新建一个properties文件。

包名:com.red.proxool 目录下的ConnectFactory.java文件   源码:

package com.red.proxool;

import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties; import org.logicalcobwebs.proxool.ProxoolException;
import org.logicalcobwebs.proxool.configuration.PropertyConfigurator; public class ConnectFactory {
private static ConnectFactory connectFactory = null;
private static String defaultaliasname = "test"; public ConnectFactory() {
} private ConnectFactory(String name) {
init();
} public static ConnectFactory getInstance() {
if (null == connectFactory) {
connectFactory = new ConnectFactory(defaultaliasname);
}
return connectFactory;
} public Connection getConnect() {
try {
Connection conn = DriverManager.getConnection("proxool." + defaultaliasname);
return conn;
} catch (SQLException e) {
e.printStackTrace();
}
return null;
} public Connection getConnect(String aliasname) {
try {
Connection conn = DriverManager.getConnection("proxool." + aliasname);
return conn;
} catch (SQLException e) {
e.printStackTrace();
}
return null;
} private static void init() {
try {
InputStream is = new ConnectFactory().getClass().getResourceAsStream("/proxool.properties");
Properties properties = new Properties();
properties.load(is);
PropertyConfigurator.configure(properties);
} catch (IOException e) {
e.printStackTrace();
} catch (ProxoolException e1) {
e1.printStackTrace();
}
} public static void closeConnects(Connection conn, Statement state) {
try {
if (null != state && !conn.isClosed())
conn.close();
if (null != state && !state.isClosed())
state.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}

ConnectFactory.java

包名:com.red.test目录下的Test.java文件    源码:

package com.red.test;

import java.sql.ResultSet;
import java.sql.SQLException; import com.mysql.jdbc.Connection;
import com.mysql.jdbc.Statement;
import com.red.proxool.ConnectFactory; public class Test { static ConnectFactory connectionFactory= null;
public static void main(String[] args) {
connectionFactory = new ConnectFactory();
Connection conn = (Connection) ConnectFactory.getInstance()
.getConnect();
String sql = "SELECT * FROM test.user";
Statement stmt = null;
ResultSet rs = null;
try {
stmt = (Statement) conn.createStatement();
rs = stmt.executeQuery(sql);
while (rs.next()) {
System.out.println("[ " + rs.getString(2) + " ]");
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
ConnectFactory.closeConnects(conn, stmt);
}
}
}

Test.java

Src目录下的proxool.properties文件  源码:

jdbc-1.proxool.alias=test
jdbc-1.proxool.driver-class=com.mysql.jdbc.Driver
jdbc-1.proxool.driver-url=jdbc:mysql://127.0.0.1:3306?useUnicode=true&amp;characterEncoding=utf8
jdbc-1.user=root
jdbc-1.password=123456
jdbc-1.proxool.maximum-connection-count=50
jdbc-1.proxool.minimum-connection-count=5
jdbc-1.proxool.prototype-count=4
jdbc-1.proxool.house-keeping-test-sql=select now();
jdbc-1.proxool.verbose=true
jdbc-1.proxool.statistics=10s,1m,1d
jdbc-1.proxool.statistics-log-level=ERROR jdbc-2.proxool.alias=local
jdbc-2.proxool.driver-class=com.mysql.jdbc.Driver
jdbc-2.proxool.driver-url=jdbc:mysql://127.0.0.1:3306?useUnicode=true&amp;characterEncoding=utf8
jdbc-2.user=root
jdbc-2.password=123456
jdbc-2.proxool.maximum-connection-count=50
jdbc-2.proxool.minimum-connection-count=2
jdbc-2.proxool.prototype-count=4
jdbc-2.proxool.house-keeping-test-sql=select now();
jdbc-2.proxool.verbose=true
jdbc-2.proxool.statistics=10s,1m,1d
jdbc-2.proxool.statistics-log-level=ERROR

proxool.properties

三.正如proxool.properties设置的一样。其中可以有两个或两个以上的数据库。本文用了两个。更多地情况,读者可以自己尝试。

调用时只需要将它的别名作为参数就行。

public Connection getConnect(String aliasname)

四. 测试运行结果:

    

Normal
0

7.8 磅
0
2

false
false
false

EN-US
ZH-CN
X-NONE

/* Style Definitions */
table.MsoNormalTable
{mso-style-name:普通表格;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.5pt;
mso-bidi-font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;
mso-font-kerning:1.0pt;}

  我相信通过以上两个例子,你应该对proxool连接池有了更深入的认识。本人只是希望这篇博客能够给刚接触proxool连接池的菜鸟朋友起一个抛砖引玉的作用。个人感觉只要这两个案例程序调试出来了,基本上在程序开发的过程中也就够用了。如果喜欢或者希望更加深入的理解proxool连接池还是需要去详细的阅读它的API文档。另外欢迎大神拍砖指教!

                      本文源码下载

  作者:itRed         邮箱:it_red@sina.com            博客:http://www.cnblogs.com/itred

版权声明:本文版权归作者和博客园共有,欢迎转载,但请在文章显眼位置标明文章出处。未经本人书面同意,将其作为他用,本人保留追究责任的所有权利。

了解一下几个专用术语:

Normal
0

7.8 磅
0
2

false
false
false

EN-US
ZH-CN
X-NONE

/* Style Definitions */
table.MsoNormalTable
{mso-style-name:普通表格;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.5pt;
mso-bidi-font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;
mso-font-kerning:1.0pt;}

数据库连接池之Proxool使用的更多相关文章

  1. Java数据库连接池比较(c3p0,dbcp,proxool和BoneCP)

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp21 Java框架数据库连接池比较(c3p0,dbcp和proxool,Bo ...

  2. Spring配置-数据库连接池proxool[转]

    数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出.对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标.数据库连接池正是针对这个问题提出 ...

  3. Java数据库连接池-proxool

    连接池技术的思想: 连接复用(高效.安全),避免数据库频繁建立.关闭的开销 --------------------极客学院(参考lulei) 1.配置文件 <proxool> <! ...

  4. 数据库连接池proxool的两种使用方式

    数据库连接池可以通过两种方式来应用,针对web应用和非web应用而来. 非web应用的数据库连接池配置 第一种方式:工厂类 非web应用可以使用工厂模式将数据库连接创建封装在一个工具类中,工具类中又使 ...

  5. proxool数据库连接池用法

    今天给大家介绍一种新的数据连接池实现方式--proxool数据库连接池,这是一个健壮.易用的连接池.以下通过一个Demo说明一下怎样使用: 项目结构例如以下: DBLink.java文件里的代码: p ...

  6. [转]阿里巴巴数据库连接池 druid配置详解

    一.背景 java程序很大一部分要操作数据库,为了提高性能操作数据库的时候,又不得不使用数据库连接池.数据库连接池有很多选择,c3p.dhcp.proxool等,druid作为一名后起之秀,凭借其出色 ...

  7. 从零开始学 Java - 数据库连接池的选择 Druid

    我先说说数据库连接 数据库大家都不陌生,从名字就能看出来它是「存放数据的仓库」,那我们怎么去「仓库」取东西呢?当然需要钥匙啦!这就是我们的数据库用户名.密码了,然后我们就可以打开门去任意的存取东西了. ...

  8. 数据库连接池:Druid

    转自: http://www.cnblogs.com/windlaughing/p/3287501.html Java连接数据库方法概述 java.sql提供了一些接口和类,用于支持数据库增删改查等相 ...

  9. Druid数据库连接池配置

    DRUID是阿里巴巴开源平台上一个数据库连接池实现,它结合了C3P0.DBCP.PROXOOL等DB池的优点,同时加入了日志监控,可以很好的监控DB池连接和SQL的执行情况,可以说是针对监控而生的DB ...

随机推荐

  1. XtraBackup备份笔记

    安装 rpm -Uhv http://www.percona.com/downloads/percona-release/percona-release-0.0-1.x86_64.rpm yum in ...

  2. 使用call来实现继承

    function Class1(arg1,arg2) { this.name = arg1; this.pass = arg2; this.showSub = function() { return ...

  3. nsq初探

    一. 安装 参考:http://nsq.io/deployment/installing.htmlhttp://www.baiyuxiong.com/?p=873    (推荐.) 不推荐直接把官方的 ...

  4. SQL提示介绍-强制并行

    查询提示一直是个很有争议的东西,因为他影响了sql server 自己选择执行计划.很多人在问是否应该使用查询提示的时候一般会被告知慎用或不要使用...但是个人认为善用提示在不修改语句的条件下,是常用 ...

  5. Windows Phone App的dump文件实例分析-Stack Overflow

    前言 这篇文章我们一起来分析一个从Windows Phone Dev Center上下载下来的dump file.首先按照我上一篇的步骤设置好我们的Windbg,并按住Ctrl +D打开dumpfil ...

  6. Angular ngClick 阻止冒泡和默认行为

    这其实是一个很简单的问题,如果你认真查看过Angular官方的API文档,本来不想记录的.但是这个问题不止一次的被人问起,所以今天在记录在这里. 在Angular中已经对一些ng事件如ngClick, ...

  7. 解如下方程(java实现)

    n                              (m=1) f(m,n)=  m                              (n=1) f(m-1,n)+f(m,n-1) ...

  8. wamp虚拟主机配置

    1.首先打开apache的配置文件httpd.conf,并去掉#Include conf/extra/httpd-vhosts.conf前面的#,启用虚拟主机功能 2.先把localhost配置好,免 ...

  9. 跨站请求伪造CSRF

    CSRF是Cross Site Request Forgery的缩写,乍一看和XSS差不多的样子,但是其原理正好相反,XSS是利用合法用户获取其信息,而CSRF是伪造成合法用户发起请求. 在XSS危害 ...

  10. Lucene系列-近实时搜索(1)

    近实时搜索(near-real-time)可以搜索IndexWriter还未commit的内容,介于immediate和eventual之间,在数据比较大.更新较频繁的情况下使用.本文主要来介绍下如何 ...