≡
  • 网络编程
  • 数据库
  • CMS技巧
  • 软件编程
  • PHP笔记
  • JavaScript
  • MySQL
位置:首页 > 数据库 > MySQL

MySQL数据库连接池配置教程

人气:332 时间:2020-07-09

这篇文章主要为大家详细介绍了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> 

第四步:测试

本文来自:http://www.q1010.com/177/10145-0.html

注:关于MySQL数据库连接池配置教程的内容就先介绍到这里,更多相关文章的可以留意四海网的其他信息。

关键词:MYSQL

您可能感兴趣的文章

  • MySQL 添加索引 MySQL 如何创建索引
  • Ubuntu10下如何搭建MySQL Proxy读写分离探讨
  • MySQL中的Load data的使用方法
  • MySQL学习笔记4:完整性约束限制字段
  • MySQL 事务处理及表锁定深入简析
  • MySQL表的七种类型详细介绍
  • MySQL数据库优化需要遵守的原则
  • MySQL学习笔记5:修改表(alter table)
  • MySQL日志文件在哪 如何修改MySQL日志文件位置
  • MySQL截取函数常用方法使用说明
上一篇:MySQL导出导入中文表解决方法
下一篇:Ubuntu10下如何搭建MySQL Proxy读写分离探讨
热门文章
  • mysql 修改character_set_server为utf-8的简单示例
  • 解决MySQL丢失文件localhost.localdomain.pid、mysql.sock的示例
  • MySQL 数据类型binary和varbinary的简单示例
  • MySQL:reading initial communication packet问题解决方法
  • MySql 表类型MYISAM、InnoDB区别
  • bash: mysql: command not found 的解决方法
  • MYSQL默认用户名ROOT修改方法
  • MySQL 常用命令菜鸟教程
  • MySQL 使用命令行新建用户并授予权限
  • MySql 数据库物理文件存放位置查看示例
  • 最新文章
    • MySQL查看死锁与解除死锁的简单示例
    • MySQL 慢查询的功能实例
    • MySQL查看死锁与去除死锁的简单示例
    • MySQL找出未提交事务的SQL的简单示例
    • MySQL锁阻塞的的简单示例
    • MySQL中的binary类型使用操作的示例
    • SQL优化教程之in与range查询的简单示例
    • MySQL 的 21 个规范、优化最佳实践!
    • MySQL 字符类型大小写敏感的简单示例
    • 解决mybatis-plus分页传入参数后sql where条件没有limit分页信息的问题

四海网收集整理一些常用的php代码,JS代码,数据库mysql等技术文章。