Tomcat配置數據源(mysql)

今天晚上花了兩小時,總算能正確對Tomcat配置數據源了,如今寫出來和你們分享一下。(紅色字體爲大概步驟)
第一步:
               下載安裝好Tomcat的admin插件,在次就不介紹了,讀者能夠到網上找找相關資料。
第二步:
                安裝好admin插件後,在瀏覽器輸入 http://localhost:8080/admin輸入用戶名密碼,進入管理界面。 點DataSource,在Data Source Actions裏選Create New Data Source,輸入以下:
JNDI Name:  jdbc/mysql   
Data Source URL:  jdbc:mysql://localhost:3306/mysql      (注意此處不要填錯,這個問題花了我很多時間,3306後面是「/」,而不是「?」,mysql是數據庫名字)
JDBC Driver Class:    
User Name:    root
Password:    ******
Max. Active Connections:    4
Max. Idle Connections:    2
Max. Wait for Connection:    5000
Validation Query:   
輸完後,成後點擊\"save\"。記得要再點擊上面的\"Commit Changes\"。這時查看server.xml文件能夠看到多了兩個<Resource/>元素,內容以下:
  <Resource
      name="jdbc/mysql"
      type="javax.sql.DataSource"
      maxActive="4"
      maxIdle="2"
      username="root"
      maxWait="5000"
      driverClassName="com.mysql.jdbc.Driver"
      password="yqs2602555"
      url="jdbc:mysql://localhost/mysql"/>
    <Resource
      auth="Container"
      description="User database that can be updated and saved"
      name="UserDatabase"
      type="org.apache.catalina.UserDatabase"
      pathname="conf/tomcat-users.xml"
      factory="org.apache.catalina.users.MemoryUserDatabaseFactory"/>
第三步:
              將mysql驅動包放入Tomcat_Home/common/lib下(此處也要注意)和應用程序的lib目錄下。
第四步: 配置context.xml文件,在<webapp></webapp>中加入以下內容:
 <Resource
      auth="Container"
      description="User database that can be updated and saved"
      name="jdbc/mysql"
      type="javax.sql.DataSource"
      username="root"
   maxActive="4"
      maxIdle="2"
      maxWait="5000"
      driverClassName="com.mysql.jdbc.Driver"
      password="yqs2602555"
   url="jdbc:mysql://localhost/mysql"/>
第五步: 配置web.xml文件,加入以下內容:
<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<web-app >
 <resource-ref>
  <description>DB Connection</description>
  <res-ref-name>jdbc/mysql</res-ref-name>
  <res-type>javax.sql.DataSource</res-type>
  <res-auth>Container</res-auth>
 </resource-ref>
</web-app>
整個配置就到此結束,下面就是寫應用程序測試了!編寫testds.jsp以下:
<%@ page import="java.sql.*"%>
<%@ page import="javax.sql.*"%>
<%@ page import="javax.naming.*"%>
<%!
 final String JNDINAME = "java:comp/env/jdbc/mysql";
%>
<%
 Connection conn = null;
 Statement stmt = null;
 ResultSet rs = null;
 try {
  Context ctx = new InitialContext();
  DataSource ds = (DataSource)ctx.lookup(JNDINAME);
  conn = ds.getConnection();
  stmt = conn.createStatement();
  rs = stmt.executeQuery("select * from article");
  while(rs.next()) {
   out.println(rs.getString("title"));
  }
 } catch(Exception e) {
  e.printStackTrace();
 }
%>

<%
 try {
  conn.close();
 } catch(Exception e) {
  e.printStackTrace();
 }
 
%>
 
就能夠看到mysql數據庫下article這張表title字段的內容了。
相關文章
相關標籤/搜索