配置分为两部分:
(1)。修改conf/server.xml文件加入
<Context path="/songshan" docBase="songshan" debug="5" reloadable="true" crossContext="true"> <Resource name="jdbc/sqlserver" auth="Container" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/postgres"> <parameter> <name>factory</name> <value>org.apache.commons.dbcp.BasicDataSourceFactory</value> </parameter> <parameter> <name>driverClassName</name> <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value> </parameter> <parameter> <name>url</name> <value>jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=growthModel</value> </parameter> <parameter> <name>username</name> <value>sa</value> </parameter> <parameter> <name>password</name> <value>1111</value> </parameter> <parameter> <name>maxActive</name> <value>20</value> </parameter> <parameter> <name>maxIdle</name> <value>10</value> </parameter> <parameter> <name>maxWait</name> <value>-1</value> </parameter></ResourceParams>
</Context>
(2)。修改应用中的WEB-INF/web.xml文件,加入:
<resource-ref> <description>Datasource example</description> <res-ref-name>jdbc/sqlserver</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth></resource-ref>最后新建一个Servlet测试一下:
package com.haizg; import java.io.IOException; import java.io.PrintWriter; import java.sql. * ; import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingException; import javax.sql. * ; import javax.servlet. * ; import javax.servlet.http. * ; public class TestDS extends HttpServlet ... { DataSource pool; public void init() throws ServletException...{ Context env = null; try...{ env = (Context) new InitialContext().lookup("java:comp/env"); pool = (DataSource) env.lookup("jdbc/sqlserver"); if (pool == null) throw new ServletException("no such datasource!"); }catch(NamingException ne)...{ throw new ServletException(ne.getMessage()); } } public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException...{ String sql = "select * from growthModel"; Connection conn = null; Statement stmt = null; ResultSet rs = null; ResultSetMetaData rsm = null; PrintWriter out = response.getWriter(); try...{ conn = pool.getConnection(); stmt = conn.createStatement(); rs = stmt.executeQuery(sql); rsm = rs.getMetaData(); int colNum = rsm.getColumnCount(); out.println("<table>"); //表头 out.println("<tr>"); for(int i=1;i<=colNum;i++) out.println("<td>" + rsm.getColumnName(i) + "</td>"); out.println("</tr>"); //表内容 while(rs.next())...{ out.println("<tr>"); for(int i = 1;i<=colNum;i++)...{ out.println("<td>" + rs.getString(i) + "</td>" ); } out.println("</tr>"); } out.println("</table>"); }catch(Exception e)...{ throw new ServletException(e.getMessage()); }finally...{ try...{ if (stmt != null) stmt.close(); if (conn != null) conn.close(); }catch(SQLException sqle)...{ } } }}