真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

mysql連接池怎么寫的 mysql連接池是長(zhǎng)連接嗎

JSP MYSQL 連接池的配置,高手來(lái)QQ***********在線等

分類: 電腦/網(wǎng)絡(luò) 程序設(shè)計(jì) 其他編程語(yǔ)言

創(chuàng)新互聯(lián)公司專業(yè)提供成都主機(jī)托管四川主機(jī)托管成都服務(wù)器托管四川服務(wù)器托管,支持按月付款!我們的承諾:貴族品質(zhì)、平民價(jià)格,機(jī)房位于中國(guó)電信/網(wǎng)通/移動(dòng)機(jī)房,綿陽(yáng)主機(jī)托管服務(wù)有保障!

問(wèn)題描述:

JSP MYSQL 連接池的配置,高手來(lái)QQ***********在線等詳細(xì)哦

解析:

Jboss數(shù)據(jù)庫(kù)連接池

wwx 為數(shù)據(jù)庫(kù)名

UserInfor為表名

數(shù)據(jù)庫(kù)用戶名和密碼分別為:root root

參考 matrix/translation/Wiki.jsp?page=J2EEEJB_JbossJDBC

(該blog 包括幾個(gè)主要數(shù)據(jù)庫(kù)的連接)

MySQL是一個(gè)開放源代碼的數(shù)據(jù)庫(kù),有很多開源項(xiàng)目和小型的社團(tuán)都在使用它。

一 把mysql-connector-java-3.1.11-bin.jar復(fù)制到/server/default/lib目錄下,

(需要mysql-connector-java-3.0.16-ga.zip包 將里面的jar文件取出)

二 再把/docs/examples/jca/mysql-ds.xml復(fù)制到/server/default/deploy目錄下。修改mysql-ds.xml文件,設(shè)置為 .mysql.jdbc.Driver再把設(shè)置為jdbc:mysql/,其中是數(shù)據(jù)庫(kù)主機(jī)名是數(shù)據(jù)庫(kù)名。

例:datasources

local-tx-datasource

jndi-nameMySqlDS/jndi-name

connection-urljdbc:mysqllocalhost:3306/wwx/connection-urlwwx

driver-class.mysql.jdbc.Driver/driver-class

user-nameroot/user-name

passwordroot/password

/local-tx-datasource

/datasources

注意:如果localhost不行 就用127.0.0.1 這個(gè)一定沒(méi)問(wèn)題!

還有就是如果數(shù)據(jù)庫(kù)沒(méi)有密碼!那么就這樣password/password

三 然后需要設(shè)置standardjaws.xml (或 jaws.xml 注: \server\default\conf目錄下)文件的和元素:

jaws

datasourcejava:/MySqlDS/datasource

type-mappingmySql/type-mapping

。。。。。。。

/jaws

四 同樣也需要把standardjbosscmp-jdbc.xml (或 jbosscmp-jdbc.xml文件 注: \server\default\conf目錄下)的 和 元素設(shè)置為下面這樣:

jbosscmp-jdbc

defaults

datasourcejava:/MySqlDS/datasource

datasource-mappingmySql/datasource-mapping

/defaults /jbosscmp-jdbc

說(shuō)明:datasource-mappingmySql/datasource-mapping在我的Jboss里面是被注釋掉的,但我把拿回來(lái)! 就是把 ----和------ 都刪掉!

五 最后再修改login-config.xml(\server\default\conf目錄下)文件來(lái)使用MySQL:

application-policy name = "MySqlDbRealm"

authentication

login-module code = ".jboss.resource.security.ConfiguredIdentityLoginModule" flag = "required"

module-option name ="principal"wwx/module-option

module-option name ="userName"root/module-option

module-option name ="password"root/module-option

module-option name=managedConnectionFactoryName jboss.jca:service=LocalTxCM,name=MySqlDS

/module-option

/login-module

/authentication

/application-policy

說(shuō)明:這段代碼就直接 copy到login-config.xml里面就ok!不知道往哪放嗎?

嘿嘿,就放在policy 下面吧!

還有就是如果數(shù)據(jù)庫(kù)沒(méi)有密碼!那么就這樣module-option name ="password"/module-option

六 修改了mysql-ds.xml, standardjaws.xml, standardjbosscmp-jdbc.xml,和 login-config.xml 文件就可以在Jboss上使用MySQL了。

七 調(diào)試代碼

在jboss-4.0.2/server/default/deploy下 建個(gè)文件夾 : test.war

里面test.jsp, 代碼如下!

%@pageimport="javax.naming.*"%

%@pageimport="javax.sql.*"%

%@pageimport="java.sql.*"%

%

try {

Context ctx = new InitialContext(); 得到初始化上下文

Object obj = ctx.lookup("java:/MySqlDS");查找連接池

DataSource ds = (DataSource) obj;轉(zhuǎn)換成DataSource

Connection connect = ds.getConnection();從連接池中得到一個(gè)連接

Statement stmt = connect.createStatement();

ResultSet rs = stmt.executeQuery("select * from num");這是你的數(shù)據(jù)庫(kù)的表噢!

while(rs.next()){

out.println(rs.getObject("NO"));取出一個(gè)字段

}

} catch (NamingException e) {

e.printStackTrace();

} catch(SQLException e1){

e1.printStackTrace();

}

out.flush();

out.close();

%

pool連接池mysql驅(qū)動(dòng)如何寫

有兩種方法,一種方法使用mysql的check table和repair table 的sql語(yǔ)句,另一種方法是使用MySQL提供的多個(gè)myisamchk, isamchk數(shù)據(jù)檢測(cè)恢復(fù)工具。前者使用起來(lái)比較簡(jiǎn)便。推薦使用。

1. check table 和 repair table

登陸mysql 終端:

mysql -uxxxxx -p dbname

check table tabTest;

如果出現(xiàn)的結(jié)果說(shuō)Status是OK,則不用修復(fù),如果有Error,可以用:

repair table tabTest;

進(jìn)行修復(fù),修復(fù)之后可以在用check table命令來(lái)進(jìn)行檢查。在新版本的phpMyAdmin里面也可以使用check/repair的功能。

2. myisamchk, isamchk

其中myisamchk適用于MYISAM類型的數(shù)據(jù)表,而isamchk適用于ISAM類型的數(shù)據(jù)表。這兩條命令的主要參數(shù)相同,一般新的系統(tǒng)都使用MYISAM作為缺省的數(shù)據(jù)表類型,這里以myisamchk為例子進(jìn)行說(shuō)明。當(dāng)發(fā)現(xiàn)某個(gè)數(shù)據(jù)表出現(xiàn)問(wèn)題時(shí)可以使用:

myisamchk tablename.MYI

進(jìn)行檢測(cè),如果需要修復(fù)的話,可以使用:

myisamchk -of tablename.MYI

關(guān)于myisamchk的詳細(xì)參數(shù)說(shuō)明,可以參見它的使用幫助。需要注意的時(shí)在進(jìn)行修改時(shí)必須確保MySQL服務(wù)器沒(méi)有訪問(wèn)這個(gè)數(shù)據(jù)表,保險(xiǎn)的情況下是最好在進(jìn)行檢測(cè)時(shí)把MySQL服務(wù)器Shutdown掉。

-----------------------------

另外可以把下面的命令放在你的rc.local里面啟動(dòng)MySQL服務(wù)器前:

[ -x /tmp/mysql.sock ] /pathtochk/myisamchk -of /DATA_DIR/*/*.MYI

其中的/tmp/mysql.sock是MySQL監(jiān)聽的Sock文件位置,對(duì)于使用RPM安裝的用戶應(yīng)該是/var/lib/mysql/mysql.sock,對(duì)于使用源碼安裝則是/tmp/mysql.sock可以根據(jù)自己的實(shí)際情況進(jìn)行變更,而pathtochk則是myisamchk所在的位置,DATA_DIR是你的MySQL數(shù)據(jù)庫(kù)存放的位置。

需要注意的時(shí),如果你打算把這條命令放在你的rc.local里面,必須確認(rèn)在執(zhí)行這條指令時(shí)MySQL服務(wù)器必須沒(méi)有啟動(dòng)!檢測(cè)修復(fù)所有數(shù)據(jù)庫(kù)(表)

MySQL與Redis數(shù)據(jù)庫(kù)連接池介紹(圖示+源碼+代碼演示)

數(shù)據(jù)庫(kù)連接池(Connection pooling)是程序啟動(dòng)時(shí)建立足夠的數(shù)據(jù)庫(kù)連接,并將這些連接組成一個(gè)連接池,由程序動(dòng)態(tài)地對(duì)池中的連接進(jìn)行申請(qǐng),使用,釋放。

簡(jiǎn)單的說(shuō):創(chuàng)建數(shù)據(jù)庫(kù)連接是一個(gè)很耗時(shí)的操作,也容易對(duì)數(shù)據(jù)庫(kù)造成安全隱患。所以,在程序初始化的時(shí)候,集中創(chuàng)建多個(gè)數(shù)據(jù)庫(kù)連接,并把他們集中管理,供程序使用,可以保證較快的數(shù)據(jù)庫(kù)讀寫速度,還更加安全可靠。

不使用數(shù)據(jù)庫(kù)連接池

如果不使用數(shù)據(jù)庫(kù)連接池,對(duì)于每一次SQL操作,都要走一遍下面完整的流程:

1.TCP建立連接的三次握手(客戶端與 MySQL服務(wù)器的連接基于TCP協(xié)議)

2.MySQL認(rèn)證的三次我收

3.真正的SQL執(zhí)行

4.MySQL的關(guān)閉

5.TCP的四次握手關(guān)閉

可以看出來(lái),為了執(zhí)行一條SQL,需要進(jìn)行大量的初始化與關(guān)閉操作

使用數(shù)據(jù)庫(kù)連接池

如果使用數(shù)據(jù)庫(kù)連接池,那么會(huì) 事先申請(qǐng)(初始化)好 相關(guān)的數(shù)據(jù)庫(kù)連接,然后在之后的SQL操作中會(huì)復(fù)用這些數(shù)據(jù)庫(kù)連接,操作結(jié)束之后數(shù)據(jù)庫(kù)也不會(huì)斷開連接,而是將數(shù)據(jù)庫(kù)對(duì)象放回到數(shù)據(jù)庫(kù)連接池中

資源重用:由于數(shù)據(jù)庫(kù)連接得到重用,避免了頻繁的創(chuàng)建、釋放連接引起的性能開銷,在減少系統(tǒng)消耗的基礎(chǔ)上,另一方面也增進(jìn)了系統(tǒng)運(yùn)行環(huán)境的平穩(wěn)性(減少內(nèi)存碎片以及數(shù)據(jù)庫(kù)臨時(shí)進(jìn)程/線程的數(shù)量)。

更快的系統(tǒng)響應(yīng)速度:數(shù)據(jù)庫(kù)連接池在初始化過(guò)程中,往往已經(jīng)創(chuàng)建了若干數(shù)據(jù)庫(kù)連接置于池中備用。 此時(shí)連接的初始化工作均已完成。對(duì)于業(yè)務(wù)請(qǐng)求處理而言,直接利用現(xiàn)有可用連接,避免了從數(shù)據(jù)庫(kù)連接初始化和釋放過(guò)程的開銷,從而縮減了系統(tǒng)整體響應(yīng)時(shí)間。

統(tǒng)一的連接管理,避免數(shù)據(jù)庫(kù)連接泄露:在較為完備的數(shù)據(jù)庫(kù)連接池實(shí)現(xiàn)中,可根據(jù)預(yù)先的連接占用超時(shí)設(shè)定,強(qiáng)制收回被占用連接。從而避免了常規(guī)數(shù)據(jù)庫(kù)連接操作中可能出現(xiàn)的資源泄露。

如果說(shuō)你的服務(wù)器CPU是4核i7的,連接池大小應(yīng)該為((4*2)+1)=9

相關(guān)視頻推薦

90分鐘搞懂?dāng)?shù)據(jù)庫(kù)連接池技術(shù)|linux后臺(tái)開發(fā)

《tcp/ip詳解卷一》: 150行代碼拉開協(xié)議棧實(shí)現(xiàn)的篇章

學(xué)習(xí)地址:C/C++Linux服務(wù)器開發(fā)/后臺(tái)架構(gòu)師【零聲教育】-學(xué)習(xí)視頻教程-騰訊課堂

需要C/C++ Linux服務(wù)器架構(gòu)師學(xué)習(xí)資料加qun 812855908 獲?。ㄙY料包括 C/C++,Linux,golang技術(shù),Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒體,CDN,P2P,K8S,Docker,TCP/IP,協(xié)程,DPDK,ffmpeg 等),免費(fèi)分享

源碼下載

下載方式:(Github中下載)

db_pool目錄下有兩個(gè)目錄,mysql_pool目錄為MySQL連接池代碼,redis_pool為redis連接池代碼

下面介紹mysql_pool

CDBConn解析

概念: 代表一個(gè)數(shù)據(jù)連接對(duì)象實(shí)例

相關(guān)成員:

m_pDBPool:該數(shù)據(jù)庫(kù)連接對(duì)象所屬的數(shù)據(jù)庫(kù)連接池

構(gòu)造函數(shù): 綁定自己所屬于哪個(gè)數(shù)據(jù)庫(kù)連接池

Init()函數(shù): 創(chuàng)建數(shù)據(jù)庫(kù)連接句柄

CDBPool解析

概念:代表一個(gè)數(shù)據(jù)庫(kù)連接池

相關(guān)成員:

Init()函數(shù):常見指定數(shù)量的數(shù)據(jù)庫(kù)實(shí)例句柄,然后添加到m_free_list中,供后面使用

GetDBConn()函數(shù): 用于從空閑隊(duì)列中返回可以使用的數(shù)據(jù)庫(kù)連接句柄

RelDBConn()函數(shù): 程序使用完該數(shù)據(jù)庫(kù)句柄之后,將句柄放回到空閑隊(duì)列中

測(cè)試之前,將代碼中的數(shù)據(jù)庫(kù)地址、端口、賬號(hào)密碼等改為自己的(代碼中有好幾處)

進(jìn)入MySQL, 創(chuàng)建mysql_pool_test數(shù)據(jù)庫(kù)

進(jìn)入到mysql_pool目錄下, 創(chuàng)建一個(gè)build目錄并進(jìn)入 :

然后輸入如下的命令進(jìn)行編譯

之后就會(huì)在目錄下生成如下的可執(zhí)行文件

輸入如下兩條命令進(jìn)行測(cè)試: 可以看到不使用數(shù)據(jù)庫(kù)連接池,整個(gè)操作耗時(shí)4秒左右;使用連接池之后,整個(gè)操作耗時(shí)2秒左右,提升了一倍

源碼下載

下面介紹redis_pool

測(cè)試

進(jìn)入到redis_pool目錄下, 創(chuàng)建一個(gè)build目錄并進(jìn)入 :

然后輸入如下的命令進(jìn)行編譯

之后就會(huì)在目錄下生成如下的可執(zhí)行文件

輸入如下的命令進(jìn)行測(cè)試: 可以看到不使用數(shù)據(jù)庫(kù)連接池,整個(gè)操作耗時(shí)182ms;使用連接池之后,整個(gè)操作耗時(shí)21ms,提升了很多

進(jìn)入redis,可以看到我們新建的key:

mysql 連接池配置有哪些方式

數(shù)據(jù)庫(kù)連接池的主要操作如下: (1)建立數(shù)據(jù)庫(kù)連接池對(duì)象(服務(wù)器啟動(dòng))。 (2)按照事先指定的參數(shù)創(chuàng)建初始數(shù)量的數(shù)據(jù)庫(kù)連接(即:空閑連接數(shù))。 (3)對(duì)于一個(gè)數(shù)據(jù)庫(kù)訪問(wèn)請(qǐng)求,直接從連接池中得到一個(gè)連接。如果數(shù)據(jù)庫(kù)連接池對(duì)象中沒(méi)有空閑


當(dāng)前文章:mysql連接池怎么寫的 mysql連接池是長(zhǎng)連接嗎
URL分享:http://weahome.cn/article/ddejcpj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部