MyEclipse+WebLogic+MySQL數(shù)據(jù)源的配置圖解
MyEclipse+WebLogic+MySQL數(shù)據(jù)源的配置,首先在感覺,在Weblogic的控制臺上配置Web應(yīng)用程序的數(shù)據(jù)源還是比較簡單的。這里作為測試,為了清晰闡述,分為三個標題:測試工程準備、數(shù)據(jù)源配置、發(fā)布測試。
測試工程準備
主要準備測試配置數(shù)據(jù)源的Java Web工程,工程名稱為WeblogicDataSource。
BlogService類通過查找JNDI名字,來獲取到的一個數(shù)據(jù)源(DataSource)的實例,然后通過連接MySQL數(shù)據(jù)庫,從數(shù)據(jù)庫blog的表jblog_article中查詢得到記錄,返回一個結(jié)果的List集合。BlogService.java的源代碼如下所示:
- package org.shirdrn.blog;
 - import java.sql.Connection;
 - import java.sql.ResultSet;
 - import java.sql.Statement;
 - import java.util.ArrayList;
 - import java.util.List;
 - import javax.naming.Context;
 - import javax.naming.InitialContext;
 - import javax.sql.DataSource;
 - import org.shirdrn.blog.entity.Article;
 - public class BlogService {
 - public List getAticles(String sql) throws Exception { // 改方法通過傳遞一個sql查詢來獲取數(shù)據(jù),將在后面的Servlet中調(diào)用
 - Context ctx = new InitialContext();
 - DataSource ds = (DataSource)ctx.lookup("jdbc/mysql"); // 數(shù)據(jù)源名稱為jdbc/mysql
 - Connection conn = ds.getConnection();
 - Statement stmt = conn.createStatement();
 - ResultSet rs = stmt.executeQuery(sql);
 - List articleList = new ArrayList();
 - while(rs.next()) {
 - Article article = new Article();
 - article.setId(new Integer(rs.getInt(1)));
 - article.setCid(new Integer(rs.getInt(2)));
 - article.setUid(new Integer(rs.getInt(3)));
 - article.setUserName(rs.getString(4));
 - article.setTitle(rs.getString(5));
 - article.setUrlName(rs.getString(6));
 - article.setStatus(new Short(rs.getShort(7)));
 - article.setPassword(rs.getString(8));
 - article.setContent(rs.getString(13));
 - articleList.add(article);
 - }
 - return articleList;
 - }
 - }
 
上面用到一個實體類Article,實體類代碼如下所示:
- package org.shirdrn.blog.entity;
 - public class Article {
 - private Integer id;
 - private Integer cid;
 - private Integer uid;
 - private String userName;
 - private String title;
 - private String urlName;
 - private Short status;
 - private String password;
 - private String from;
 - private String forumUrl;
 - private String description;
 - private String excerpt;
 - private String content;
 - private String comments;
 - private String views;
 - private Integer dataline;
 - private Boolean isTop;
 - private Boolean isCommend;
 - private Boolean isCheck;
 - private String tags;
 - public Integer getId() {
 - return id;
 - }
 - public void setId(Integer id) {
 - this.id = id;
 - }
 - public Integer getCid() {
 - return cid;
 - }
 - public void setCid(Integer cid) {
 - this.cid = cid;
 - }
 - public Integer getUid() {
 - return uid;
 - }
 - public void setUid(Integer uid) {
 - this.uid = uid;
 - }
 - public String getUserName() {
 - return userName;
 - }
 - public void setUserName(String userName) {
 - this.userName = userName;
 - }
 - public String getTitle() {
 - return title;
 - }
 - public void setTitle(String title) {
 - this.title = title;
 - }
 - public String getUrlName() {
 - return urlName;
 - }
 - public void setUrlName(String urlName) {
 - this.urlName = urlName;
 - }
 - public Short getStatus() {
 - return status;
 - }
 - public void setStatus(Short status) {
 - this.status = status;
 - }
 - public String getPassword() {
 - return password;
 - }
 - public void setPassword(String password) {
 - this.password = password;
 - }
 - public String getFrom() {
 - return from;
 - }
 - public void setFrom(String from) {
 - this.from = from;
 - }
 - public String getForumUrl() {
 - return forumUrl;
 - }
 - public void setForumUrl(String forumUrl) {
 - this.forumUrl = forumUrl;
 - }
 - public String getDescription() {
 - return description;
 - }
 - public void setDescription(String description) {
 - this.description = description;
 - }
 - public String getExcerpt() {
 - return excerpt;
 - }
 - public void setExcerpt(String excerpt) {
 - this.excerpt = excerpt;
 - }
 - public String getContent() {
 - return content;
 - }
 - public void setContent(String content) {
 - this.content = content;
 - }
 - public String getComments() {
 - return comments;
 - }
 - public void setComments(String comments) {
 - this.comments = comments;
 - }
 - public String getViews() {
 - return views;
 - }
 - public void setViews(String views) {
 - this.views = views;
 - }
 - public Integer getDataline() {
 - return dataline;
 - }
 - public void setDataline(Integer dataline) {
 - this.dataline = dataline;
 - }
 - public Boolean getIsTop() {
 - return isTop;
 - }
 - public void setIsTop(Boolean isTop) {
 - this.isTop = isTop;
 - }
 - public Boolean getIsCommend() {
 - return isCommend;
 - }
 - public void setIsCommend(Boolean isCommend) {
 - this.isCommend = isCommend;
 - }
 - public Boolean getIsCheck() {
 - return isCheck;
 - }
 - public void setIsCheck(Boolean isCheck) {
 - this.isCheck = isCheck;
 - }
 - public String getTags() {
 - return tags;
 - }
 - public void setTags(String tags) {
 - this.tags = tags;
 - }
 - }
 
實現(xiàn)的Servlet也比較簡單,Servlet名稱GetArticlesServlet,映射名稱為getArticles,代碼如下所示:
- package org.shirdrn.servlet;
 - import java.io.IOException;
 - import java.io.PrintWriter;
 - import java.util.List;
 - import javax.servlet.ServletException;
 - import javax.servlet.http.HttpServlet;
 - import javax.servlet.http.HttpServletRequest;
 - import javax.servlet.http.HttpServletResponse;
 - import javax.servlet.http.HttpSession;
 - import org.shirdrn.blog.BlogService;
 - public class GetArticlesServlet extends HttpServlet {
 - public GetArticlesServlet() {
 - super();
 - }
 - public void destroy() {
 - super.destroy();
 - }
 - public void doGet(HttpServletRequest request, HttpServletResponse response)
 - throws ServletException, IOException {
 - doPost(request, response);
 - }
 - public void doPost(HttpServletRequest request, HttpServletResponse response)
 - throws ServletException, IOException {
 - HttpSession session = request.getSession();
 - String sql = "select * from jblog_article";
 - BlogService bs = new BlogService();
 - List articleList = null;
 - try {
 - articleList = bs.getAticles(sql);
 - } catch (Exception e) {
 - e.printStackTrace();
 - }
 - session.setAttribute("articleList", articleList);
 - response.sendRedirect("listArticles.jsp");
 - }
 - public void init() throws ServletException {
 - }
 - }
 
相關(guān)的顯示查詢結(jié)果的列表頁面只有一個,也就是listArticles.jsp,代碼如下所示:
- ﹤%@ page language="java" import="java.util.*" pageEncoding="utf-8"%﹥
 - ﹤%@page import="org.shirdrn.blog.entity.Article"%﹥
 - ﹤!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"﹥
 - ﹤html﹥
 - ﹤head﹥
 - ﹤title﹥博客文章列表頁面﹤/title﹥
 - ﹤/head﹥
 - ﹤body﹥
 - ﹤%
 - List articleList = (List)session.getAttribute("articleList");
 - %﹥
 - ﹤/body﹥
 - ﹤table style="color:yellow" align="center" bgcolor="green" border="1" borderColor="black"﹥
 - ﹤tr﹥
 - ﹤th﹥ID﹤/th﹥
 - ﹤th﹥CID﹤/th﹥
 - ﹤th﹥UID﹤/th﹥
 - ﹤th﹥用戶名﹤/th﹥
 - ﹤th﹥標題﹤/th﹥
 - ﹤/tr﹥
 - ﹤%
 - for(int i=0; i﹤articleList.size(); i++) {
 - Article a = (Article)articleList.get(i);
 - %﹥
 - ﹤tr﹥
 - ﹤td﹥﹤%=a.getId() %﹥﹤/td﹥
 - ﹤td﹥﹤%=a.getCid() %﹥﹤/td﹥
 - ﹤td﹥﹤%=a.getUid() %﹥﹤/td﹥
 - ﹤td﹥﹤%=a.getUserName() %﹥﹤/td﹥
 - ﹤td﹥﹤%=a.getTitle() %﹥﹤/td﹥
 - ﹤/tr﹥
 - ﹤%} %﹥
 - ﹤/table﹥
 - ﹤/html﹥
 
對應(yīng)Java Web工程的應(yīng)用部署描述文件web.xml內(nèi)容如下所示:
- ﹤?xml version="1.0" encoding="UTF-8"?﹥
 - ﹤!DOCTYPE web-app PUBLIC "-//Sun Microsystems,
 - Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"﹥
 - ﹤web-app﹥
 - ﹤servlet﹥
 - ﹤servlet-name﹥GetArticlesServlet﹤/servlet-name﹥
 - ﹤servlet-class﹥
 - org.shirdrn.servlet.GetArticlesServlet
 - ﹤/servlet-class﹥
 - ﹤/servlet﹥
 - ﹤servlet-mapping﹥
 - ﹤servlet-name﹥GetArticlesServlet﹤/servlet-name﹥
 - ﹤url-pattern﹥/getArticles﹤/url-pattern﹥
 - ﹤/servlet-mapping﹥
 - ﹤welcome-file-list﹥
 - ﹤welcome-file﹥index.jsp﹤/welcome-file﹥
 - ﹤/welcome-file-list﹥
 - ﹤/web-app﹥
 
值得注意的是,這里使用的是web-app 2.3部署描述文件,如果是2.4的,一定會出錯的。
配置數(shù)據(jù)源
在MyEclipse中,配置Server中Weblogic里面的Paths,也就是把數(shù)據(jù)庫的JDBC驅(qū)動程序的jar文件加入到CLASSPATH中,我這里使用的是MySQL數(shù)據(jù)庫,對應(yīng)的JDBC驅(qū)動程序版本為mysql-connector-java-5.0.8-bin.jar,如圖所示:
MyEclipse+WebLogic+MySQL數(shù)據(jù)源的配置圖1
在MyEclipse中編譯工程后,先使用MyEclipse的打包工具打成WAR包:
選擇Export下的“J2EE”-﹥“WAR file(MyEclipse)”,指定路徑,我存放到了D:\bea\user_projects\domains\sndomain\applications\WeblogicDataSource.war下面。
這時候,可以啟動Weblogic Server了(前提條件是配置好了Weblogic Server,例如我的是snserver),并登錄到Weblogic Console。打開左側(cè)“部署”下的“Web應(yīng)用程序模塊”,可以看到“_appsdir_WeblogicDataSource_dir”,這是因為我在MyEclipse中導出為war文件的時候,直接導出到Weblogic Server的應(yīng)用程序目錄下,自動進行了部署,如圖所示:
MyEclipse+WebLogic+MySQL數(shù)據(jù)源的配置圖2
可以看到右側(cè)“部署”選項卡中,“部署狀態(tài)”為可用。
配置數(shù)據(jù)源,首先要做的就是,配置數(shù)據(jù)庫連接緩沖池;然后是基于改連接池的數(shù)據(jù)源的配置。
(一)數(shù)據(jù)庫連接池配置
下面是數(shù)據(jù)庫連接池的配置過程:
在左側(cè)導航菜單中,依次打開“服務(wù)”-﹥“JDBC”,單擊“連接緩沖池”,如圖所示:
MyEclipse+WebLogic+MySQL數(shù)據(jù)源的配置圖3
單擊“配置新的 JDBC連接緩沖池”鏈接,如圖所示:
MyEclipse+WebLogic+MySQL數(shù)據(jù)源的配置圖4
配置數(shù)據(jù)庫類型(這里為MySQL)和數(shù)據(jù)庫驅(qū)動程序(這里選擇com.mysql.jdbc.Driver),單擊“繼續(xù)”按鈕,如圖所示:
MyEclipse+WebLogic+MySQL數(shù)據(jù)源的配置圖5
配置JDBC連接池名稱(這里為MySQLcp)、數(shù)據(jù)庫名稱(這里為blog)、主機名(這里為localhost)、端口號(這里使用MySQLcp數(shù)據(jù)庫,默認為3306)、數(shù)據(jù)庫用戶名(這里為root)、數(shù)據(jù)庫登錄口令,然后單擊“繼續(xù)”按鈕,如圖所示:
MyEclipse+WebLogic+MySQL數(shù)據(jù)源的配置圖6
單擊“測試驅(qū)動程序配置”,測試前面配置的數(shù)據(jù)庫的JDBC驅(qū)動程序,如果沒有問題,如圖所示:
MyEclipse+WebLogic+MySQL數(shù)據(jù)源的配置圖7
左上角顯示綠色的文字“連接成功”,否則就沒有通過配置的測試。單擊“創(chuàng)建和部署”按鈕,可以看到成功配置的JDBC數(shù)據(jù)庫連接緩沖池,如圖所示:
MyEclipse+WebLogic+MySQL數(shù)據(jù)源的配置圖8
(二)配置數(shù)據(jù)源
在左側(cè)導航菜單中,依次打開“服務(wù)”-﹥“JDBC”,單擊“數(shù)據(jù)源”,如圖所示:
MyEclipse+WebLogic+MySQL數(shù)據(jù)源的配置圖9
單擊“配置新的JDBC數(shù)據(jù)源”鏈接,配置數(shù)據(jù)源名稱(這里為MySQLds)和JNDI名稱(這里為jdbc/mysql),如圖所示:
MyEclipse+WebLogic+MySQL數(shù)據(jù)源的配置圖10
單擊“繼續(xù)”鏈接,如圖所示:
MyEclipse+WebLogic+MySQL數(shù)據(jù)源的配置圖11
可以從下拉列表中選擇已經(jīng)存在的數(shù)據(jù)庫連接池,然后單擊“繼續(xù)”按鈕,如圖所示:
MyEclipse+WebLogic+MySQL數(shù)據(jù)源的配置圖12
單擊“創(chuàng)建”按鈕,根據(jù)剛才配置的數(shù)據(jù)源選項創(chuàng)建數(shù)據(jù)源,如圖所示:
MyEclipse+WebLogic+MySQL數(shù)據(jù)源的配置圖13
數(shù)據(jù)源配置完成。
這時,數(shù)據(jù)源MySQLcp(jdbc/mysql)可以為Web應(yīng)用提供數(shù)據(jù)源了。
發(fā)布測試
如果Web應(yīng)用打包后的war文件沒有放在Weblogic Server的應(yīng)用程序目錄下,可以在Weblogic Console上進行上傳,如果已經(jīng)放到Weblogic Server的應(yīng)用程序目錄下,可以進行測試了。
打開連接http://192.168.151.201:7001/WeblogicDataSource/getArticles,顯示列表如圖所示:
MyEclipse+WebLogic+MySQL數(shù)據(jù)源的配置圖14
通過測試,說明上述配置的數(shù)據(jù)源是存在的,可以為測試的Web應(yīng)用提供數(shù)據(jù)源。
那么MyEclipse+WebLogic+MySQL數(shù)據(jù)源的配置就向你介紹到這里,希望對你有所幫助。
【編輯推薦】





























 
 
 







 
 
 
 