介绍两种方式,第一种是不依赖于tomcat的配置;第二中是依赖于tomcat的配置;但是这两种都需要在tomcat的lib包下添加所需的数据库驱动包
第一种,不依赖于tomcat的配置:
1、把所需驱动包放到tomcat的lib包下
2、配置web工程的web/META-INF/添加“context.xml”文件
<Context>
<!-- Default set of monitored resources -->
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<Resource name="jdbc/pmlf"
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@localhost:1521:orcl"
username="GH_HN"
password="GH_HN"
maxIdle="10"
maxWait="5000"
validationQuery=""
DatabaseName="PMLF"
maxActive="20"/>
</Context>
3、 代码调用
public Connection getConnection() {
Connection conn = null;
try {
Context initCtx = new InitialContext();
Context ctx = (Context) initCtx.lookup("java:comp/env");// 固定字符串 java:comp/env
Object obj = (Object) ctx.lookup("jdbc/pmlf");
javax.sql.DataSource ds = (javax.sql.DataSource)obj;
conn= ds.getConnection();
if(conn == null){
System.out.printly("获取连接失败");
}
return conn;
}
catch (Exception e) {
e.printStackTrace();
}
}
第二中,依赖于tomcat的配置,从网上摘录,理论可以,但是没有亲自确认。
1、修改tomcat中配置文件-conf/context.xml,配置如下
<Context>
<!-- Default set of monitored resources -->
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<!-- Uncomment this to disable session persistence across Tomcat restarts -->
<!--
<Manager pathname="" />
-->
<Resource name="jcptDataSourceJNDI" auth="Container" type="javax.sql.DataSource"
username="tysp" password="12345678" driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@192.168.1.52:1521:fuxing"/>
<!-- Uncomment this to enable Comet connection tacking (provides events
on session expiration as well as webapp lifecycle) -->
<!--
<Valve className="org.apache.catalina.valves.CometConnectionManagerValve" />
-->
</Context>
2、在项目下的WEB-INF/web.xml添加配置代码
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<resource-ref>
<description>Database Source</description>
<res-ref-name>jcptDataSourceJNDI</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
3、将数据库驱动jar包放入tomcat的lib中
4、测试,地址引用
<body>
<%
Context initContext = new InitialContext();
Context envContext = (Context)initContext.lookup("java:/comp/env");
DataSource ds = (DataSource)envContext.lookup("jcptDataSourceJNDI");
Connection conn = ds.getConnection();
if(conn==null){
out.println("连接失败!");
}else{
out.println("连接成功!");
}
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select * from t_sys_dept");
while(rs.next()){
out.println("第一列:"+rs.getString(1));
}
%>
</body>