mysql数据库连接池配置教程_mysql数据库教程-查字典教程网
mysql数据库连接池配置教程
mysql数据库连接池配置教程
发布时间:2016-12-29 来源:查字典编辑
摘要:第一步:写javabean复制代码代码如下:packagewithouttears.jdbc.db;importjava.util.Hash...

第一步:写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

复制代码 代码如下:

<>

<Context>

<>

<WatchedResource>WEB-INF/web.xml</WatchedResource>

<WatchedResource>META-INF/context.xml</WatchedResource>

<>

<>

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

<>

<>

</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>

第四步:测试

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新mysql数据库学习
    热门mysql数据库学习
    编程开发子分类