配置分为两部分:
(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测试一下:
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)...{
}
}
}
}