程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> mysql數據庫銜接池設置裝備擺設教程

mysql數據庫銜接池設置裝備擺設教程

編輯:MySQL綜合教程

mysql數據庫銜接池設置裝備擺設教程。本站提示廣大學習愛好者:(mysql數據庫銜接池設置裝備擺設教程)文章只能為提供參考,不一定能成為您想要的結果。以下是mysql數據庫銜接池設置裝備擺設教程正文


第一步:寫javabean

package withouttears.jdbc.db;
import java.util.HashMap;
import java.sql.*;
//JNDI有兩個焦點接口Context和DirContext,
//Context中包括了根本的名字操作,而DirContext則將這些操作擴大到目次辦事。
import javax.naming.Context;
import javax.naming.InitialContext;
//數據庫資本的銜接工場是javax.sql.DataSource對象,
//它可以創立java.sql.Connection數據庫銜接對象。
import javax.sql.DataSource;
//今朝您可以從Java開辟者銜接(http://java.sun.com/products/jdbc/download.html#rowsetcobundle1_0)
//下載CachedRowSet的完成。下載並解緊縮裝置文件後,將"rowset.jar"文件放到您的類目次下。
//CachedRowSet在sun.jdbc.rowset包中。
import sun.jdbc.rowset.CachedRowSet;
/**
* 作者:wiThouTTears
* 時光:2006-12-13
* */
public class Database {
/**************************************************************/
/* 函數:localhost
* 功效:樹立銜接池
* */
private static DataSource localhost(){
DataSource ds=null;
//在HashMap中經由過程get()來獲得value,經由過程put()來拔出value,
//ContainsKey()則用來磨練對象能否曾經存在
HashMap<Object,Object> cachedDs=new HashMap<Object,Object> ();
if(cachedDs.containsKey("ds"))//掏出余暇狀況的數據庫銜接
{
/* 在DataSource中事前樹立了多個數據庫銜接,
* 這些數據庫銜接保留在銜接池(Connect Pool)中。
* Java法式拜訪數據庫時,只須要從銜接池中掏出余暇狀況的數據庫銜接;
* 當法式拜訪數據庫停止,再將數據庫銜接放回銜接池。
* */
ds = (DataSource)cachedDs.get("ds");
}
else
try
{
/*在javax.naming包中供給了Context接口,
* 該接口供給了將對象和名字綁定,和經由過程名字檢索對象的辦法。
* */
Context initCtx = new InitialContext();
//lookup(String name):前往與指定的名字綁定的對象,取得數據庫銜接工場
ds = (DataSource)initCtx.lookup("java:comp/env/jdbc/testdb");
cachedDs.put("ds", ds);
}
catch(Exception e)
{
e.printStackTrace();
}
return ds;
}
/**************************************************************/
/* 函數:getConnection
* 功效:庫的銜接
* */
private static Connection getConnection(){
Connection conn = null;
try
{
DataSource ds = localhost();
conn = ds.getConnection();
}
catch(Exception e)
{
e.printStackTrace();
}
return conn;
}
/**************************************************************/
/* 函數:close
* 功效:封閉銜接
* */
private static void close(Connection conn)
{
try
{
if(conn != null)
conn.close();
}
catch(SQLException e)
{
e.printStackTrace();
}
}
/**************************************************************/
/* 函數:executeQuery
* 功效:數據查詢
* */
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;
}
/**************************************************************/
/* 函數:executeUpdate
* 功效:數據更新(添加/更改/刪除)
* */
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,留意別弄錯了。
第二步:設置裝備擺設Tomcat(我用是Tomcat 5.5.7)
1. 在C:/Program Files/Tomcat 5.5.7/conf/Catalina/localhost下新建一個test.xml,內容以下: <Context docBase="E:/MyWorkSpace/test" path="/test"></Context>
注:docBase為你的web文件地點地,我用的是E:/MyWorkSpace/test。path可寫可不寫,但在Linux下必需寫上,Windows下不寫我測試可以用,最好寫上。這裡的test.xml指定的文件夾不像我們日常平凡用的那樣在C:/Program Files/Tomcat 5.5.7/webapps/test,不外目標一樣都是表現用http://localhost:8080/test/來拜訪,相當於IIS下的虛擬目次,可所以隨意率性的。
2. 在C:/Program Files/Tomcat 5.5.7/conf/下樹立context.xml,在E:/MyWorkSpace/test下新建WEB-INF/web.xml。
context.xml

<!-- 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()函數來讀取這個content.xml中的jdbc/testdb稱號
web.xml

<?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的默許主頁(如:test.jsp或許index.jsp)和法式中要用到servlet的映照,不論它我們這裡用不到。
第三步:寫test.jsp

<%@ 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>

第四步:測試
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved