1.在webapp下的META-INFO下新建文件context.xml
2.编辑context.xml
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"/>
3.重启tomcat
如果是使用全局Datasource
在server.xml中加入
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"/>
重复步骤 1,在context中加入
如果是使用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("
Database Access");try{
conn = pool.getConnection();
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
rsm = rs.getMetaData();
out.println("
int colCount = rsm.getColumnCount();
for(int i = 1;i <=colCount; ++i) {
out.println("
"+rsm.getColumnName(i)+"");}
out.println("
");
while(rs.next()) {
out.println("
");for(int i = 1;i<=colCount; ++i)
out.println("
"+rs.getXXX(i); + "");out.println("
");}
}
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("
");}
}