溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MyEclipse+WebLogic+MySQL數(shù)據(jù)源如何配置

發(fā)布時間:2021-12-07 11:14:53 來源:億速云 閱讀:182 作者:小新 欄目:編程語言

小編給大家分享一下MyEclipse+WebLogic+MySQL數(shù)據(jù)源如何配置,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

MyEclipse+WebLogic+MySQL數(shù)據(jù)源的配置,首先在感覺,在Weblogic的控制臺上配置Web應用程序的數(shù)據(jù)源還是比較簡單的。這里作為測試,為了清晰闡述,分為三個標題:測試工程準備、數(shù)據(jù)源配置、發(fā)布測試。

測試工程準備

主要準備測試配置數(shù)據(jù)源的Java Web工程,工程名稱為WeblogicDataSource。

BlogService類通過查找JNDI名字,來獲取到的一個數(shù)據(jù)源(DataSource)的實例,然后通過連接MySQL數(shù)據(jù)庫,從數(shù)據(jù)庫blog的表jblog_article中查詢得到記錄,返回一個結果的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中調用     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 {      }  }

相關的顯示查詢結果的列表頁面只有一個,也就是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﹥

對應Java Web工程的應用部署描述文件web.xml內容如下所示:

﹤?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驅動程序的jar文件加入到CLASSPATH中,我這里使用的是MySQL數(shù)據(jù)庫,對應的JDBC驅動程序版本為mysql-connector-java-5.0.8-bin.jar,如圖所示:

MyEclipse+WebLogic+MySQL數(shù)據(jù)源如何配置

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。打開左側“部署”下的“Web應用程序模塊”,可以看到“_appsdir_WeblogicDataSource_dir”,這是因為我在MyEclipse中導出為war文件的時候,直接導出到Weblogic Server的應用程序目錄下,自動進行了部署,如圖所示:

MyEclipse+WebLogic+MySQL數(shù)據(jù)源如何配置

MyEclipse+WebLogic+MySQL數(shù)據(jù)源的配置圖2

可以看到右側“部署”選項卡中,“部署狀態(tài)”為可用。

配置數(shù)據(jù)源,首先要做的就是,配置數(shù)據(jù)庫連接緩沖池;然后是基于改連接池的數(shù)據(jù)源的配置。

(一)數(shù)據(jù)庫連接池配置

下面是數(shù)據(jù)庫連接池的配置過程:

在左側導航菜單中,依次打開“服務”-﹥“JDBC”,單擊“連接緩沖池”,如圖所示:

MyEclipse+WebLogic+MySQL數(shù)據(jù)源如何配置

MyEclipse+WebLogic+MySQL數(shù)據(jù)源的配置圖3

單擊“配置新的 JDBC連接緩沖池”鏈接,如圖所示:

MyEclipse+WebLogic+MySQL數(shù)據(jù)源如何配置

MyEclipse+WebLogic+MySQL數(shù)據(jù)源的配置圖4

配置數(shù)據(jù)庫類型(這里為MySQL)和數(shù)據(jù)庫驅動程序(這里選擇com.mysql.jdbc.Driver),單擊“繼續(xù)”按鈕,如圖所示:

MyEclipse+WebLogic+MySQL數(shù)據(jù)源如何配置

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ù)源如何配置

MyEclipse+WebLogic+MySQL數(shù)據(jù)源的配置圖6

單擊“測試驅動程序配置”,測試前面配置的數(shù)據(jù)庫的JDBC驅動程序,如果沒有問題,如圖所示:

MyEclipse+WebLogic+MySQL數(shù)據(jù)源如何配置

MyEclipse+WebLogic+MySQL數(shù)據(jù)源的配置圖7

左上角顯示綠色的文字“連接成功”,否則就沒有通過配置的測試。單擊“創(chuàng)建和部署”按鈕,可以看到成功配置的JDBC數(shù)據(jù)庫連接緩沖池,如圖所示:

MyEclipse+WebLogic+MySQL數(shù)據(jù)源如何配置

MyEclipse+WebLogic+MySQL數(shù)據(jù)源的配置圖8

(二)配置數(shù)據(jù)源

在左側導航菜單中,依次打開“服務”-﹥“JDBC”,單擊“數(shù)據(jù)源”,如圖所示:

MyEclipse+WebLogic+MySQL數(shù)據(jù)源如何配置

MyEclipse+WebLogic+MySQL數(shù)據(jù)源的配置圖9

單擊“配置新的JDBC數(shù)據(jù)源”鏈接,配置數(shù)據(jù)源名稱(這里為MySQLds)和JNDI名稱(這里為jdbc/mysql),如圖所示:

MyEclipse+WebLogic+MySQL數(shù)據(jù)源如何配置

MyEclipse+WebLogic+MySQL數(shù)據(jù)源的配置圖10

單擊“繼續(xù)”鏈接,如圖所示:

MyEclipse+WebLogic+MySQL數(shù)據(jù)源如何配置

MyEclipse+WebLogic+MySQL數(shù)據(jù)源的配置圖11

可以從下拉列表中選擇已經存在的數(shù)據(jù)庫連接池,然后單擊“繼續(xù)”按鈕,如圖所示:

MyEclipse+WebLogic+MySQL數(shù)據(jù)源如何配置

MyEclipse+WebLogic+MySQL數(shù)據(jù)源的配置圖12

單擊“創(chuàng)建”按鈕,根據(jù)剛才配置的數(shù)據(jù)源選項創(chuàng)建數(shù)據(jù)源,如圖所示:

MyEclipse+WebLogic+MySQL數(shù)據(jù)源如何配置

MyEclipse+WebLogic+MySQL數(shù)據(jù)源的配置圖13

數(shù)據(jù)源配置完成。

這時,數(shù)據(jù)源MySQLcp(jdbc/mysql)可以為Web應用提供數(shù)據(jù)源了。

發(fā)布測試

如果Web應用打包后的war文件沒有放在Weblogic Server的應用程序目錄下,可以在Weblogic Console上進行上傳,如果已經放到Weblogic Server的應用程序目錄下,可以進行測試了。

打開連接http://192.168.151.201:7001/WeblogicDataSource/getArticles,顯示列表如圖所示:

MyEclipse+WebLogic+MySQL數(shù)據(jù)源如何配置

MyEclipse+WebLogic+MySQL數(shù)據(jù)源的配置圖14

通過測試,說明上述配置的數(shù)據(jù)源是存在的,可以為測試的Web應用提供數(shù)據(jù)源。

以上是“MyEclipse+WebLogic+MySQL數(shù)據(jù)源如何配置”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經查實,將立刻刪除涉嫌侵權內容。

AI