最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

mysql數(shù)據(jù)庫(kù)連接池配置教程

 更新時(shí)間:2012年11月26日 10:29:28   作者:  
在與數(shù)據(jù)庫(kù)進(jìn)行連接的時(shí)候,會(huì)牽扯到數(shù)據(jù)庫(kù)連接池的配置,本文將詳細(xì)介紹mysql數(shù)據(jù)庫(kù)連接池配置,需要了解跟多的朋友可以參考下
第一步:寫javabean
復(fù)制代碼 代碼如下:

package withouttears.jdbc.db;
import java.util.HashMap;
import java.sql.*;
//JNDI有兩個(gè)核心接口Context和DirContext,
//Context中包含了基本的名字操作,而DirContext則將這些操作擴(kuò)展到目錄服務(wù)。
import javax.naming.Context;
import javax.naming.InitialContext;
//數(shù)據(jù)庫(kù)資源的連接工廠是javax.sql.DataSource對(duì)象,
//它可以創(chuàng)建java.sql.Connection數(shù)據(jù)庫(kù)連接對(duì)象。
import javax.sql.DataSource;
//目前您可以從Java開發(fā)者連接(http://java.sun.com/products/jdbc/download.html#rowsetcobundle1_0)
//下載CachedRowSet的實(shí)現(xiàn)。下載并解壓縮安裝文件后,將"rowset.jar"文件放到您的類目錄下。
//CachedRowSet在sun.jdbc.rowset包中。
import sun.jdbc.rowset.CachedRowSet;
/**
* 作者:wiThouTTears
* 時(shí)間:2006-12-13
* */
public class Database {
/**************************************************************/
/* 函數(shù):localhost
* 功能:建立連接池
* */
private static DataSource localhost(){
DataSource ds=null;
//在HashMap中通過(guò)get()來(lái)獲取value,通過(guò)put()來(lái)插入value,
//ContainsKey()則用來(lái)檢驗(yàn)對(duì)象是否已經(jīng)存在
HashMap<Object,Object> cachedDs=new HashMap<Object,Object> ();
if(cachedDs.containsKey("ds"))//取出空閑狀態(tài)的數(shù)據(jù)庫(kù)連接
{
/* 在DataSource中事先建立了多個(gè)數(shù)據(jù)庫(kù)連接,
* 這些數(shù)據(jù)庫(kù)連接保存在連接池(Connect Pool)中。
* Java程序訪問(wèn)數(shù)據(jù)庫(kù)時(shí),只需要從連接池中取出空閑狀態(tài)的數(shù)據(jù)庫(kù)連接;
* 當(dāng)程序訪問(wèn)數(shù)據(jù)庫(kù)結(jié)束,再將數(shù)據(jù)庫(kù)連接放回連接池。
* */
ds = (DataSource)cachedDs.get("ds");
}
else
try
{
/*在javax.naming包中提供了Context接口,
* 該接口提供了將對(duì)象和名字綁定,以及通過(guò)名字檢索對(duì)象的方法。
* */
Context initCtx = new InitialContext();
//lookup(String name):返回與指定的名字綁定的對(duì)象,獲得數(shù)據(jù)庫(kù)連接工廠
ds = (DataSource)initCtx.lookup("java:comp/env/jdbc/testdb");
cachedDs.put("ds", ds);
}
catch(Exception e)
{
e.printStackTrace();
}
return ds;
}
/**************************************************************/
/* 函數(shù):getConnection
* 功能:庫(kù)的連接
* */
private static Connection getConnection(){
Connection conn = null;
try
{
DataSource ds = localhost();
conn = ds.getConnection();
}
catch(Exception e)
{
e.printStackTrace();
}
return conn;
}
/**************************************************************/
/* 函數(shù):close
* 功能:關(guān)閉連接
* */
private static void close(Connection conn)
{
try
{
if(conn != null)
conn.close();
}
catch(SQLException e)
{
e.printStackTrace();
}
}
/**************************************************************/
/* 函數(shù):executeQuery
* 功能:數(shù)據(jù)查詢
* */
public static CachedRowSet executeQuery(String sql)
{
Connection conn=null;
CachedRowSet rs=null;
try{
rs=new CachedRowSet();
conn=getConnection();
Statement stmt=conn.createStatement();
ResultSet rs1=stmt.executeQuery(sql);
rs.populate(rs1);
}
catch(Exception e)
{
//System.out.println(e.toString());
}
finally{
try
{
conn.close();
}
catch(Exception ex)
{}
} return rs;
}
/**************************************************************/
/* 函數(shù):executeUpdate
* 功能:數(shù)據(jù)更新(添加/更改/刪除)
* */
public static boolean executeUpdate(String sql)
{
boolean bl;
bl = false;
Connection conn = getConnection();
try
{
Statement stmt = conn.createStatement();
if(stmt.executeUpdate(sql) > 0)
stmt.close();
bl = true;
}
catch(SQLException e)
{
}
finally
{
close(conn);
}
return bl;
}
/**************************************************************/
}

編譯得到withouttears/db/Database.class并放到E:/MyWorkSpace/test/WEB-INF/classes下,即E:/MyWorkSpace/test/WEB-INF/classes/withouttears/db/Database.class,注意別弄錯(cuò)了。
第二步:配置Tomcat(我用是Tomcat 5.5.7)
1. 在C:/Program Files/Tomcat 5.5.7/conf/Catalina/localhost下新建一個(gè)test.xml,內(nèi)容如下: <Context docBase="E:/MyWorkSpace/test" path="/test"></Context>
注:docBase為你的web文件所在地,我用的是E:/MyWorkSpace/test。path可寫可不寫,但在Linux下必須寫上,Windows下不寫我測(cè)試可以用,最好寫上。這里的test.xml指定的文件夾不像我們平時(shí)用的那樣在C:/Program Files/Tomcat 5.5.7/webapps/test,不過(guò)目的一樣都是表示用http://localhost:8080/test/來(lái)訪問(wèn),相當(dāng)于IIS下的虛擬目錄,可以是任意的。
2. 在C:/Program Files/Tomcat 5.5.7/conf/下建立context.xml,在E:/MyWorkSpace/test下新建WEB-INF/web.xml。
context.xml
復(fù)制代碼 代碼如下:

<!-- The contents of this file will be loaded for each web application -->
<Context>
<!-- Default set of monitored resources -->
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<WatchedResource>META-INF/context.xml</WatchedResource>
<!-- Uncomment this to disable session persistence across Tomcat restarts -->
<!--
<Manager pathname="" />
-->
<Resource name="jdbc/testdb"
auth="Container"
type="javax.sql.DataSource"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost/mytestdb"
username="root"
password="157744375"
maxActive="100"
maxIdle="30"
maxWait="10000"
/>
</Context>

注: 鏈接池配置文件,這樣我們就可以用第一步寫的Javabean類Database中的localhost()函數(shù)來(lái)讀取這個(gè)content.xml中的jdbc/testdb名稱
web.xml
復(fù)制代碼 代碼如下:

<?xml version="1.0" encoding="gbk"?>
<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>
test</display-name>
<welcome-file-list>
<welcome-file>test.jsp</welcome-file>
</welcome-file-list>
<!-- JSPC servlet mappings start -->
<!-- JSPC servlet mappings end -->
</web-app>

注: web.xml放web的默認(rèn)主頁(yè)(如:test.jsp或者index.jsp)和程序中要用到servlet的映射,不管它我們這里用不到。
第三步:寫test.jsp
復(fù)制代碼 代碼如下:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@page import="java.sql.*"%>
<%@page import="withouttears.jdbc.db.*"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk">
<title>Insert title</title>
</head>
<body>
<%
String sql=null;
sql="select * from table_test";
ResultSet rs=Database.executeQuery(sql);
try{
while(rs.next()){
%>
姓名:<%=rs.getString("name")%><br>
電話:<%=rs.getString("mobile")%><br>
<%}}catch(Exception e){} %>
</body>
</html>

第四步:測(cè)試

相關(guān)文章

  • MySQL安全設(shè)置圖文教程

    MySQL安全設(shè)置圖文教程

    MySQL安全設(shè)置,跟mssql差不多都是以普通用戶權(quán)限運(yùn)行mysql。其它的也需要注意下。
    2011-01-01
  • Mysql按條件計(jì)數(shù)多種實(shí)現(xiàn)方法詳解

    Mysql按條件計(jì)數(shù)多種實(shí)現(xiàn)方法詳解

    這篇文章主要介紹了Mysql按條件計(jì)數(shù)多種實(shí)現(xiàn)方法詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • 詳解MySQL插入和查詢數(shù)據(jù)的相關(guān)命令及語(yǔ)句使用

    詳解MySQL插入和查詢數(shù)據(jù)的相關(guān)命令及語(yǔ)句使用

    這篇文章主要介紹了MySQL插入和查詢數(shù)據(jù)的相關(guān)命令及語(yǔ)句使用,包括相關(guān)的PHP腳本操作方法講解也很詳細(xì),需要的朋友可以參考下
    2015-11-11
  • mysql創(chuàng)建存儲(chǔ)的全過(guò)程

    mysql創(chuàng)建存儲(chǔ)的全過(guò)程

    MySQL中沒(méi)有直接的FOR循環(huán)語(yǔ)句,可通過(guò)存儲(chǔ)過(guò)程實(shí)現(xiàn)循環(huán)執(zhí)行SQL,需替換表名和列名,存儲(chǔ)過(guò)程示例將1到10插入表中,執(zhí)行和刪除存儲(chǔ)過(guò)程需特定命令
    2024-11-11
  • Mysql分組查詢每組最新的一條數(shù)據(jù)的五種實(shí)現(xiàn)方法

    Mysql分組查詢每組最新的一條數(shù)據(jù)的五種實(shí)現(xiàn)方法

    在寫報(bào)表功能時(shí)遇到一個(gè)需要根據(jù)用戶id分組查詢最新一條錢包明細(xì)數(shù)據(jù)的需求,本文主要介紹了Mysql分組查詢每組最新的一條數(shù)據(jù)的五種實(shí)現(xiàn)方法,感興趣的可以了解一下
    2024-08-08
  • mysql全面解析json/數(shù)組

    mysql全面解析json/數(shù)組

    這篇文章主要介紹了mysql全面解析json/數(shù)組,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • mysql中日期的加減 date_add()、date_sub() 函數(shù)及用法小結(jié)

    mysql中日期的加減 date_add()、date_sub() 函數(shù)及用法小結(jié)

    在Mysql中,date_add與date_sub分別是指對(duì)于日期的一個(gè)加減操作,date_add是指從日期中加上指定的時(shí)間間隔,date_sub是指從日期中減去指定的時(shí)間間隔,本文通過(guò)實(shí)例講解mysql中日期的加減 date_add()、date_sub() 函數(shù)及用法小結(jié),感興趣的朋友一起看看吧
    2023-11-11
  • MySQL collation方法

    MySQL collation方法

    在以前用oracle的時(shí)候,很少關(guān)于它的collation方法,但是在mysql中,這點(diǎn)不加注意的話,卻有可能會(huì)出現(xiàn)問(wèn)題。
    2008-10-10
  • dmysql自己封裝的mysql庫(kù)

    dmysql自己封裝的mysql庫(kù)

    dmysql自己封裝的mysql庫(kù)...
    2007-07-07
  • 深入分析MySQL 的備份和恢復(fù)機(jī)制

    深入分析MySQL 的備份和恢復(fù)機(jī)制

    備份對(duì)于數(shù)據(jù)庫(kù)來(lái)說(shuō)是相當(dāng)重要的工作。如果數(shù)據(jù)庫(kù)在使用過(guò)程中出現(xiàn)了問(wèn)題,比如系統(tǒng)崩潰、硬件故障或錯(cuò)誤的刪除了數(shù)據(jù)。這時(shí),如果我們進(jìn)行了數(shù)據(jù)備份,就能比較方便的使數(shù)據(jù)庫(kù)恢復(fù)工作,并使我們的數(shù)據(jù)損失到最小。下面我們來(lái)詳細(xì)探討下數(shù)據(jù)庫(kù)的備份與恢復(fù)。
    2016-11-11

最新評(píng)論

巩义市| 龙里县| 赞皇县| 上饶县| 五家渠市| 黎川县| 白朗县| 星子县| 九龙坡区| 北川| 南宁市| 宁城县| 商水县| 深州市| 六安市| 民乐县| 德州市| 青龙| 临漳县| 容城县| 汝阳县| 娄底市| 饶平县| 广昌县| 榆社县| 临漳县| 新宁县| 巫山县| 绍兴市| 宜兴市| 琼中| 江陵县| 兴和县| 阿瓦提县| 安仁县| 枝江市| 循化| 资源县| 木兰县| 攀枝花市| 永丰县|