1.在webapp下的META-INFO下新建文件context.xml
2.编辑context.xml
< Context path ="/test" docBase ="test" debug ="5" reloadable ="true" >
< Resource name ="jdbc/MySQL" auth ="Container" type ="javax.sql.DataSource"
factory ="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"
driverClassName ="com.mysql.jdbc.Driver"
url ="jdbc:mysql://localhost:3306/你的DB名字"
username ="用户名" password ="密码"
maxActive ="20" maxIdle ="10" maxWait ="-1" />
</ Context >
![]()
3.重启tomcat
如果是使用全局Datasource
在server.xml中加入





重复步骤 1,在context中加入
<ResourceLink global="你的JNDI名字" name="你的JNDI名字" type="javax.sql.DataSource"/>
如果是使用admin配置JNDI
Tomcat
+Service
+Host
+[要使用JNDI的文件夹]
+Resources
+Data Sources
接下来设定右边
下拉的选Data Sources Actions -> 选择 Create New Data Source
接下來设定
JNDI Name: jdbc/MySQL
Data Source URL: jdbc:mysql://localhost:3306/你的数据库名字
JDBC Driver Class: com.mysql.jdbc.Driver
User Name: 用户名
Password: 密码
接著按 Save
最後按上方 Commit Changes 按鈕就可以了
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
import javax.naming.*;
import javax.sql.*;
public class DB extends HttpServlet {
DataSource pool;
public void init() throws ServletException {
Context context = null;
try {
context = (Context)new InitialContext();
pool = (DataSource)context.lookup("java:comp/env/jdbc/MySQL");
if(pool == null) throw new ServletException ("mysqlis an unknow DataSource");
}
catch(NamingException ne) {
throw new ServletException(ne.getMessage());
}
}
public void doGet(HttpServletRequest request,HttpServletResponse response )throws ServletException,java.io.IOException {
String sql = "select * from test";
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
ResultSetMetaData rsm = null;
response.setContentType("text/html");
java.io.PrintWriter out = response.getWriter();
out.println("<html><head><title>Database Access</title></head><body>");
try{
conn = pool.getConnection();
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
rsm = rs.getMetaData();
out.println("<table border=1><tr>");
int colCount = rsm.getColumnCount();
for(int i = 1;i <=colCount; ++i) {
out.println("<td>"+rsm.getColumnName(i)+"</td>");
}
out.println("</tr><br>");
while(rs.next()) {
out.println("<tr>");
for(int i = 1;i<=colCount; ++i)
out.println("<td>"+rs.getXXX(i); + "</td>");
out.println("</tr>");
}
}
catch(Exception e) {
throw new ServletException(e.getMessage());
}
finally {
try{
if(stmt != null)
stmt.close();
if(conn != null)
conn.close();
}
catch(SQLException sqle) {
}
}
out.println("</table></body></html>");
}
}