package common; import java.sql.Connection; import java.sql.SQLException; import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingException; import javax.sql.DataSource; /** * 通过JNDI获取数据源 * * @author 周尚武 时间:2008年12月8日22:37:09 */ public class DBConnection { /** * 通过JNDI获取数据源在获取连接对象 * * @return Connection con */ public static Connection getCon(){ Connection con = null; try { Context ic = new InitialContext(); DataSource source = (DataSource)ic.lookup("java:comp/env/jdbc/books"); con = source.getConnection(); } catch (NamingException e) { System.out.println("数据源没找到!"); e.printStackTrace(); } catch (SQLException e) { System.out.println("获取数连接对象失败!"); e.printStackTrace(); } return con; } } JNDI的配置: 1.context.xml文件的配置: <Resource name="jdbc/books" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="sa" password="123" driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver" url="jdbc:sqlserver://localhost:1433;databasename=books"/> 2.web.xml文件的配置: <resource-ref> <res-ref-name> jdbc/books </res-ref-name> <res-type> javax.sql.DataSource </res-type> <res-auth> Container </res-auth> </resource-ref> 3.添加数据库驱动文件: 通过数据源访问数据库,由于数据源由Tomcat 维护,所有必须把JDBC驱动程序复制到Tomcat的common/lib目录下。