MyEclipse+WebLogic+MySQL数据源的配置图解 - Go语言中文社区

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


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

测试工程准备

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

BlogService类通过查找JNDI名字,来获取到的一个数据源(DataSource)的实例,然后通过连接MySQL数据库,从数据库blog的表jblog_article中查询得到记录,返回一个结果的List集合。BlogService.java的源代码如下所示:

  1. package org.shirdrn.blog;  
  2.  
  3. import java.sql.Connection;  
  4. import java.sql.ResultSet;  
  5. import java.sql.Statement;  
  6. import java.util.ArrayList;  
  7. import java.util.List;  
  8.  
  9. import javax.naming.Context;  
  10. import javax.naming.InitialContext;  
  11. import javax.sql.DataSource;  
  12.  
  13. import org.shirdrn.blog.entity.Article;  
  14.  
  15. public class BlogService {  
  16.  
  17. public List getAticles(String sql) throws Exception { // 改方法通过传递一个sql查询来获取数据,将在后面的Servlet中调用  
  18.    Context ctx = new InitialContext();  
  19.    DataSource ds = (DataSource)ctx.lookup("jdbc/mysql"); // 数据源名称为jdbc/mysql  
  20.    Connection conn = ds.getConnection();  
  21.    Statement stmt = conn.createStatement();  
  22.    ResultSet rs = stmt.executeQuery(sql);  
  23.    List articleList = new ArrayList();  
  24.    while(rs.next()) {  
  25.     Article article = new Article();  
  26.     article.setId(new Integer(rs.getInt(1)));  
  27.     article.setCid(new Integer(rs.getInt(2)));  
  28.     article.setUid(new Integer(rs.getInt(3)));  
  29.     article.setUserName(rs.getString(4));  
  30.     article.setTitle(rs.getString(5));  
  31.     article.setUrlName(rs.getString(6));  
  32.     article.setStatus(new Short(rs.getShort(7)));  
  33.     article.setPassword(rs.getString(8));  
  34.     article.setContent(rs.getString(13));  
  35.     articleList.add(article);  
  36.    }  
  37.    return articleList;  
  38. }  

上面用到一个实体类Article,实体类代码如下所示:

  1. package org.shirdrn.blog.entity;  
  2.  
  3. public class Article {  
  4. private Integer id;  
  5. private Integer cid;  
  6. private Integer uid;  
  7. private String userName;  
  8. private String title;  
  9. private String urlName;  
  10. private Short status;  
  11. private String password;  
  12. private String from;  
  13. private String forumUrl;  
  14. private String description;  
  15. private String excerpt;  
  16. private String content;  
  17. private String comments;  
  18. private String views;  
  19. private Integer dataline;  
  20. private Boolean isTop;  
  21. private Boolean isCommend;  
  22. private Boolean isCheck;  
  23. private String tags;  
  24. public Integer getId() {  
  25.    return id;  
  26. }  
  27. public void setId(Integer id) {  
  28.    this.id = id;  
  29. }  
  30. public Integer getCid() {  
  31.    return cid;  
  32. }  
  33. public void setCid(Integer cid) {  
  34.    this.cid = cid;  
  35. }  
  36. public Integer getUid() {  
  37.    return uid;  
  38. }  
  39. public void setUid(Integer uid) {  
  40.    this.uid = uid;  
  41. }  
  42. public String getUserName() {  
  43.    return userName;  
  44. }  
  45. public void setUserName(String userName) {  
  46.    this.userName = userName;  
  47. }  
  48. public String getTitle() {  
  49.    return title;  
  50. }  
  51. public void setTitle(String title) {  
  52.    this.title = title;  
  53. }  
  54. public String getUrlName() {  
  55.    return urlName;  
  56. }  
  57. public void setUrlName(String urlName) {  
  58.    this.urlName = urlName;  
  59. }  
  60. public Short getStatus() {  
  61.    return status;  
  62. }  
  63. public void setStatus(Short status) {  
  64.    this.status = status;  
  65. }  
  66. public String getPassword() {  
  67.    return password;  
  68. }  
  69. public void setPassword(String password) {  
  70.    this.password = password;  
  71. }  
  72. public String getFrom() {  
  73.    return from;  
  74. }  
  75. public void setFrom(String from) {  
  76.    this.from = from;  
  77. }  
  78. public String getForumUrl() {  
  79.    return forumUrl;  
  80. }  
  81. public void setForumUrl(String forumUrl) {  
  82.    this.forumUrl = forumUrl;  
  83. }  
  84. public String getDescription() {  
  85.    return description;  
  86. }  
  87. public void setDescription(String description) {  
  88.    this.description = description;  
  89. }  
  90. public String getExcerpt() {  
  91.    return excerpt;  
  92. }  
  93. public void setExcerpt(String excerpt) {  
  94.    this.excerpt = excerpt;  
  95. }  
  96. public String getContent() {  
  97.    return content;  
  98. }  
  99. public void setContent(String content) {  
  100.    this.content = content;  
  101. }  
  102. public String getComments() {  
  103.    return comments;  
  104. }  
  105. public void setComments(String comments) {  
  106.    this.comments = comments;  
  107. }  
  108. public String getViews() {  
  109.    return views;  
  110. }  
  111. public void setViews(String views) {  
  112.    this.views = views;  
  113. }  
  114. public Integer getDataline() {  
  115.    return dataline;  
  116. }  
  117. public void setDataline(Integer dataline) {  
  118.    this.dataline = dataline;  
  119. }  
  120. public Boolean getIsTop() {  
  121.    return isTop;  
  122. }  
  123. public void setIsTop(Boolean isTop) {  
  124.    this.isTop = isTop;  
  125. }  
  126. public Boolean getIsCommend() {  
  127.    return isCommend;  
  128. }  
  129. public void setIsCommend(Boolean isCommend) {  
  130.    this.isCommend = isCommend;  
  131. }  
  132. public Boolean getIsCheck() {  
  133.    return isCheck;  
  134. }  
  135. public void setIsCheck(Boolean isCheck) {  
  136.    this.isCheck = isCheck;  
  137. }  
  138. public String getTags() {  
  139.    return tags;  
  140. }  
  141. public void setTags(String tags) {  
  142.    this.tags = tags;  
  143. }  
  144.  

实现的Servlet也比较简单,Servlet名称GetArticlesServlet,映射名称为getArticles,代码如下所示:

  1. package org.shirdrn.servlet;  
  2.  
  3. import java.io.IOException;  
  4. import java.io.PrintWriter;  
  5. import java.util.List;  
  6.  
  7. import javax.servlet.ServletException;  
  8. import javax.servlet.http.HttpServlet;  
  9. import javax.servlet.http.HttpServletRequest;  
  10. import javax.servlet.http.HttpServletResponse;  
  11. import javax.servlet.http.HttpSession;  
  12.  
  13. import org.shirdrn.blog.BlogService;  
  14.  
  15. public class GetArticlesServlet extends HttpServlet {  
  16. public GetArticlesServlet() {  
  17.    super();  
  18. }  
  19. public void destroy() {  
  20.    super.destroy();   
  21. }  
  22. public void doGet(HttpServletRequest request, HttpServletResponse response)  
  23.     throws ServletException, IOException {  
  24.    doPost(request, response);  
  25. }  
  26. public void doPost(HttpServletRequest request, HttpServletResponse response)  
  27.     throws ServletException, IOException {  
  28.    HttpSession session = request.getSession();  
  29.    String sql = "select * from jblog_article";  
  30.    BlogService bs = new BlogService();  
  31.    List articleList = null;  
  32.    try {  
  33.     articleList = bs.getAticles(sql);  
  34.    } catch (Exception e) {  
  35.     e.printStackTrace();  
  36.    }  
  37.    session.setAttribute("articleList", articleList);  
  38.    response.sendRedirect("listArticles.jsp");  
  39. }  
  40. public void init() throws ServletException {  
  41.     
  42. }  

相关的显示查询结果的列表页面只有一个,也就是listArticles.jsp,代码如下所示:

  1. %@ page language="java" import="java.util.*" pageEncoding="utf-8"%  
  2. %@page import="org.shirdrn.blog.entity.Article"%  
  3.  
  4. !DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"  
  5. html  
  6. head   
  7.     title博客文章列表页面/title  
  8. /head   
  9. body  
  10.     %  
  11.     List articleList = (List)session.getAttribute("articleList");  
  12.      %  
  13. /body  
  14. table style="color:yellow" align="center" bgcolor="green" border="1" borderColor="black"  
  15. tr  
  16.    thID/th  
  17.    thCID/th  
  18.    thUID/th  
  19.    th用户名/th  
  20.    th标题/th  
  21. /tr  
  22.    %      
  23.     for(int i=0; iarticleList.size(); i++) {  
  24.      Article a = (Article)articleList.get(i);  
  25.    %  
  26.    tr  
  27.    td%=a.getId() %/td  
  28.    td%=a.getCid() %/td  
  29.    td%=a.getUid() %/td  
  30.    td%=a.getUserName() %/td  
  31.    td%=a.getTitle() %/td  
  32.    /tr  
  33.    %} %  
  34. /table  
  35. /html 

对应Java Web工程的应用部署描述文件web.xml内容如下所示:

  1. ?xml version="1.0" encoding="UTF-8"?  
  2. !DOCTYPE web-app PUBLIC "-//Sun Microsystems,   
  3. Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"  
  4. web-app  
  5. servlet  
  6.    servlet-nameGetArticlesServlet/servlet-name  
  7.    servlet-class  
  8.     org.shirdrn.servlet.GetArticlesServlet  
  9.    /servlet-class  
  10. /servlet  
  11.  
  12. servlet-mapping  
  13.    servlet-nameGetArticlesServlet/servlet-name  
  14.    url-pattern/getArticles/url-pattern  
  15. /servlet-mapping  
  16. welcome-file-list  
  17.    welcome-fileindex.jsp/welcome-file  
  18. /welcome-file-list  
  19. /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数据源的配置1

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

在MyEclipse中编译工程后,先使用MyEclipse的打包工具打成WAR包:

选择Export下的“J2EE”-“WAR file(MyEclipse)”,指定路径,我存放到了D:beauser_projectsdomainssndomainapplicationsWeblogicDataSource.war下面。

这时候,可以启动Weblogic Server了(前提条件是配置好了Weblogic Server,例如我的是snserver),并登录到Weblogic Console。打开左侧“部署”下的“Web应用程序模块”,可以看到“_appsdir_WeblogicDataSource_dir”,这是因为我在MyEclipse中导出为war文件的时候,直接导出到Weblogic Server的应用程序目录下,自动进行了部署,如图所示:

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

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

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

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

(一)数据库连接池配置

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

(二)配置数据源

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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数据源的配置14

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

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

那么MyEclipse+WebLogic+MySQL数据源的配置就向你介绍到这里,希望对你有所帮助。

版权声明:本文来源51CTO,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:http://developer.51cto.com/art/200907/136113.htm
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2021-05-15 23:15:29
  • 阅读 ( 1399 )
  • 分类:数据库

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢