tomcat项目中配置数据库连接池


 

 1、 在项目中新建context.xml文件,不要在tomcat服务器的目录中修改context.xml(会对整个服务器生效)。。   在web项目的META-INF中存放context.xml

          

 2、在文件进行配置:::      配置数据库连接池的技术

 1 <?xml version='1.0' encoding='utf-8'?>
 2 <Context>
 3     <Resource  4         driverClassName="com.mysql.jdbc.Driver" mysql驱动包
 5         url="jdbc:mysql://localhost:3306/ssm" 连接
 6         username="root"               账号
 7         password="362222"              密码
 8         maxActive="50"               最大连接数量
 9         maxIdle="10"                等待连接的数量
10         name="test"                连接池的名称
11         auth="Container"          谁来管理(Container是tomcat服务器)
12         maxWait="10000"            超过10秒连接不上就报异常
13         type="javax.sql.DataSource" 这是java中专门的为连接数据库创建的类型
14     />
15 </Context>

  3、通过连接池进行连接,获取连接对象

 1 package com.bjsxt.servlet;  2 
 3 import java.io.IOException;  4 import java.io.PrintWriter;  5 import java.sql.Connection;  6 import java.sql.PreparedStatement;  7 import java.sql.ResultSet;  8 import java.sql.SQLException;  9 
10 import javax.naming.Context; 11 import javax.naming.InitialContext; 12 import javax.naming.NamingException; 13 import javax.servlet.ServletException; 14 import javax.servlet.annotation.WebServlet; 15 import javax.servlet.http.HttpServlet; 16 import javax.servlet.http.HttpServletRequest; 17 import javax.servlet.http.HttpServletResponse; 18 import javax.sql.DataSource; 19 @WebServlet("/test") 20 public class DemoServlet extends HttpServlet{ 21  @Override 22     protected void service(HttpServletRequest req, HttpServletResponse resp) 23  throws ServletException, IOException { 24         try { 25             Context cxt=new InitialContext();   Context是上下文接口 context.xml文件对象类型 26             DataSource ds = (DataSource) cxt.lookup("java:comp/env/test");本地数据库环境 (java:comp/env/这是固定字符串) test是自配置的连接池 27              Connection conn = ds.getConnection();            25-27行是JNDI代码 28              PreparedStatement ps=conn.prepareStatement("select * from flower"); 29              resp.setContentType("text/html;charset=utf-8"); 30              ResultSet rs=ps.executeQuery(); 31              PrintWriter out = resp.getWriter(); 32              while(rs.next()){ 33                  out.print(rs.getInt(1)+"&nbsp;&nbsp;&nbsp;"+rs.getString(2)); 34  } 35              out.flush(); 36              out.close();    当关闭连接对象时,把连接对象归还给数据库连接池,把状态改变成idle 37                              并不是关闭
38         } catch (NamingException e) { 39             // TODO Auto-generated catch block
40  e.printStackTrace(); 41         } catch (SQLException e) { 42             // TODO Auto-generated catch block
43  e.printStackTrace(); 44  } 45         
46  } 47 }

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM