`

Myeclipse中JDBC连接池的配置

 
阅读更多

软件版本myeclispe8.0,自带tomcat6.0.13。

jdbc:mysql-connector-java-5.1.13-bin.jar


第一步:建立工程。

在Myeclipse中file->new->web project。

因为在测试数据源(jsp)时用到了标签库,所以可以在这里选上jsdl支持,当然也可以在工程建好后右键工程文件夹->myeclipse->add JSTL

Libraries…实现同样的功能。


第二步:导入jdbc的jar包。

要直接将mysql-connector-java-3.1.7-bin.jar复制到“工程文件夹/WebRoot/WEB-INF/lib”文件夹下。这时,myeclipse会自动生成一个

Referenced Libraries,不用管。


第三步:建立context.xml文件。

在“工程文件夹/WebRoot/META-INF”下,新建context.xml文件。文件内容如下:


[html] view plaincopy
<?xml version="1.0" encoding="UTF-8"?>
<Context debug="5" reloadable="true">
<Resource
name="jdbc/mysql"
auth="Container"
type="javax.sql.DataSource"
maxActive="100"
maxIdle="30"
maxWait="10000"
username="root"
password=""
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/javatest?autoReconnect=true" />
</Context>

解释:
name="jdbc/mysql" //连接名,jndi中使用。具在JSP中用<sql:query var="rs" dataSource="jdbc/mysql">调用,servlet用 DataSource ds

= (DataSource)ctx.lookup("java:comp/env/jdbc/mysql");调用。这里是tomcat的格式,不同的服务器可能有所不同。

auth="Container"
type="javax.sql.DataSource"
maxActive="100"
maxIdle="30"
maxWait="10000"
username="root" //mysql的用户名
password="" //mysql的用户密码,我这里是空
driverClassName="com.mysql.jdbc.Driver" //驱动类名,一般确定
url="jdbc:mysql://localhost:3306/javatest?autoReconnect=true" //javatest是mysql中要使用的数据库名

第四步:修改web.xml文件。

在web.xml文件中添加以下内容: //重要一定添加进去

<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/mysql</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>

这部分内容一般是确定的。

OK,现在可以测试数据源是否好了。下面是JSP测试文件:

<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%@ taglib uri=" http://java.sun.com/jsp/jstl/sql " prefix="sql" %>
<%@ taglib uri=" http://java.sun.com/jsp/jstl/core " prefix="c" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">

<title>My JSP 'MyJsp.jsp' starting page</title>

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<sql:query var="rs" dataSource="jdbc/mysql">
select id, username, password from user
</sql:query>
</head>

<body>
<h2>Results</h2>

<c:forEach var="row" items="${rs.rows}">
Foo ${row.username}<br/>
Bar ${row.password}<br/>
</c:forEach> <br>
</body>
</html>

当然,如果你用servlet测试数据源也是可以的,下面是一个servlet测试例子:

package fx;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.sql.DataSource;

public class DsTest extends HttpServlet
{

/**
* Constructor of the object.
*/
public DsTest()
{
super();
}

/**
* Destruction of the servlet. <br>
*/
public void destroy()
{
super.destroy(); // Just puts "destroy" string in log
// Put your code here
}

/**
* The doGet method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to get.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{

doPost(request,response);
}

/**
* The doPost method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to post.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{

response.setContentType("text/html");
PrintWriter out = response.getWriter();
out
.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("<HTML>");
out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");
out.println(" <BODY>");
out.print(" This is ");
out.print(this.getClass());
out.println(", using the POST method");
try
{

Context ctx = new InitialContext();
DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/mysql");
Connection conn = ds.getConnection();
ResultSet rs=conn.createStatement().executeQuery("select * from user");
rs.next();
out.print(rs.getString(2));
} catch (NamingException e) {
e.printStackTrace(out);
System.out.println(e.getMessage());
} catch (SQLException e) {
e.printStackTrace(out);
}
out.println("connection pool connected !!haha");
out.println(" </BODY>");
out.println("</HTML>");
out.flush();
out.close();
}

/**
* Initialization of the servlet. <br>
*
* @throws ServletException if an error occurs
*/
public void init() throws ServletException
{
// Put your code here
}

}


我的mysql数据库名为javatest,表名为user,有三列"id","username","password"。servlet运行结果将打印出user表中的第一个用户名。

注意:如果你新建servlet,myeclipse会自动帮你在web.xml中生成相应的mapping,而这部分内容可能“插”进

<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/mysql</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>

中,造成错误。注意自己手动调整。 //要看一下,因为我的好像没有这段代码

别外,注意myeclipse中的servlet映射为“服务器ip:端口/工程文件名/servlet/servlet名”。

还有就是最好使用外部自己配置的Tomcat,并将mysql-connector-java-5.1.13-bin.jar包放到Tomcat的lib目录下。

最好不要用MyEclipse自带的Tomcat,因为我的MyEclipse提示org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot load JDBC driver class 'com.mysql.jdbc.Driver'

即Tomcat出现异常,找不到jdbc驱动包



分享到:
评论

相关推荐

    Tomcat6.0+MyEclipse6.0+mysql5.0数据库连接池配置!.pdf

    3. `maxIdle`属性定义了连接池中最大的空闲连接数,应根据实际业务峰值和非峰值时段来平衡设置。 4. `maxWait`属性表示获取连接时最大等待时间,单位为毫秒。-1表示无限等待,需要注意设置合理以免影响用户体验。 5....

    MyEclipse实现JDBC数据库连接

    在MyEclipse中配置这些连接池也很简单,通常只需在项目中引入相应的库,并在配置文件(如`context.xml`或`persistence.xml`)中设置相应的属性。 总结,MyEclipse通过集成JDBC提供了一种直观的方式连接数据库,进行...

    MyEclipse链接oracle连接池的创建

    总结来说,创建MyEclipse连接Oracle的连接池主要涉及两个步骤:一是将Oracle JDBC驱动添加到Tomcat的类路径,二是配置Tomcat的`context.xml`文件定义数据源。在Java代码中,通过JNDI查找并使用这个数据源来获取...

    使用连接池技术时的配置

    * maxActive:指定数据库连接池中处于活动状态的数据库连接的最大数目。 * maxIdle:指定数据库连接池中处于空闲状态的数据库连接的最大数目。 * maxWait:指定数据库连接池中的数据库连接处于空闲状态的最长时间。 ...

    MyEclipse配置数据源

    本文将详细解析如何在MyEclipse环境中配置数据源,以实现与数据库的有效交互,主要聚焦于使用Microsoft SQL Server作为数据库服务器的情况。 ### 一、理解数据源(DataSource)概念 数据源(DataSource)是Java...

    MyEclipse8与sql2008链接池配置安装图解

    本文将详细介绍如何在 MyEclipse 8.6 中配置连接池以实现与 SQL Server 2008 的稳定连接。连接池技术是提高应用程序性能的关键之一,尤其在处理大量并发请求时更为显著。通过本文,读者可以了解到配置连接池的全部...

    jdbc数据库连接池

    在给定的文件中,提到了如何在Tomcat服务器下配置JDBC连接池,包括MySQL和Oracle数据库。以下是对这一过程的详细解析: 1. **添加数据库驱动**: - 将MySQL或Oracle的驱动包放置于Tomcat的lib目录下,确保服务器...

    WebLogic 11g配置数据库连接池

    #### 三、在MyEclipse中配置WebLogic 11g数据库连接池 ##### 1. 集成数据库驱动至MyEclipse 在MyEclipse的服务器配置界面中,找到WebLogic 10.x服务器,通过“Add JAR/ZIP”功能添加数据库的JDBC驱动至服务器的...

    Tomcat6.0+MyEclipse6.0+mysql5.0数据库连接池配置![参考].pdf

    总之,配置Tomcat 6.0、MyEclipse 6.0和MySQL 5.0的数据连接池涉及的主要知识点包括:Tomcat的`context.xml`配置、`web.xml`的资源引用、JNDI查找以及MySQL JDBC驱动的添加。正确配置后,应用程序将能高效地管理和...

    基于ssh的proxool连接池配置

    3. `url`属性的值`proxool.DbPool`是数据库连接池的别名,这个别名必须与`proxool.xml`配置文件中的`Alias`一致,以便Proxool知道如何创建和管理连接。 4. `LocalSessionFactoryBean`是Hibernate的配置,用于创建...

    Myeclipse上的WebSphere6.1配置和部署以及数据库池的配置

    相比于tomcat的项目部署,websphere中项目的部署还是还是很不一样的,本文档中图文并茂地讲述了,在Myeclipse中如何配置websphere以及如何部署web程序 另外,还详细讲解了如何在websphere中配置数据库连接池

    myeclipse下的servlet+jsp+JDBC

    在MyEclipse项目中,可以配置数据库连接池,创建JDBC连接,执行查询、插入、更新和删除操作。JDBC驱动分为四种类型,从JDBC 4.0开始,通常使用Type 4驱动,即纯Java的非阻塞网络驱动,直接与数据库通信。 在这个...

    连接池配置说明1

    本文将详细介绍如何在MyEclipse环境中配置DBCP连接池。 首先,我们需要准备必要的库文件。DBCP连接池依赖于几个Apache Commons组件以及SQL Server的驱动,具体包括: 1. `commons-collections4-4.0.jar`:提供集合...

    Tomcat6.0+MyEclipse6.0+mysql5.0数据库连接池配置![借鉴].pdf

    在本文中,我们将详细探讨如何配置Tomcat 6.0、MyEclipse 6.0以及MySQL 5.0的数据库连接池。首先,我们理解这个配置过程的重要性,因为一个有效的数据库连接池管理能提高应用的性能和资源利用效率。 **配置步骤** ...

    java连接池(mssql,db2,oracle,mysql)

    通过上述步骤,我们可以在MyEclipse环境下成功地配置并使用JDBC连接池来连接MSSQL、DB2、Oracle和MySQL等不同类型的数据库。连接池的使用不仅提高了程序的运行效率,还简化了数据库连接管理的工作量,是现代Java应用...

    jdbc连接oracle数据库两种方式源代码(myeclipse10.0版本)

    完全自己制作演示,有csdn博客详解,两种jdbc连接池方式,附带mysql、sqlserver连接配置注释,方便学习。欢迎下载,csdn博客地址https://mp.csdn.net/mdeditor/85070892

Global site tag (gtag.js) - Google Analytics