分享

MyEclipse+WebLogic+MySQL数据源的配置图解 - 51CTO.COM

 昵称904520 2010-03-01
WebLogic+MySQL数据源的配置图
 
MyEclipse+WebLogic+MySQL数据源的配置图解向你详细介绍具体的配置及操作,希望对你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.    ﹤th﹥ID﹤/th﹥  
    17.    ﹤th﹥CID﹤/th﹥  
    18.    ﹤th﹥UID﹤/th﹥  
    19.    ﹤th﹥用户名﹤/th﹥  
    20.    ﹤th﹥标题﹤/th﹥  
    21. ﹤/tr﹥  
    22.    ﹤%      
    23.     for(int i=0; i﹤articleList.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./dtd/web-app_2_3.dtd"﹥  
    4. ﹤web-app﹥  
    5. ﹤servlet﹥  
    6.    ﹤servlet-name﹥GetArticlesServlet﹤/servlet-name﹥  
    7.    ﹤servlet-class﹥  
    8.     org.shirdrn.servlet.GetArticlesServlet  
    9.    ﹤/servlet-class﹥  
    10. ﹤/servlet﹥  
    11.  
    12. ﹤servlet-mapping﹥  
    13.    ﹤servlet-name﹥GetArticlesServlet﹤/servlet-name﹥  
    14.    ﹤url-pattern﹥/getArticles﹤/url-pattern﹥  
    15. ﹤/servlet-mapping﹥  
    16. ﹤welcome-file-list﹥  
    17.    ﹤welcome-file﹥index.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:\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数据源的配置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数据源的配置就向你介绍到这里,希望对你有所帮助。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多