现在的位置: 首页 > 数据库 > 正文

tomcat配置数据库连接池

2017年04月15日 数据库 ⁄ 共 2094字 ⁄ 字号 评论关闭

        闲着没事复习了以前的笔记,看到了tomcat配置数据库连接池,感觉这个地方没什么太多的印象,查了一下百度,发现都差不太多,都需要配置三个地方,觉得太麻烦了,于是直接查了一下tomcat帮助文档,发现里面本身就有关于配置连接池的介绍,于是手动配置了一下,发现没什么大问题,顺便写篇博客记录一下,方便以后查阅:

新建一个测试项目,由于以前复习过,于是命名项目为:Lesson05_DataSource

一、在context.xml文件中加入如下代码(红颜色是需要加入的):

在<context></context>标签冲加入:

<Context path="/Lesson05_DataSource" docBase="Lesson05_DataSource"
        debug="5" reloadable="true" crossContext="true">

<Resource name="jdbc/Lesson05_DataSource" auth="Container" type="javax.sql.DataSource"
               maxActive="50" maxIdle="10" maxWait="200"
               username="root" password="123456" driverClassName="com.mysql.jdbc.Driver"
               url="jdbc:mysql://localhost:3306/test"/>

二、在Lesson05_DataSource测试项目的web.xml中加入如下配置:

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

到此处为止配置基本上就完成了,下面是测试配置是否成功:

1.写一个连接数据库的Servlet,命名为Demo01,以下是源代码

import java.io.*;
import java.sql.*;
import javax.naming.*;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.sql.*;
public class Demo01 extends HttpServlet{
	@Override
	public void doGet(HttpServletRequest request,HttpServletResponse response) 
			throws IOException ,ServletException{
		//数据库连接池
		try {
			Context ctx=new InitialContext();
			DataSource ds=(DataSource)ctx.lookup("java:comp/env/jdbc/Lesson05_DataSource");
			Connection conn=ds.getConnection();
			System.out.println("数据库连接成功!");
			PreparedStatement ps=conn.prepareStatement("select * from users");
			ResultSet rs=ps.executeQuery();
			while(rs.next()){
				System.out.println("ID="+rs.getInt("id"));
				System.out.println("username="+rs.getString("username"));
			}
			rs.close();
			ps.close();
			conn.close();
		} catch (NamingException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		request.getRequestDispatcher("index.jsp").forward(request, response);
	}
	
	@Override 
	public void doPost(HttpServletRequest request,HttpServletResponse response)
			throws IOException,ServletException{
		this.doGet(request,response);
	}
}

将Demo01的Servlet在web.xml中配置好之后,访问:http://localhost:8080/Lesson05_DataSource/Demo01

后台打印:

数据库连接成功!
ID=1
username=zizhu

OK,测试完成,数据取出来了

有时候对一个知识点不懂可以不急着查百度,谷歌之类的,甚至可以直接查官方的API,帮助文档之类的,甚至比百度上的更简单

抱歉!评论已关闭.