温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

MyEclipse+WebLogic+MySQL数据源如何配置

发布时间:2021-12-07 11:14:53 来源:亿速云 阅读:159 作者:小新 栏目:编程语言

小编给大家分享一下MyEclipse+WebLogic+MySQL数据源如何配置,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

MyEclipse+WebLogic+MySQL数据源的配置,首先在感觉,在Weblogic的控制台上配置Web应用程序的数据源还是比较简单的。这里作为测试,为了清晰阐述,分为三个标题:测试工程准备、数据源配置、发布测试。

测试工程准备

主要准备测试配置数据源的Java Web工程,工程名称为WeblogicDataSource。

BlogService类通过查找JNDI名字,来获取到的一个数据源(DataSource)的实例,然后通过连接MySQL数据库,从数据库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查询来获取数据,将在后面的Servlet中调用     Context ctx = new InitialContext();     DataSource ds = (DataSource)ctx.lookup("jdbc/mysql"); // 数据源名称为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;  }   }

实现的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的,一定会出错的。

配置数据源

在MyEclipse中,配置Server中Weblogic里面的Paths,也就是把数据库的JDBC驱动程序的jar文件加入到CLASSPATH中,我这里使用的是MySQL数据库,对应的JDBC驱动程序版本为mysql-connector-java-5.0.8-bin.jar,如图所示:

MyEclipse+WebLogic+MySQL数据源如何配置

MyEclipse+WebLogic+MySQL数据源的配置图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数据源如何配置

MyEclipse+WebLogic+MySQL数据源的配置图2

可以看到右侧“部署”选项卡中,“部署状态”为可用。

配置数据源,首先要做的就是,配置数据库连接缓冲池;然后是基于改连接池的数据源的配置。

(一)数据库连接池配置

下面是数据库连接池的配置过程:

在左侧导航菜单中,依次打开“服务”-﹥“JDBC”,单击“连接缓冲池”,如图所示:

MyEclipse+WebLogic+MySQL数据源如何配置

MyEclipse+WebLogic+MySQL数据源的配置图3

单击“配置新的 JDBC连接缓冲池”链接,如图所示:

MyEclipse+WebLogic+MySQL数据源如何配置

MyEclipse+WebLogic+MySQL数据源的配置图4

配置数据库类型(这里为MySQL)和数据库驱动程序(这里选择com.mysql.jdbc.Driver),单击“继续”按钮,如图所示:

MyEclipse+WebLogic+MySQL数据源如何配置

MyEclipse+WebLogic+MySQL数据源的配置图5

配置JDBC连接池名称(这里为MySQLcp)、数据库名称(这里为blog)、主机名(这里为localhost)、端口号(这里使用MySQLcp数据库,默认为3306)、数据库用户名(这里为root)、数据库登录口令,然后单击“继续”按钮,如图所示:

MyEclipse+WebLogic+MySQL数据源如何配置

MyEclipse+WebLogic+MySQL数据源的配置图6

单击“测试驱动程序配置”,测试前面配置的数据库的JDBC驱动程序,如果没有问题,如图所示:

MyEclipse+WebLogic+MySQL数据源如何配置

MyEclipse+WebLogic+MySQL数据源的配置图7

左上角显示绿色的文字“连接成功”,否则就没有通过配置的测试。单击“创建和部署”按钮,可以看到成功配置的JDBC数据库连接缓冲池,如图所示:

MyEclipse+WebLogic+MySQL数据源如何配置

MyEclipse+WebLogic+MySQL数据源的配置图8

(二)配置数据源

在左侧导航菜单中,依次打开“服务”-﹥“JDBC”,单击“数据源”,如图所示:

MyEclipse+WebLogic+MySQL数据源如何配置

MyEclipse+WebLogic+MySQL数据源的配置图9

单击“配置新的JDBC数据源”链接,配置数据源名称(这里为MySQLds)和JNDI名称(这里为jdbc/mysql),如图所示:

MyEclipse+WebLogic+MySQL数据源如何配置

MyEclipse+WebLogic+MySQL数据源的配置图10

单击“继续”链接,如图所示:

MyEclipse+WebLogic+MySQL数据源如何配置

MyEclipse+WebLogic+MySQL数据源的配置图11

可以从下拉列表中选择已经存在的数据库连接池,然后单击“继续”按钮,如图所示:

MyEclipse+WebLogic+MySQL数据源如何配置

MyEclipse+WebLogic+MySQL数据源的配置图12

单击“创建”按钮,根据刚才配置的数据源选项创建数据源,如图所示:

MyEclipse+WebLogic+MySQL数据源如何配置

MyEclipse+WebLogic+MySQL数据源的配置图13

数据源配置完成。

这时,数据源MySQLcp(jdbc/mysql)可以为Web应用提供数据源了。

发布测试

如果Web应用打包后的war文件没有放在Weblogic Server的应用程序目录下,可以在Weblogic Console上进行上传,如果已经放到Weblogic Server的应用程序目录下,可以进行测试了。

打开连接http://192.168.151.201:7001/WeblogicDataSource/getArticles,显示列表如图所示:

MyEclipse+WebLogic+MySQL数据源如何配置

MyEclipse+WebLogic+MySQL数据源的配置图14

通过测试,说明上述配置的数据源是存在的,可以为测试的Web应用提供数据源。

以上是“MyEclipse+WebLogic+MySQL数据源如何配置”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI