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

2009-07-14 09:55  守护地下铁  百度空间  字号:T | T

 

source mysql某个表 mysql -e source_source mysql某个表

MyEclipse+WebLogic+MySQL数据源的配置图解向你详细介绍具体的配置及操作,希望对你MyEclipse+WebLogic+MySQL数据源的配置方面有所帮助。

AD:
51CTO 网+ 第十二期沙龙:大话数据之美_如何用数据驱动用户体验

 

 

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. new InitialContext();  
19. "jdbc/mysql"); // 数据源名称为jdbc/mysql  
20.    Connection conn = ds.getConnection();  
21.    Statement stmt = conn.createStatement();  
22.    ResultSet rs = stmt.executeQuery(sql);  
23. new ArrayList();  
24. while(rs.next()) {  
25. new Article();  
26. new Integer(rs.getInt(1)));  
27. new Integer(rs.getInt(2)));  
28. new Integer(rs.getInt(3)));  
29. 4));  
30. 5));  
31. 6));  
32. new Short(rs.getShort(7)));  
33. 8));  
34. 13));  
35.     articleList.add(article);  
36.    }  
37. return articleList;  
38. }  
39. }

上面用到一个实体类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.  
145. }

实现的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. "select * from jblog_article";  
30. new BlogService();  
31. null;  
32. try {  
33.     articleList = bs.getAticles(sql);  
34. catch (Exception e) {  
35.     e.printStackTrace();  
36.    }  
37. "articleList", articleList);  
38. "listArticles.jsp");  
39. }  
40. public void init() throws ServletException {  
41.     
42. }  
43. }

相关的显示查询结果的列表页面只有一个,也就是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. 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. i=0; i﹤articleList.size(); i++) {  
24. 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-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,如图所示:

source mysql某个表 mysql -e source_MySQL_02

 

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的应用程序目录下,自动进行了部署,如图所示:

source mysql某个表 mysql -e source_mysql_03

 

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

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

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

(一)数据库连接池配置

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

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

source mysql某个表 mysql -e source_数据源_04

 

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

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

source mysql某个表 mysql -e source_WebLogic_05

 

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

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

source mysql某个表 mysql -e source_数据源_06

 

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

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

source mysql某个表 mysql -e source_MySQL_07

 

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

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

source mysql某个表 mysql -e source_MySQL_08

 

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

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

source mysql某个表 mysql -e source_WebLogic_09

 

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

(二)配置数据源

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

source mysql某个表 mysql -e source_mysql_10

 

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

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

source mysql某个表 mysql -e source_数据源_11

 

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

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

source mysql某个表 mysql -e source_数据源_12

 

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

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

source mysql某个表 mysql -e source_source mysql某个表_13

 

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

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

source mysql某个表 mysql -e source_WebLogic_14

 

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

数据源配置完成。

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

发布测试

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

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

source mysql某个表 mysql -e source_MySQL_15

 

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

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

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

【责任编辑:李彦光