闲着没事复习了以前的笔记,看到了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,帮助文档之类的,甚至比百度上的更简单