学习java,挺好玩的呢

 

 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 }

 

posted on 2018-12-03 09:48  axu521  阅读(2102)  评论(0编辑  收藏  举报

<