JDBC连接池

配置Tomcat的conf/context.xml文件:

<WatchedResource>WEB-INF/web.xml</WatchedResource>

<!--<Environment name="root" value="root" type="java.lang.String"></Environment>-->

<!--<Environment name="JNDITest" value="JNDITestDemo" type="java.lang.String"></Environment>-->

<Resource 

driverClassName="com.mysql.jdbc.Driver" 

name="news" 

auth="Container" 

type="javax.sql.DataSource" 

maxActive="100" 

maxIdle="30"     

maxWait="10000" 

username="root" 

password="root"

url="jdbc:mysql://localhost:3306/news?useUnicode=true&amp;characterEncoding=GBK">

</Resource>

项目里配置web.xml:

<resource-ref>

   <res-ref-name>news</res-ref-name>    //对应上面的name

    <res-type>javax.sql.DataSource</res-type>    //对应上面的type

    <res-auth>Container</res-auth>    //对应上面的auth

  </resource-ref>


编写:

import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;


import javax.naming.Context;

import javax.naming.InitialContext;

import javax.naming.NamingException;

import javax.sql.DataSource;



public class BasePoolDao {

Connection con;

PreparedStatement ps;

ResultSet rs;

public void getConnetion(){

try {

//获得对数据源的引用: 

Context context=new InitialContext();

//java:comp/env/是java中JNDI固定写法,后面跟库名。

DataSource ds=(DataSource) context.lookup("java:comp/env/news");

//获得数据库连接对象: 

con=ds.getConnection();

ps=con.prepareStatement("select * from news");

rs=ps.executeQuery();

while(rs.next()){

System.out.println(rs.getString("NewTitle"));

}

} catch (NamingException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}finally{

close();

}

}

  //关闭连接

  public void close(){

  try {

  if(rs!=null)

  rs.close();

  if(ps!=null)

  ps.close();

  if(con!=null)

con.close();

} catch (SQLException e) {

e.printStackTrace();

}

  }

}

测试只能在Tomcat里面测试,不能在application里面测试。

在jsp里编写测试代码:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>

<%@page import="java.sql.*"%> 

<%@page import="javax.naming.*"%> 

<%@page import="javax.sql.DataSource"%> 

<%

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 'index.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">

-->

  </head>

  

  <body>


    <% 

try { 

Context ctx = new InitialContext(); 

DataSource ds = (DataSource) ctx.lookup("java:/comp/env/news"); 

Connection conn = ds.getConnection(); 

out.println(conn); 

conn.close(); 

} catch (NamingException e) { 

e.printStackTrace(); 

} catch (SQLException e) { 

         e.printStackTrace(); 

%> 

  </body>

</html>









  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值