server.xml: <Contextpath="/dao" docBase="E:\eclipsedemo\DAOProject\WebRoot" debug="5"reloadable="true" crossContext="true"> <Resourcename="jdbc/oracle" auth="Container"type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="scott" password="tiger" driverClassName="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@localhost:1521:MLDN"/> </Context>
<resource-ref> <description>DBConnection</description> <res-ref-name>jdbc/oracle</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref>
<%@ page language="java" import="java.util.*"pageEncoding="ISO-8859-1"%> <%@ pageimport="java.sql.*,javax.sql.*,javax.naming.*"%> <html> <head> <title>MyJSP ‘MyJsp.jsp‘ startingpage</title> </head> <body> <% Context ctx = newInitialContext() ; DataSource ds =(DataSource)ctx.lookup("jdbc/oracle") ; Connection conn =ds.getConnection() ; %> <%=conn%> <% conn.close() ; %> </body> </html>
<% Context ctx = newInitialContext() ; DataSource ds =(DataSource)ctx.lookup("java:comp/env/jdbc/oracle") ; Connection conn =ds.getConnection() ; %> <%=conn%> <% conn.close() ; %>
package org.lxh.oracle.dbc; import java.sql.Connection; import java.sql.SQLException; import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingException; import javax.sql.DataSource; public class DataBaseConnection { private static final String JNDINAME ="java:comp/env/jdbc/oracle"; private Connection conn = null; public DataBaseConnection() { try { Context ctx =new InitialContext(); DataSource ds= (DataSource) ctx.lookup(JNDINAME); conn =ds.getConnection(); } catch (NamingException e){ e.printStackTrace(); } catch (SQLException e){ e.printStackTrace(); } } public Connection getConnection() { return this.conn; } public void close() { if (this.conn != null) { //如果不为空,则表示数据库已经打开了 try { this.conn.close(); } catch(SQLException e) { //TODO Auto-generated catch block e.printStackTrace(); } } } }
原文:http://blog.csdn.net/cuiwjava/article/details/20202859